1. 14 2月, 2011 3 次提交
    • T
      Convert contrib modules to use the extension facility. · 629b3af2
      Tom Lane 提交于
      This isn't fully tested as yet, in particular I'm not sure that the
      "foo--unpackaged--1.0.sql" scripts are OK.  But it's time to get some
      buildfarm cycles on it.
      
      sepgsql is not converted to an extension, mainly because it seems to
      require a very nonstandard installation process.
      
      Dimitri Fontaine and Tom Lane
      629b3af2
    • T
      Support replacing MODULE_PATHNAME during extension script file execution. · e693e97d
      Tom Lane 提交于
      This avoids the need to find a way to make PGXS' .sql.in-to-.sql rule
      insert the right thing.  We'll just deprecate use of that hack for
      extensions.
      e693e97d
    • T
      Change the naming convention for extension files to use double dashes. · 27d5d7ab
      Tom Lane 提交于
      This allows us to have an unambiguous rule for deconstructing the names
      of script files and secondary control files, without having to forbid
      extension and version names from containing any dashes.  We do have to
      forbid them from containing double dashes or leading/trailing dashes,
      but neither restriction is likely to bother anyone in practice.
      Per discussion, this seems like a better solution overall than the
      original design.
      27d5d7ab
  2. 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
  3. 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
  4. 11 2月, 2011 8 次提交
  5. 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
  6. 09 2月, 2011 7 次提交
    • B
      Remove more SGML tabs. · 70802e0d
      Bruce Momjian 提交于
      70802e0d
    • B
      Remove tabs in SGML file. · ee4b67fc
      Bruce Momjian 提交于
      ee4b67fc
    • H
      Fix allocation of RW-conflict pool in the new predicate lock manager, and · 036bb158
      Heikki Linnakangas 提交于
      also take the RW-conflict pool into account in the PredicateLockShmemSize()
      estimate.
      036bb158
    • M
      Implement NOWAIT option for BASE_BACKUP command · 3144c33a
      Magnus Hagander 提交于
      Specifying this option makes the server not wait for the
      xlog to be archived, or emit a warning that it can't,
      instead leaving the responsibility with the client.
      
      This is useful when the log is being streamed using
      the streaming protocol in parallel with the backup,
      without having log archiving enabled.
      3144c33a
    • T
      Suppress some compiler warnings in recent commits. · 375e5b0a
      Tom Lane 提交于
      Older versions of gcc tend to throw "variable might be clobbered by
      `longjmp' or `vfork'" warnings whenever a variable is assigned in more than
      one place and then used after the end of a PG_TRY block.  That's reasonably
      easy to work around in execute_extension_script, and the overhead of
      unconditionally saving/restoring the GUC variables seems unlikely to be a
      serious concern.
      
      Also clean up logic in ATExecValidateConstraint to make it easier to read
      and less likely to provoke "variable might be used uninitialized in this
      function" warnings.
      375e5b0a
    • T
      Fix merge conflict. · 0bc0bd07
      Tom Lane 提交于
      0bc0bd07
    • T
      Core support for "extensions", which are packages of SQL objects. · d9572c4e
      Tom Lane 提交于
      This patch adds the server infrastructure to support extensions.
      There is still one significant loose end, namely how to make it play nice
      with pg_upgrade, so I am not yet committing the changes that would make
      all the contrib modules depend on this feature.
      
      In passing, fix a disturbingly large amount of breakage in
      AlterObjectNamespace() and callers.
      
      Dimitri Fontaine, reviewed by Anssi Kääriäinen,
      Itagaki Takahiro, Tom Lane, and numerous others
      d9572c4e