Commits on Feb 12, 2011
  1. Clean up installation directory choices for extensions.

    tglsfdc committed Feb 12, 2011
    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
    Per discussion with David Wheeler.
  2. Add support for multiple versions of an extension and ALTER EXTENSION…

    tglsfdc committed Feb 12, 2011
    … UPDATE.
    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
    Dimitri Fontaine and Tom Lane
Commits on Feb 11, 2011
  1. Allow tab-completion of :variable even as first word on a line.

    Robert Haas
    Robert Haas committed Feb 11, 2011
    Christoph Berg
  2. Tweak find_composite_type_dependencies API a bit more.

    Robert Haas
    Robert Haas committed Feb 11, 2011
    Per discussion with Noah Misch, the previous coding, introduced by
    my commit 65377e0 on 2011-02-06,
    was really an abuse of RELKIND_COMPOSITE_TYPE, since the caller in
    typecmds.c is actually passing the name of a domain.  So go back
    having a type name argument, but make the first argument a Relation
    rather than just a string so we can tell whether it's a table or
    a foreign table and emit the proper error message.
Commits on Feb 10, 2011
  1. Extend "ALTER EXTENSION ADD object" to permit "DROP object" as well.

    tglsfdc committed Feb 10, 2011
    Per discussion, this is something we should have sooner rather than later,
    and it doesn't take much additional code to support it.
  2. Update comment

    petere committed Feb 10, 2011
    It was still claiming that the keyword list is in keywords.c, when it
    is now in kwlist.h.
  3. Fix pg_get_encoding_from_locale() function call parameters to match

    bmomjian committed Feb 10, 2011
    prototype for cases where there is no multi-language support.
  4. Send status updates back from standby server to master, indicating ho…

    hlinnaka committed Feb 10, 2011
    …w far
    the standby has written, flushed, and applied the WAL. At the moment, this
    is for informational purposes only, the values are only shown in
    pg_stat_replication system view, but in the future they will also be needed
    for synchronous replication.
    Extracted from Simon riggs' synchronous replication patch by Robert Haas, with
    some tweaking by me.
  5. Track last time for statistics reset on databases and bgwriter

    mhagander committed Feb 10, 2011
    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
  6. Use NOWAIT when including WAL in base backup

    mhagander committed Feb 10, 2011
    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.
  7. Allocate all entries in the serializable xid hash up-front, so that y…

    hlinnaka committed Feb 10, 2011
    …ou don't
    run out of shared memory when you try to assign an xid to a transaction.
    Kevin Grittner
  8. Fix improper matching of resjunk column names for FOR UPDATE in subse…

    tglsfdc committed Feb 10, 2011
    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.
  9. Fix typo in the documentation.

    ItGacky committed Feb 10, 2011
    by Kevin Grittner
  10. Fix pg_upgrade to handle extensions.

    tglsfdc committed Feb 10, 2011
    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.
Commits on Feb 9, 2011
  1. Information schema views for collation support

    petere committed Feb 9, 2011
    Add the views character_sets, collations, and
  2. Rethink order of operations for dumping extension member objects.

    tglsfdc committed Feb 9, 2011
    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.
  3. Implement "ALTER EXTENSION ADD object".

    tglsfdc committed Feb 9, 2011
    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
  4. Remove more SGML tabs.

    bmomjian committed Feb 9, 2011
  5. Remove tabs in SGML file.

    bmomjian committed Feb 9, 2011
  6. Fix allocation of RW-conflict pool in the new predicate lock manager,…

    hlinnaka committed Feb 9, 2011
    … and
    also take the RW-conflict pool into account in the PredicateLockShmemSize()
  7. Implement NOWAIT option for BASE_BACKUP command

    mhagander committed Feb 9, 2011
    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.
Commits on Feb 8, 2011
  1. Suppress some compiler warnings in recent commits.

    tglsfdc committed Feb 8, 2011
    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.
  2. Fix merge conflict.

    tglsfdc committed Feb 8, 2011
  3. Core support for "extensions", which are packages of SQL objects.

    tglsfdc committed Feb 8, 2011
    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
  4. Per-column collation support

    petere committed Feb 8, 2011
    This adds collation support for columns and domains, a COLLATE clause
    to override it per expression, and B-tree index support.
    Peter Eisentraut
    reviewed by Pavel Stehule, Itagaki Takahiro, Robert Haas, Noah Misch
  5. Named restore points in recovery. Users can record named points, then

    simonat2ndQuadrant committed Feb 8, 2011
    new recovery.conf parameter recovery_target_name allows PITR to
    specify named points as recovery targets.
    Jaime Casanova, reviewed by Euler Taveira de Oliveira, plus minor edits
  6. Basic Recovery Control functions for use in Hot Standby. Pause, Resume,

    simonat2ndQuadrant committed Feb 8, 2011
    Status check functions only. Also, new recovery.conf parameter to
    pause_at_recovery_target, default on.
    Simon Riggs, reviewed by Fujii Masao