1. 16 Oct, 2010 2 commits
  2. 15 Oct, 2010 8 commits
  3. 14 Oct, 2010 10 commits
  4. 13 Oct, 2010 6 commits
  5. 12 Oct, 2010 3 commits
    • Tom Lane's avatar
      Remove some unnecessary tests of pgstat_track_counts. · f4d242ef
      Tom Lane authored
      We may as well make pgstat_count_heap_scan() and related macros just count
      whenever rel->pgstat_info isn't null.  Testing pgstat_track_counts buys
      nothing at all in the normal case where that flag is ON; and when it's OFF,
      the pgstat_info link will be null, so it's still a useless test.
      
      This change is unlikely to buy any noticeable performance improvement,
      but a cycle shaved is a cycle earned; and my investigations earlier today
      convinced me that we're down to the point where individual instructions in
      the inner execution loops are starting to matter.
      f4d242ef
    • Alvaro Herrera's avatar
      Fix typo · 82659e04
      Alvaro Herrera authored
      82659e04
    • Tom Lane's avatar
      Fix plpython so that it again honors typmod while assigning to tuple fields. · 09130e58
      Tom Lane authored
      This was broken in 9.0 while improving plpython's conversion behavior for
      bytea and boolean.  Per bug report from maizi.
      09130e58
  6. 11 Oct, 2010 2 commits
    • Tom Lane's avatar
      Fix assorted bugs in GIN's WAL replay logic. · 4016bdef
      Tom Lane authored
      The original coding was quite sloppy about handling the case where
      XLogReadBuffer fails (because the page has since been deleted).  This
      would result in either "bad buffer id: 0" or an Assert failure during
      replay, if indeed the page were no longer there.  In a couple of places
      it also neglected to check whether the change had already been applied,
      which would probably result in corrupted index contents.  I believe that
      bug #5703 is an instance of the first problem.  These issues could show up
      without replication, but only if you were unfortunate enough to crash
      between modification of a GIN index and the next checkpoint.
      
      Back-patch to 8.2, which is as far back as GIN has WAL support.
      4016bdef
    • Tom Lane's avatar
      Improve the planner's simplification of NOT constructs. · 220e45bf
      Tom Lane authored
      This patch merges the responsibility for NOT-flattening into
      eval_const_expressions' processing.  It wasn't done that way originally
      because prepqual.c is far older than eval_const_expressions.  But putting
      this work into eval_const_expressions saves one pass over the qual trees,
      and in fact saves even more than that because we can exploit the knowledge
      that the subexpressions have already been recursively simplified.  Doing it
      this way also lets us do it uniformly over all expressions, whereas
      prepqual.c formerly just did it at top level to save cycles.  That should
      improve the planner's ability to recognize logically-equivalent constructs.
      
      While at it, also add the ability to fold a NOT into BooleanTest and
      NullTest constructs (the latter only for the scalar-datatype case).
      
      Per discussion of bug #5702.
      220e45bf
  7. 10 Oct, 2010 3 commits
    • Tom Lane's avatar
      Teach psql to do tab completion for names of psql variables. · b48b9cb3
      Tom Lane authored
      Completion is supported in the context of \set and when interpolating
      a variable value using :foo etc.
      
      In passing, fix some places in tab-complete.c that weren't following
      project style for comment formatting.
      
      Pavel Stehule, reviewed by Itagaki Takahiro
      b48b9cb3
    • Tom Lane's avatar
      Support triggers on views. · 2ec993a7
      Tom Lane authored
      This patch adds the SQL-standard concept of an INSTEAD OF trigger, which
      is fired instead of performing a physical insert/update/delete.  The
      trigger function is passed the entire old and/or new rows of the view,
      and must figure out what to do to the underlying tables to implement
      the update.  So this feature can be used to implement updatable views
      using trigger programming style rather than rule hacking.
      
      In passing, this patch corrects the names of some columns in the
      information_schema.triggers view.  It seems the SQL committee renamed
      them somewhere between SQL:99 and SQL:2003.
      
      Dean Rasheed, reviewed by Bernd Helmle; some additional hacking by me.
      2ec993a7
    • Peter Eisentraut's avatar
      Extensive ECPG documentation improvements · f7b15b50
      Peter Eisentraut authored
      Satoshi Nagayasu, reviewed and revised by Peter Eisentraut
      
      Since this introduces new refentries that we probably don't want to publish as
      man pages, tweak man page stylesheet to omit man pages without manvolnum
      element.
      
      Peter Eisentraut
      f7b15b50
  8. 09 Oct, 2010 1 commit
  9. 08 Oct, 2010 5 commits
    • Bruce Momjian's avatar
      f7dbddac
    • Tom Lane's avatar
      Fix sloppy usage of TRIGGER_FIRED_BEFORE/TRIGGER_FIRED_AFTER. · caaf2e84
      Tom Lane authored
      Various places were testing TRIGGER_FIRED_BEFORE() where what they really
      meant was !TRIGGER_FIRED_AFTER(), or vice versa.  This needs to be cleaned
      up because there are about to be more than two possible states.
      
      We might want to note this in the 9.1 release notes as something for
      trigger authors to double-check.
      
      For consistency's sake I also changed some places that assumed that
      TRIGGER_FIRED_FOR_ROW and TRIGGER_FIRED_FOR_STATEMENT are necessarily
      mutually exclusive; that's not in immediate danger of breaking, but
      it's still sloppier than it should be.
      
      Extracted from Dean Rasheed's patch for triggers on views.  I'm committing
      this separately since it's an identifiable separate issue, and is the
      only reason for the patch to touch most of these particular files.
      caaf2e84
    • Robert Haas's avatar
    • Tom Lane's avatar
      Improve logging in VACUUM FULL VERBOSE and CLUSTER VERBOSE. · 9cc8c84e
      Tom Lane authored
      This patch resurrects some of the information that could be logged by the
      old, now-dead implementation of VACUUM FULL, in particular counts of live
      and dead tuples and the time taken for the table rebuild proper.  There's
      still no logging about the ensuing index rebuilds, though.
      
      Itagaki Takahiro
      9cc8c84e
    • Tom Lane's avatar
      Eliminate some repetitive coding in tuplesort.c. · 26a7b48e
      Tom Lane authored
      Use a macro LogicalTapeReadExact() to encapsulate the error check when
      we want to read an exact number of bytes from a "tape".  Per a suggestion
      of Takahiro Itagaki.
      26a7b48e