Skip to content
Snippets Groups Projects
  1. Dec 23, 2009
    • Tom Lane's avatar
      Allow the index name to be omitted in CREATE INDEX, causing the system to · d68e08d1
      Tom Lane authored
      choose an index name the same as it would do for an unnamed index constraint.
      (My recent changes to the index naming logic have helped to ensure that this
      will be a reasonable choice.)  Per a suggestion from Peter.
      
      A necessary side-effect is to promote CONCURRENTLY to type_func_name_keyword
      status, ie, it can't be a table/column/index name anymore unless quoted.
      This is not all bad, since we have heard more than once of people typing
      CREATE INDEX CONCURRENTLY ON foo (...) and getting a normal index build of
      an index named "concurrently", which was not what they wanted.  Now this
      syntax will result in a concurrent build of an index with system-chosen
      name; which they can rename afterwards if they want something else.
      d68e08d1
    • Tom Lane's avatar
      Remove code that attempted to rename index columns to keep them in sync with · c176e122
      Tom Lane authored
      their underlying table columns.  That code was not bright enough to cope with
      collision situations (ie, new name conflicts with some other column of the
      index).  Since there is no functional reason to do this at all, trying to
      upgrade the logic to be bulletproof doesn't seem worth the trouble.
      
      This change means that both the index name and the column names of an index
      are set when it's created, and won't be automatically changed when the
      underlying table columns are renamed.  Neatnik DBAs are still free to rename
      them manually, of course.
      c176e122
    • Magnus Hagander's avatar
      Add basic build support for Visual Studio 2008, without resorting to · df0cdd53
      Magnus Hagander authored
      generating the build files for 2005 and then converting them.
      df0cdd53
    • Heikki Linnakangas's avatar
      Always pass catalog id to the options validator function specified in · 4e766f2d
      Heikki Linnakangas authored
      CREATE FOREIGN DATA WRAPPER. Arguably it wasn't a bug because the
      documentation said that it's passed the catalog ID or zero, but surely
      we should provide it when it's known. And there isn't currently any
      scenario where it's not known, and I can't imagine having one in the
      future either, so better remove the "or zero" escape hatch and always
      pass a valid catalog ID. Backpatch to 8.4.
      
      Martin Pihlak
      4e766f2d
    • Bruce Momjian's avatar
    • Tom Lane's avatar
      Adjust naming of indexes and their columns per recent discussion. · cfc5008a
      Tom Lane authored
      Index expression columns are now named after the FigureColname result for
      their expressions, rather than always being "pg_expression_N".  Digits are
      appended to this name if needed to make the column name unique within the
      index.  (That happens for regular columns too, thus fixing the old problem
      that CREATE INDEX fooi ON foo (f1, f1) fails.  Before exclusion indexes
      there was no real reason to do such a thing, but now maybe there is.)
      
      Default names for indexes and associated constraints now include the column
      names of all their columns, not only the first one as in previous practice.
      (Of course, this will be truncated as needed to fit in NAMEDATALEN.  Also,
      pkey indexes retain the historical behavior of not naming specific columns
      at all.)
      
      An example of the results:
      
      regression=# create table foo (f1 int, f2 text,
      regression(# exclude (f1 with =, lower(f2) with =));
      NOTICE:  CREATE TABLE / EXCLUDE will create implicit index "foo_f1_lower_exclusion" for table "foo"
      CREATE TABLE
      regression=# \d foo_f1_lower_exclusion
      Index "public.foo_f1_lower_exclusion"
       Column |  Type   | Definition
      --------+---------+------------
       f1     | integer | f1
       lower  | text    | lower(f2)
      btree, for table "public.foo"
      cfc5008a
    • Tom Lane's avatar
      Disallow comments on columns of relation types other than tables, views, · b7d67954
      Tom Lane authored
      and composite types, which are the only relkinds for which pg_dump support
      exists for dumping column comments.  There is no obvious usefulness for
      comments on columns of sequences or toast tables; and while comments on
      index columns might have some value, it's not worth the risk of compatibility
      problems due to possible changes in the algorithm for assigning names to
      index columns.  Per discussion.
      
      In consequence, remove now-dead code for copying such comments in CREATE TABLE
      LIKE.
      b7d67954
    • Peter Eisentraut's avatar
  2. Dec 21, 2009
  3. Dec 20, 2009
  4. Dec 19, 2009
    • Peter Eisentraut's avatar
      Translation updates · baab7a04
      Peter Eisentraut authored
      baab7a04
    • Itagaki Takahiro's avatar
      Add a whitespace to fix the query to dump large objects. · ce1489fa
      Itagaki Takahiro authored
      PL/pgSQL-by-default patch broke the code for 8.3 <= server_version < 8.5.
      ce1489fa
    • Tom Lane's avatar
      Bump catversion to reflect the fact that HS patch changed pg_proc · 4fca795d
      Tom Lane authored
      contents, and PG_CONTROL_VERSION to reflect the fact that it changed
      pg_control contents.  (I see we did at least remember to change
      XLOG_PAGE_MAGIC for the WAL contents changes.)
      4fca795d
    • Tom Lane's avatar
      plpgsql patch broke the MSVC build, too. · d37cda2c
      Tom Lane authored
      d37cda2c
    • Alvaro Herrera's avatar
    • Simon Riggs's avatar
      Allow read only connections during recovery, known as Hot Standby. · efc16ea5
      Simon Riggs authored
      Enabled by recovery_connections = on (default) and forcing archive recovery using a recovery.conf. Recovery processing now emulates the original transactions as they are replayed, providing full locking and MVCC behaviour for read only queries. Recovery must enter consistent state before connections are allowed, so there is a delay, typically short, before connections succeed. Replay of recovering transactions can conflict and in some cases deadlock with queries during recovery; these result in query cancellation after max_standby_delay seconds have expired. Infrastructure changes have minor effects on normal running, though introduce four new types of WAL record.
      
      New test mode "make standbycheck" allows regression tests of static command behaviour on a standby server while in recovery. Typical and extreme dynamic behaviours have been checked via code inspection and manual testing. Few port specific behaviours have been utilised, though primary testing has been on Linux only so far.
      
      This commit is the basic patch. Additional changes will follow in this release to enhance some aspects of behaviour, notably improved handling of conflicts, deadlock detection and query cancellation. Changes to VACUUM FULL are also required.
      
      Simon Riggs, with significant and lengthy review by Heikki Linnakangas, including streamlined redesign of snapshot creation and two-phase commit.
      
      Important contributions from Florian Pflug, Mark Kirkwood, Merlin Moncure, Greg Stark, Gianni Ciolli, Gabriele Bartolini, Hannu Krosing, Robert Haas, Tatsuo Ishii, Hiroyuki Yamada plus support and feedback from many other community members.
      efc16ea5
    • Bruce Momjian's avatar
      binary migration: pg_migrator · 78a09145
      Bruce Momjian authored
      Add comments about places where system oids have to be preserved for
      binary migration.
      78a09145
  5. Dec 18, 2009
  6. Dec 17, 2009
  7. Dec 16, 2009
    • Peter Eisentraut's avatar
      If there is no sigdelset(), define it as a macro. · b63b967a
      Peter Eisentraut authored
      This removes some duplicate code that recreated the identical workaround
      when the newer signal API is missing.
      b63b967a
    • Tom Lane's avatar
      Avoid a premature coercion failure in transformSetOperationTree() when · 52fc0075
      Tom Lane authored
      presented with an UNKNOWN-type Var, which can happen in cases where an
      unknown literal appeared in a subquery.  While many such cases will fail
      later on anyway in the planner, there are some cases where the planner is
      able to flatten the query and replace the Var by the constant before it has
      to coerce the union column to the final type.  I had added this check in 8.4
      to provide earlier/better error detection, but it causes a regression for
      some cases that worked OK before.  Fix by not making the check if the input
      node is UNKNOWN type and not a Const or Param.  If it isn't going to work,
      it will fail anyway at plan time, with the only real loss being inability to
      provide an error cursor.  Per gripe from Britt Piehler.
      
      In passing, rename a couple of variables to remove confusion from an
      inner scope masking the same variable names in an outer scope.
      52fc0075
    • Robert Haas's avatar
      Several fixes for EXPLAIN (FORMAT YAML), plus one for EXPLAIN (FORMAT JSON). · ff499613
      Robert Haas authored
      ExplainSeparatePlans() was busted for both JSON and YAML output - the present
      code is a holdover from the original version of my machine-readable explain
      patch, which didn't have the grouping_stack machinery.  Also, fix an odd
      distribution of labor between ExplainBeginGroup() and ExplainYAMLLineStarting()
      when marking lists with "- ", with each providing one character.  This broke
      the output format for multi-query statements.  Also, fix ExplainDummyGroup()
      for the YAML output format.
      
      Along the way, make the YAML format use escape_yaml() in situations where the
      JSON format uses escape_json().  Right now, it doesn't matter because all the
      values are known not to need escaping, but it seems safer this way.  Finally,
      I added some comments to better explain what the YAML output format is doing.
      
      Greg Sabino Mullane reported the issues with multi-query statements.
      Analysis and remaining cleanups by me.
      ff499613
    • Michael Meskes's avatar
      Fixed auto-prepare to not try preparing statements that are not preparable. Bug · d19669e5
      Michael Meskes authored
      found and solved by Boszormenyi Zoltan <zb@cybertec.at>, some small adjustments
      by me.
      d19669e5
  8. Dec 15, 2009
  9. Dec 14, 2009
    • Tom Lane's avatar
      Fix a bug introduced when set-returning SQL functions were made inline-able: · a620d500
      Tom Lane authored
      we have to cope with the possibility that the declared result rowtype contains
      dropped columns.  This fails in 8.4, as per bug #5240.
      
      While at it, be more paranoid about inserting binary coercions when inlining.
      The pre-8.4 code did not really need to worry about that because it could not
      inline at all in any case where an added coercion could change the behavior
      of the function's statement.  However, when inlining a SRF we allow sorting,
      grouping, and set-ops such as UNION.  In these cases, modifying one of the
      targetlist entries that the sort/group/setop depends on could conceivably
      change the behavior of the function's statement --- so don't inline when
      such a case applies.
      a620d500
    • Itagaki Takahiro's avatar
      Additional fixes for large object access control. · 84f910a7
      Itagaki Takahiro authored
      Use pg_largeobject_metadata.oid instead of pg_largeobject.loid
      to enumerate existing large objects in pg_dump, pg_restore, and
      contrib modules.
      84f910a7
  10. Dec 12, 2009
    • Magnus Hagander's avatar
      Allow LDAP authentication to operate in search+bind mode, meaning it · 0182d6f6
      Magnus Hagander authored
      does a search for the user in the directory first, and then binds with
      the DN found for this user.
      
      This allows for LDAP logins in scenarios where the DN of the user cannot
      be determined simply by prefix and suffix, such as the case where different
      users are located in different containers.
      
      The old way of authentication can be significantly faster, so it's kept
      as an option.
      
      Robert Fleming and Magnus Hagander
      0182d6f6
    • Tom Lane's avatar
      Fix integer-to-bit-string conversions to handle the first fractional byte · a4e035b2
      Tom Lane authored
      correctly when the output bit width is wider than the given integer by
      something other than a multiple of 8 bits.
      
      This has been wrong since I first wrote that code for 8.0 :-(.  Kudos to
      Roman Kononov for being the first to notice, though I didn't use his
      patch.  Per bug #5237.
      a4e035b2
    • Robert Haas's avatar
      Export ExplainBeginOutput() and ExplainEndOutput() for auto_explain. · 02490d46
      Robert Haas authored
      Without these functions, anyone outside of explain.c can't actually use
      ExplainPrintPlan, because the ExplainState won't be initialized properly.
      The user-visible result of this was a crash when using auto_explain with
      the JSON output format.
      
      Report by Euler Taveira de Oliveira.  Analysis by Tom Lane.  Patch by me.
      02490d46
  11. Dec 11, 2009
  12. Dec 10, 2009
Loading