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

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

    … 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
    shortly.
    
    Dimitri Fontaine and Tom Lane
    tglsfdc committed Feb 12, 2011
Commits on Feb 11, 2011
  1. Fix comment recently obsoleted

    alvherre committed Feb 11, 2011
  2. Allow tab-completion of :variable even as first word on a line.

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

    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.
    Robert Haas committed Feb 11, 2011
Commits on Feb 10, 2011
  1. Extend "ALTER EXTENSION ADD object" to permit "DROP object" as well.

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

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

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

    …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.
    hlinnaka committed Feb 10, 2011
  5. Track last time for statistics reset on databases and bgwriter

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

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

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

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

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

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

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

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

    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.
    tglsfdc committed Feb 9, 2011
  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,…

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

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

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

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

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

    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
    petere committed Feb 8, 2011
  5. Fix typo, by Kevin Grittner.

    hlinnaka committed Feb 8, 2011
  6. Named restore points in recovery. Users can record named points, then

    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
    simonat2ndQuadrant committed Feb 8, 2011
  7. Basic Recovery Control functions for use in Hot Standby. Pause, Resume,

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