1. 22 3月, 2011 1 次提交
    • T
      Reimplement planner's handling of MIN/MAX aggregate optimization (again). · 8df08c84
      Tom Lane 提交于
      Instead of playing cute games with pathkeys, just build a direct
      representation of the intended sub-select, and feed it through
      query_planner to get a Path for the index access.  This is a bit slower
      than 9.1's previous method, since we'll duplicate most of the overhead of
      query_planner; but since the whole optimization only applies to rather
      simple single-table queries, that probably won't be much of a problem in
      practice.  The advantage is that we get to do the right thing when there's
      a partial index that needs the implicit IS NOT NULL clause to be usable.
      Also, although this makes planagg.c be a bit more closely tied to the
      ordering of operations in grouping_planner, we can get rid of some coupling
      to lower-level parts of the planner.  Per complaint from Marti Raudsepp.
      8df08c84
  2. 21 3月, 2011 8 次提交
  3. 20 3月, 2011 8 次提交
  4. 19 3月, 2011 7 次提交
  5. 18 3月, 2011 10 次提交
    • R
      Make synchronous replication query cancel/die messages more consistent. · 7a379004
      Robert Haas 提交于
      Per a gripe from Thom Brown about my previous commit in this area,
      commit 9a56dc33.
      7a379004
    • R
      Remove ancient -X options to pg_dump, pg_dumpall, pg_restore. · c5eb835b
      Robert Haas 提交于
      The last version in which these options were documented is now EOL, so
      it's time to get rid of them for real.  We now use GNU-style long
      options instead.
      c5eb835b
    • R
      Remove bogus semicolons in recoveryPausesHere. · 777e8c00
      Robert Haas 提交于
      Without this, the startup process goes into a tight loop, consuming
      100% of one CPU and failing to respond to interrupts.
      777e8c00
    • R
      Minor fixes for high availability documentation. · f94c6f9c
      Robert Haas 提交于
      Erik Rijkers and me
      f94c6f9c
    • R
      76dbb461
    • R
      Remove bogus comment. · 02b1f84e
      Robert Haas 提交于
      02b1f84e
    • A
      Fix PL/Python memory leak involving array slices · 1c249fcf
      Alvaro Herrera 提交于
      Report and patch from Daniel Popowich, bug #5842
      (with some debugging help from Alex Hunsaker)
      1c249fcf
    • P
      Raise maximum value of several timeout parameters · 8c0a5eb7
      Peter Eisentraut 提交于
      The maximum value of deadlock_timeout, max_standby_archive_delay,
      max_standby_streaming_delay, log_min_duration_statement, and
      log_autovacuum_min_duration was INT_MAX/1000 milliseconds, which is
      about 35min, which is too short for some practical uses.  Raise the
      maximum value to INT_MAX; the code that uses the parameters already
      supports that just fine.
      8c0a5eb7
    • R
      Add pause_at_recovery_target to recovery.conf.sample; improve docs. · 84abea76
      Robert Haas 提交于
      Fujii Masao, but with the proposed behavior change reverted, and the
      rest adjusted accordingly.
      84abea76
    • R
      Fix various possible problems with synchronous replication. · 9a56dc33
      Robert Haas 提交于
      1. Don't ignore query cancel interrupts.  Instead, if the user asks to
      cancel the query after we've already committed it, but before it's on
      the standby, just emit a warning and let the COMMIT finish.
      
      2. Don't ignore die interrupts (pg_terminate_backend or fast shutdown).
      Instead, emit a warning message and close the connection without
      acknowledging the commit.  Other backends will still see the effect of
      the commit, but there's no getting around that; it's too late to abort
      at this point, and ignoring die interrupts altogether doesn't seem like
      a good idea.
      
      3. If synchronous_standby_names becomes empty, wake up all backends
      waiting for synchronous replication to complete.  Without this, someone
      attempting to shut synchronous replication off could easily wedge the
      entire system instead.
      
      4. Avoid depending on the assumption that if a walsender updates
      MyProc->syncRepState, we'll see the change even if we read it without
      holding the lock.  The window for this appears to be quite narrow (and
      probably doesn't exist at all on machines with strong memory ordering)
      but protecting against it is practically free, so do that.
      
      5. Remove useless state SYNC_REP_MUST_DISCONNECT, which isn't needed and
      doesn't actually do anything.
      
      There's still some further work needed here to make the behavior of fast
      shutdown plausible, but that looks complex, so I'm leaving it for a
      separate commit.  Review by Fujii Masao.
      9a56dc33
  6. 17 3月, 2011 3 次提交
  7. 16 3月, 2011 3 次提交
    • R
      Corrections to CREATE FOREIGN TABLE documentation. · 5f588e20
      Robert Haas 提交于
      Omit incorrect = sign, and properly document server_name parameter.
      
      Shigeru Hanada
      5f588e20
    • T
      Improve handling of unknown-type literals in UNION/INTERSECT/EXCEPT. · 72cfc17a
      Tom Lane 提交于
      This patch causes unknown-type Consts to be coerced to the resolved output
      type of the set operation at parse time.  Formerly such Consts were left
      alone until late in the planning stage.  The disadvantage of that approach
      is that it disables some optimizations, because the planner sees the set-op
      leaf query as having different output column types than the overall set-op.
      We saw an example of that in a recent performance gripe from Claudio
      Freire.
      
      Fixing such a Const requires scribbling on the leaf query in
      transformSetOperationTree, but that should be all right since if the leaf
      query's semantics depended on that output column, it would already have
      resolved the unknown to something else.
      
      Most of the bulk of this patch is a simple adjustment of
      transformSetOperationTree's API so that upper levels can get at the
      TargetEntry containing a Const to be replaced: it now returns a list of
      TargetEntries, instead of just the bare expressions.
      72cfc17a
    • B
      Remove unused copy_dir() function from pg_upgrade. · 898a14e1
      Bruce Momjian 提交于
      898a14e1