1. 29 Jul, 2010 2 commits
    • Robert Haas's avatar
      Fix possible page corruption by ALTER TABLE .. SET TABLESPACE. · 1a078629
      Robert Haas authored
      If a zeroed page is present in the heap, ALTER TABLE .. SET TABLESPACE will
      set the LSN and TLI while copying it, which is wrong, and heap_xlog_newpage()
      will do the same thing during replay, so the corruption propagates to any
      standby.  Note, however, that the bug can't be demonstrated unless archiving
      is enabled, since in that case we skip WAL logging altogether, and the LSN/TLI
      are not set.
      
      Back-patch to 8.0; prior releases do not have tablespaces.
      
      Analysis and patch by Jeff Davis.  Adjustments for back-branches and minor
      wordsmithing by me.
      1a078629
    • Simon Riggs's avatar
      Add explicit regression tests for ALTER TABLE lock levels. · 04e17bae
      Simon Riggs authored
      Use this to catch a couple of lock level assignments that slipped
      through manual testing, per Peter Eisentraut.
      04e17bae
  2. 28 Jul, 2010 5 commits
    • Peter Eisentraut's avatar
    • Tom Lane's avatar
      Fix oversight in new EvalPlanQual logic: the second loop over the ExecRowMark · 77c75076
      Tom Lane authored
      list in ExecLockRows() forgot to allow for the possibility that some of the
      rowmarks are for child tables that aren't relevant to the current row.
      Per report from Kenichiro Tanaka.
      77c75076
    • Simon Riggs's avatar
      Reduce lock levels of CREATE TRIGGER and some ALTER TABLE, CREATE RULE actions. · 2dbbda02
      Simon Riggs authored
      Avoid hard-coding lockmode used for many altering DDL commands, allowing easier
      future changes of lock levels. Implementation of initial analysis on DDL
      sub-commands, so that many lock levels are now at ShareUpdateExclusiveLock or
      ShareRowExclusiveLock, allowing certain DDL not to block reads/writes.
      First of number of planned changes in this area; additional docs required
      when full project complete.
      2dbbda02
    • Tom Lane's avatar
      Fix potential failure when hashing the output of a subplan that produces · 133924e1
      Tom Lane authored
      a pass-by-reference datatype with a nontrivial projection step.
      We were using the same memory context for the projection operation as for
      the temporary context used by the hashtable routines in execGrouping.c.
      However, the hashtable routines feel free to reset their temp context at
      any time, which'd lead to destroying input data that was still needed.
      Report and diagnosis by Tao Ma.
      
      Back-patch to 8.1, where the problem was introduced by the changes that
      allowed us to work with "virtual" tuples instead of materializing intermediate
      tuple values everywhere.  The earlier code looks quite similar, but it doesn't
      suffer the problem because the data gets copied into another context as a
      result of having to materialize ExecProject's output tuple.
      133924e1
    • Peter Eisentraut's avatar
      Show psql timing output even in quiet mode · 4ff9c8dd
      Peter Eisentraut authored
      These two settings ought to be independent of each other.
      4ff9c8dd
  3. 27 Jul, 2010 5 commits
  4. 26 Jul, 2010 3 commits
  5. 25 Jul, 2010 4 commits
  6. 24 Jul, 2010 3 commits
  7. 23 Jul, 2010 3 commits
  8. 22 Jul, 2010 4 commits
    • Robert Haas's avatar
      Add missing function prototype. · bca03b12
      Robert Haas authored
      Fujii Masao
      bca03b12
    • Robert Haas's avatar
    • Robert Haas's avatar
      Add options to force quoting of all identifiers. · ce68df46
      Robert Haas authored
      I've added a quote_all_identifiers GUC which affects the behavior
      of the backend, and a --quote-all-identifiers argument to pg_dump
      and pg_dumpall which sets the GUC and also affects the quoting done
      internally by those applications.
      
      Design by Tom Lane; review by Alex Hunsaker; in response to bug #5488
      filed by Hartmut Goebel.
      ce68df46
    • Robert Haas's avatar
      Centralize DML permissions-checking logic. · b8c6c71d
      Robert Haas authored
      Remove bespoke code in DoCopy and RI_Initial_Check, which now instead
      fabricate call ExecCheckRTPerms with a manufactured RangeTblEntry.
      This is intended to make it feasible for an enhanced security provider
      to actually make use of ExecutorCheckPerms_hook, but also has the
      advantage that RI_Initial_Check can allow use of the fast-path when
      column-level but not table-level permissions are present.
      
      KaiGai Kohei.  Reviewed (in an earlier version) by Stephen Frost, and by me.
      Some further changes to the comments by me.
      b8c6c71d
  9. 20 Jul, 2010 8 commits
  10. 19 Jul, 2010 1 commit
  11. 18 Jul, 2010 2 commits
    • Tom Lane's avatar
      Remove unnecessary "Not safe to send CSV data" complaint from elog.c's fallback · cf5305f4
      Tom Lane authored
      path when CSV logging is configured but not yet operational.  It's sufficient
      to send the message to stderr, as we were already doing, and the "Not safe"
      gripe has already confused at least two core members ...
      
      Backpatch to 9.0, but not further --- doesn't seem appropriate to change
      this behavior in stable branches.
      cf5305f4
    • Tom Lane's avatar
      Allow ORDER BY/GROUP BY/etc items to match targetlist items regardless of · fba999cb
      Tom Lane authored
      any implicit casting previously applied to the targetlist item.  This is
      reasonable because the implicit cast, by definition, wasn't written by the
      user; so we are preserving the expected behavior that ORDER BY items match
      textually equivalent tlist items.  The case never arose before because there
      couldn't be any implicit casting of a top-level SELECT item before we process
      ORDER BY etc.  But now it can arise in the context of aggregates containing
      ORDER BY clauses, since the "targetlist" is the already-casted list of
      arguments for the aggregate.  The net effect is that the datatype used for
      ORDER BY/DISTINCT purposes is the aggregate's declared input type, not that
      of the original input column; which is a bit debatable but not horrendous,
      and to do otherwise would require major rework that doesn't seem justified.
      
      Per bug #5564 from Daniel Grace.  Back-patch to 9.0 where aggregate ORDER BY
      was implemented.
      fba999cb