1. 13 2月, 2011 4 次提交
    • B
      Clarify documentation for libpq's PQescapeBytea to mention the new hex · 5569ae52
      Bruce Momjian 提交于
      format.
      
      Modify PQescapeStringConn() docs to be consisent with other escaping
      functions.
      
      Add mention problems with pre-9.0 versions of libpq using not understanding
      bytea hex format to the 9.0 release notes.
      
      Backpatch to 9.0 docs.
      5569ae52
    • B
      Back out libpq doc change; not ready yet. · cebbaa1d
      Bruce Momjian 提交于
      cebbaa1d
    • B
    • T
      Refactor ALTER EXTENSION UPDATE to have cleaner multi-step semantics. · 6c2e734f
      Tom Lane 提交于
      This change causes a multi-step update sequence to behave exactly as if the
      updates had been commanded one at a time, including updating the "requires"
      dependencies afresh at each step.  The initial implementation took the
      shortcut of examining only the final target version's "requires" and
      changing the catalog entry but once.  But on reflection that's a bad idea,
      since it could lead to executing old update scripts under conditions
      different than they were designed/tested for.  Better to expend a few extra
      cycles and avoid any surprises.
      
      In the same spirit, if a CREATE EXTENSION FROM operation involves applying
      a series of update files, it will act as though the CREATE had first been
      done using the initial script's target version and then the additional
      scripts were invoked with ALTER EXTENSION UPDATE.
      
      I also removed the restriction about not changing encoding in secondary
      control files.  The new rule is that a script is assumed to be in whatever
      encoding the control file(s) specify for its target version.  Since this
      reimplementation causes us to read each intermediate version's control
      file, there's no longer any uncertainty about which encoding setting would
      get applied.
      6c2e734f
  2. 12 2月, 2011 8 次提交
    • B
      Properly handle Win32 paths of 'E:abc', which can be either absolute or · 0de0cc15
      Bruce Momjian 提交于
      relative, by creating a function path_is_relative_and_below_cwd() to
      check for specific requirements.  It is unclear if this fixes a security
      problem or not but the new code is more robust.
      0de0cc15
    • P
      DDL support for collations · b313bca0
      Peter Eisentraut 提交于
      - collowner field
      - CREATE COLLATION
      - ALTER COLLATION
      - DROP COLLATION
      - COMMENT ON COLLATION
      - integration with extensions
      - pg_dump support for the above
      - dependency management
      - psql tab completion
      - psql \dO command
      b313bca0
    • R
      Teach ALTER TABLE .. SET DATA TYPE to avoid some table rewrites. · d31e2a49
      Robert Haas 提交于
      When the old type is binary coercible to the new type and the using
      clause does not change the column contents, we can avoid a full table
      rewrite, though any indexes on the affected columns will still need
      to be rebuilt.  This applies, for example, when changing a varchar
      column to be of type text.
      
      The prior coding assumed that the set of operations that force a
      rewrite is identical to the set of operations that must be propagated
      to tables making use of the affected table's rowtype.  This is
      no longer true: even though the tuples in those tables wouldn't
      need to be modified, the data type change invalidate indexes built
      using those composite type columns.  Indexes on the table we're
      actually modifying can be invalidated too, of course, but the
      existing machinery is sufficient to handle that case.
      
      Along the way, add some debugging messages that make it possible
      to understand what operations ALTER TABLE is actually performing
      in these cases.
      
      Noah Misch and Robert Haas
      d31e2a49
    • T
      Clean up installation directory choices for extensions. · 24d1280c
      Tom Lane 提交于
      Arrange for the control files to be in $SHAREDIR/extension not
      $SHAREDIR/contrib, since we're generally trying to deprecate the term
      "contrib" and this is a once-in-many-moons opportunity to get rid of it in
      install paths.  Fix PGXS to install the $EXTENSION file into that directory
      no matter what MODULEDIR is set to; a nondefault MODULEDIR should only
      affect the script and secondary extension files.  Fix the control file
      directory parameter to be interpreted relative to $SHAREDIR, to avoid a
      surprising disconnect between how you specify that and what you set
      MODULEDIR to.
      
      Per discussion with David Wheeler.
      24d1280c
    • T
      Add support for multiple versions of an extension and ALTER EXTENSION UPDATE. · 12147499
      Tom Lane 提交于
      This follows recent discussions, so it's quite a bit different from
      Dimitri's original.  There will probably be more changes once we get a bit
      of experience with it, but let's get it in and start playing with it.
      
      This is still just core code.  I'll start converting contrib modules
      shortly.
      
      Dimitri Fontaine and Tom Lane
      12147499
    • A
      Fix comment recently obsoleted · 60141eef
      Alvaro Herrera 提交于
      60141eef
    • R
      Allow tab-completion of :variable even as first word on a line. · 59175745
      Robert Haas 提交于
      Christoph Berg
      59175745
    • R
      d309acf2
  3. 11 2月, 2011 8 次提交
  4. 10 2月, 2011 10 次提交
    • M
      Track last time for statistics reset on databases and bgwriter · 4c468b37
      Magnus Hagander 提交于
      Tracks one counter for each database, which is reset whenever
      the statistics for any individual object inside the database is
      reset, and one counter for the background writer.
      
      Tomas Vondra, reviewed by Greg Smith
      4c468b37
    • M
      Use NOWAIT when including WAL in base backup · a2e61ec3
      Magnus Hagander 提交于
      Avoids warning and waiting for the last segment to be
      archived, which isn't necessary when we're including the
      required WAL in the backup itself.
      a2e61ec3
    • H
      Allocate all entries in the serializable xid hash up-front, so that you don't · cecb5901
      Heikki Linnakangas 提交于
      run out of shared memory when you try to assign an xid to a transaction.
      
      Kevin Grittner
      cecb5901
    • A
    • T
      Fix improper matching of resjunk column names for FOR UPDATE in subselect. · e617f0d7
      Tom Lane 提交于
      Flattening of subquery range tables during setrefs.c could lead to the
      rangetable indexes in PlanRowMark nodes not matching up with the column
      names previously assigned to the corresponding resjunk ctid (resp. tableoid
      or wholerow) columns.  Typical symptom would be either a "cannot extract
      system attribute from virtual tuple" error or an Assert failure.  This
      wasn't a problem before 9.0 because we didn't support FOR UPDATE below the
      top query level, and so the final flattening could never renumber an RTE
      that was relevant to FOR UPDATE.  Fix by using a plan-tree-wide unique
      number for each PlanRowMark to label the associated resjunk columns, so
      that the number need not change during flattening.
      
      Per report from David Johnston (though I'm darned if I can see how this got
      past initial testing of the relevant code).  Back-patch to 9.0.
      e617f0d7
    • I
      Fix typo in the documentation. · 5478f991
      Itagaki Takahiro 提交于
      by Kevin Grittner
      5478f991
    • T
      Fix pg_upgrade to handle extensions. · caddcb8f
      Tom Lane 提交于
      This follows my proposal of yesterday, namely that we try to recreate the
      previous state of the extension exactly, instead of allowing CREATE
      EXTENSION to run a SQL script that might create some entirely-incompatible
      on-disk state.  In --binary-upgrade mode, pg_dump won't issue CREATE
      EXTENSION at all, but instead uses a kluge function provided by
      pg_upgrade_support to recreate the pg_extension row (and extension-level
      pg_depend entries) without creating any member objects.  The member objects
      are then restored in the same way as if they weren't members, in particular
      using pg_upgrade's normal hacks to preserve OIDs that need to be preserved.
      Then, for each member object, ALTER EXTENSION ADD is issued to recreate the
      pg_depend entry that marks it as an extension member.
      
      In passing, fix breakage in pg_upgrade's enum-type support: somebody didn't
      fix it when the noise word VALUE got added to ALTER TYPE ADD.  Also,
      rationalize parsetree representation of COMMENT ON DOMAIN and fix
      get_object_address() to allow OBJECT_DOMAIN.
      caddcb8f
    • P
      Information schema views for collation support · 2e2d56fe
      Peter Eisentraut 提交于
      Add the views character_sets, collations, and
      collation_character_set_applicability.
      2e2d56fe
    • T
      Rethink order of operations for dumping extension member objects. · 183d3cff
      Tom Lane 提交于
      My original idea of doing extension member identification during
      getDependencies() didn't work correctly: we have to mark member tables as
      not-to-be-dumped rather earlier than that, else their subsidiary objects
      like indexes get dumped anyway.  Rearrange code to mark them early enough.
      183d3cff
    • T
      Implement "ALTER EXTENSION ADD object". · 5bc178b8
      Tom Lane 提交于
      This is an essential component of making the extension feature usable;
      first because it's needed in the process of converting an existing
      installation containing "loose" objects of an old contrib module into
      the extension-based world, and second because we'll have to use it
      in pg_dump --binary-upgrade, as per recent discussion.
      
      Loosely based on part of Dimitri Fontaine's ALTER EXTENSION UPGRADE
      patch.
      5bc178b8
  5. 09 2月, 2011 10 次提交