Commits on Dec 20, 2009
  1. @petere

    Version stamp 8.5alpha3

    petere committed Dec 20, 2009
  2. Fix two small typos in Hot Standby docs.

    John Naylor
    Robert Haas committed Dec 20, 2009
Commits on Dec 19, 2009
  1. @petere

    Add documentation why reassigning PL/Python function parameters in the

    function body can have undesirable outcomes. (bug #5232)
    petere committed Dec 19, 2009
  2. @petere

    Add hot standby to release notes

    petere committed Dec 19, 2009
  3. @petere

    Translation updates

    petere committed Dec 19, 2009
  4. @bmomjian

    Convert tabs to spaces in SGML.

    bmomjian committed Dec 19, 2009
  5. @tglsfdc
  6. @ItGacky

    Add a whitespace to fix the query to dump large objects.

    PL/pgSQL-by-default patch broke the code for 8.3 <= server_version < 8.5.
    ItGacky committed Dec 19, 2009
  7. @tglsfdc

    Bump catversion to reflect the fact that HS patch changed pg_proc

    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.)
    tglsfdc committed Dec 19, 2009
  8. @ItGacky
  9. @tglsfdc
  10. @tglsfdc
  11. @alvherre
  12. @alvherre

    Update tutorial on the fact that backslash commands are no longer lis…

    …ted in
    psql's startup banner.
    alvherre committed Dec 19, 2009
  13. @tglsfdc

    Adjust some more places in the documentation to match the fact that

    plpgsql is now installed by default.
    tglsfdc committed Dec 19, 2009
  14. @simonat2ndQuadrant

    Allow read only connections during recovery, known as Hot Standby.

    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.
    simonat2ndQuadrant committed Dec 19, 2009
  15. @bmomjian

    binary migration: pg_migrator

    Add comments about places where system oids have to be preserved for
    binary migration.
    bmomjian committed Dec 19, 2009
  16. Fix a few typos in the latest 8.5alpha3 release notes.

    Robert Haas committed Dec 19, 2009
Commits on Dec 18, 2009
  1. @petere
  2. @tglsfdc
  3. @bmomjian
  4. @tglsfdc

    Force the TZ environment variable to be set during initdb. This is to

    short-circuit the rather expensive identify_system_timezone() procedure,
    which we have no real need for during initdb since nothing done here depends
    on the timezone setting.  Since we launch quite a few standalone backends
    during the initdb sequence, this adds up to a significant savings, and seems
    worth doing to save developer time even though it will hardly matter to end
    users.  Per my report today on pgsql-hackers.
    tglsfdc committed Dec 18, 2009
Commits on Dec 17, 2009
  1. Improve documentation for pg_largeobject changes.

    Rewrite the documentation in more idiomatic English, and in the process make
    it somewhat more succinct.  Move the discussion of specific large object
    privileges out of the "server-side functions" section, where it certainly
    doesn't belong, and into "implementation features".  That might not be
    exactly right either, but it doesn't seem worth creating a new section for
    this amount of information. Fix a few spelling and layout problems, too.
    Robert Haas committed Dec 17, 2009
  2. Reverting accidently commited changes.

    Michael Meskes committed Dec 17, 2009
Commits on Dec 16, 2009
  1. @petere

    Don't unblock SIGQUIT in the SIGQUIT handler

    This was possibly linked to a deadlock-like situation in glibc syslog code
    invoked by the ereport call in quickdie().  In any case, a signal handler
    should not unblock its own signal unless there is a specific reason to.
    petere committed Dec 16, 2009
  2. @petere

    If there is no sigdelset(), define it as a macro.

    This removes some duplicate code that recreated the identical workaround
    when the newer signal API is missing.
    petere committed Dec 16, 2009
  3. @tglsfdc

    Avoid a premature coercion failure in transformSetOperationTree() when

    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.
    tglsfdc committed Dec 16, 2009
  4. Several fixes for EXPLAIN (FORMAT YAML), plus one for EXPLAIN (FORMAT…

    … JSON).
    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.
    Robert Haas committed Dec 16, 2009
  5. @mhagander

    Remove spurious '22' that clearly shouldn't be there.

    David E. Wheeler
    mhagander committed Dec 16, 2009
  6. Fixed auto-prepare to not try preparing statements that are not prepa…

    …rable. Bug
    found and solved by Boszormenyi Zoltan <>, some small adjustments
    by me.
    Michael Meskes committed Dec 16, 2009
Commits on Dec 15, 2009
  1. @petere

    Python 3 support in PL/Python

    Behaves more or less unchanged compared to Python 2, but the new language
    variant is called plpython3u.  Documentation describing the naming scheme
    is included.
    petere committed Dec 15, 2009
  2. @tglsfdc

    Avoid unnecessary copying of source string when generating a cloned T…

    For long source strings the copying results in O(N^2) behavior, and the
    multiplier can be significant if wide-char conversion is involved.
    Andres Freund, reviewed by Kevin Grittner.
    tglsfdc committed Dec 15, 2009
  3. @tglsfdc

    Add a hook to let loadable modules get control at ProcessUtility exec…

    and use it to extend contrib/pg_stat_statements to track utility commands.
    Itagaki Takahiro, reviewed by Euler Taveira de Oliveira.
    tglsfdc committed Dec 15, 2009
  4. @tglsfdc

    Support ORDER BY within aggregate function calls, at long last provid…

    …ing a
    non-kluge method for controlling the order in which values are fed to an
    aggregate function.  At the same time eliminate the old implementation
    restriction that DISTINCT was only supported for single-argument aggregates.
    Possibly release-notable behavioral change: formerly, agg(DISTINCT x)
    dropped null values of x unconditionally.  Now, it does so only if the
    agg transition function is strict; otherwise nulls are treated as DISTINCT
    normally would, ie, you get one copy.
    Andrew Gierth, reviewed by Hitoshi Harada
    tglsfdc committed Dec 15, 2009
  5. @tglsfdc

    Fix broken markup.

    tglsfdc committed Dec 15, 2009