1. 27 Feb, 2011 1 commit
  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 7 commits