1. 27 Feb, 2011 5 commits
    • Peter Eisentraut's avatar
      Remove remaining expected file for Python 2.2 · 438cdf6e
      Peter Eisentraut authored
      We don't have complete expected coverage for Python 2.2 anyway, so it
      doesn't seem worth keeping this one around that no one appears to be
      updating anyway.  Visual inspection of the differences ought to be
      good enough for those few who care about this obsolete Python version.
      438cdf6e
    • Tom Lane's avatar
      Refactor the executor's API to support data-modifying CTEs better. · a874fe7b
      Tom Lane authored
      The originally committed patch for modifying CTEs didn't interact well
      with EXPLAIN, as noted by myself, and also had corner-case problems with
      triggers, as noted by Dean Rasheed.  Those problems show it is really not
      practical for ExecutorEnd to call any user-defined code; so split the
      cleanup duties out into a new function ExecutorFinish, which must be called
      between the last ExecutorRun call and ExecutorEnd.  Some Asserts have been
      added to these functions to help verify correct usage.
      
      It is no longer necessary for callers of the executor to call
      AfterTriggerBeginQuery/AfterTriggerEndQuery for themselves, as this is now
      done by ExecutorStart/ExecutorFinish respectively.  If you really need to
      suppress that and do it for yourself, pass EXEC_FLAG_SKIP_TRIGGERS to
      ExecutorStart.
      
      Also, refactor portal commit processing to allow for the possibility that
      PortalDrop will invoke user-defined code.  I think this is not actually
      necessary just yet, since the portal-execution-strategy logic forces any
      non-pure-SELECT query to be run to completion before we will consider
      committing.  But it seems like good future-proofing.
      a874fe7b
    • Bruce Momjian's avatar
      Be less detailed about reporting shared memory failure by avoiding the · 67a5e727
      Bruce Momjian authored
      output of actual Postgres parameter _values_ related to shared memory,
      and suggesting that these are only possible parameters to reduce.
      67a5e727
    • Magnus Hagander's avatar
      Fix verbose display of REPLICATION role attribute · b04137a2
      Magnus Hagander authored
      Josh Kupershmidt
      b04137a2
    • Bruce Momjian's avatar
      Fix markup for pg_options_to_table() to report the return column names, · 721ea41f
      Bruce Momjian authored
      per suggestion from Andrew.
      721ea41f
  2. 26 Feb, 2011 7 commits
  3. 25 Feb, 2011 4 commits
    • Tom Lane's avatar
      Support data-modifying commands (INSERT/UPDATE/DELETE) in WITH. · 389af951
      Tom Lane authored
      This patch implements data-modifying WITH queries according to the
      semantics that the updates all happen with the same command counter value,
      and in an unspecified order.  Therefore one WITH clause can't see the
      effects of another, nor can the outer query see the effects other than
      through the RETURNING values.  And attempts to do conflicting updates will
      have unpredictable results.  We'll need to document all that.
      
      This commit just fixes the code; documentation updates are waiting on
      author.
      
      Marko Tiikkaja and Hitoshi Harada
      389af951
    • Alvaro Herrera's avatar
      Update pageinspect--1.0.sql to match the upgrade script · 0056066d
      Alvaro Herrera authored
      Per comment from Tom
      0056066d
    • Alvaro Herrera's avatar
      Fix pageinspect's heap_page_item to return infomasks as 32 bit values · a338d654
      Alvaro Herrera authored
      HeapTupleHeader's t_infomask and t_infomask2 are defined as 16-bit
      unsigned integers, so when the 16th bit was set, heap_page_item was
      returning them as negative values, which was ugly.
      
      The change to pageinspect--unpackaged--1.0.sql allows a module upgraded
      from 9.0 to be cleanly updated from the previous definition.
      a338d654
    • Robert Haas's avatar
      Named restore point improvements. · 79ad8fc5
      Robert Haas authored
      Emit a log message when creating a named restore point, and improve
      documentation for pg_create_restore_point().
      
      Euler Taveira de Oliveira, 	per suggestions from Thom Brown, with some
      additional wordsmithing by me.
      79ad8fc5
  4. 24 Feb, 2011 2 commits
  5. 23 Feb, 2011 3 commits
  6. 22 Feb, 2011 7 commits
    • Peter Eisentraut's avatar
      Add PL/Python functions for quoting strings · 1c51c7d5
      Peter Eisentraut authored
      Add functions plpy.quote_ident, plpy.quote_literal,
      plpy.quote_nullable, which wrap the equivalent SQL functions.
      
      To be able to propagate char * constness properly, make the argument
      of quote_literal_cstr() const char *.  This also makes it more
      consistent with quote_identifier().
      
      Jan Urbański, reviewed by Hitoshi Harada, some refinements by Peter
      Eisentraut
      1c51c7d5
    • Robert Haas's avatar
      Fix a couple of unlogged tables goofs. · 3e6b305d
      Robert Haas authored
      "SELECT ... INTO UNLOGGED tabname" works, but wasn't documented; CREATE
      UNLOGGED SEQUENCE and CREATE UNLOGGED VIEW failed an assertion, instead
      of throwing a sensible error.
      
      Latter issue reported by Itagaki Takahiro; patch review by Tom Lane.
      3e6b305d
    • Tom Lane's avatar
      Allow binary I/O of type "void". · 1ab9b012
      Tom Lane authored
      void_send is useful for the same reason that void_out doesn't throw error,
      namely that someone might do "select void_returning_func(...)"  from a
      client that prefers to operate in binary mode.  The void_recv function may
      or may not have any practical use, but we provide it for symmetry.
      
      Radosław Smogura
      1ab9b012
    • Bruce Momjian's avatar
    • Tom Lane's avatar
      Remove ExecRemoveJunk(), which is no longer used anywhere. · 2e852e54
      Tom Lane authored
      This was a leftover from the pre-8.1 design of junkfilters.  It doesn't
      seem to have any reason to live, since it's merely a combination of two
      easy function calls, and not a well-designed combination at that (it
      encourages callers to leak the result tuple).
      2e852e54
    • Tom Lane's avatar
      Fix dangling-pointer problem in before-row update trigger processing. · a210be77
      Tom Lane authored
      ExecUpdate checked for whether ExecBRUpdateTriggers had returned a new
      tuple value by seeing if the returned tuple was pointer-equal to the old
      one.  But the "old one" was in estate->es_junkFilter's result slot, which
      would be scribbled on if we had done an EvalPlanQual update in response to
      a concurrent update of the target tuple; therefore we were comparing a
      dangling pointer to a live one.  Given the right set of circumstances we
      could get a false match, resulting in not forcing the tuple to be stored in
      the slot we thought it was stored in.  In the case reported by Maxim Boguk
      in bug #5798, this led to "cannot extract system attribute from virtual
      tuple" failures when trying to do "RETURNING ctid".  I believe there is a
      very-low-probability chance of more serious errors, such as generating
      incorrect index entries based on the original rather than the
      trigger-modified version of the row.
      
      In HEAD, change all of ExecBRInsertTriggers, ExecIRInsertTriggers,
      ExecBRUpdateTriggers, and ExecIRUpdateTriggers so that they continue to
      have similar APIs.  In the back branches I just changed
      ExecBRUpdateTriggers, since there is no bug in the ExecBRInsertTriggers
      case.
      a210be77
    • Bruce Momjian's avatar
      Move information_schema duplicate constraint note to the top of the · fee78027
      Bruce Momjian authored
      information schema documentation because it affects several tables.
      fee78027
  7. 21 Feb, 2011 4 commits
  8. 20 Feb, 2011 5 commits
  9. 19 Feb, 2011 3 commits