1. 23 Nov, 2008 1 commit
    • Tom Lane's avatar
      Teach RequestCheckpoint() to wait and retry a few times if it can't signal · 6f6a6d8b
      Tom Lane authored
      the bgwriter immediately.  This covers the case where the bgwriter is still
      starting up, as seen in a recent buildfarm failure.  In future it might also
      assist with clean recovery after a bgwriter termination and restart ---
      right now the postmaster treats early bgwriter exit as a system crash,
      but that might not always be so.
      6f6a6d8b
  2. 22 Nov, 2008 1 commit
    • Tom Lane's avatar
      Switch the planner over to treating qualifications of a JOIN_SEMI join as · 8309d006
      Tom Lane authored
      though it is an inner rather than outer join type.  This essentially means
      that we don't bother to separate "pushed down" qual conditions from actual
      join quals at a semijoin plan node; which is okay because the restrictions of
      SQL syntax make it impossible to have a pushed-down qual that references the
      inner side of a semijoin.  This allows noticeably better optimization of
      IN/EXISTS cases than we had before, since the equivalence-class machinery can
      now use those quals.  Also fix a couple of other mistakes that had essentially
      disabled the ability to unique-ify the inner relation and then join it to just
      a subset of the left-hand relations.  An example case using the regression
      database is
      
      select * from tenk1 a, tenk1 b
      where (a.unique1,b.unique2) in (select unique1,unique2 from tenk1 c);
      
      which is planned reasonably well by 8.3 and earlier but had been forcing a
      cartesian join of a/b in CVS HEAD.
      8309d006
  3. 21 Nov, 2008 7 commits
  4. 20 Nov, 2008 8 commits
  5. 19 Nov, 2008 8 commits
    • Peter Eisentraut's avatar
      Add WITH as a refname to the SELECT reference page. · 50548676
      Peter Eisentraut authored
      Now "\help WITH" works and there will be a separate WITH(7) man page.
      50548676
    • Heikki Linnakangas's avatar
      Rethink the way FSM truncation works. Instead of WAL-logging FSM · 33960006
      Heikki Linnakangas authored
      truncations in FSM code, call FreeSpaceMapTruncateRel from smgr_redo. To
      make that cleaner from modularity point of view, move the WAL-logging one
      level up to RelationTruncate, and move RelationTruncate and all the
      related WAL-logging to new src/backend/catalog/storage.c file. Introduce
      new RelationCreateStorage and RelationDropStorage functions that are used
      instead of calling smgrcreate/smgrscheduleunlink directly. Move the
      pending rel deletion stuff from smgrcreate/smgrscheduleunlink to the new
      functions. This leaves smgr.c as a thin wrapper around md.c; all the
      transactional stuff is now in storage.c.
      
      This will make it easier to add new forks with similar truncation logic,
      like the visibility map.
      33960006
    • Teodor Sigaev's avatar
      Fix compiler warning "res may be used uninitialized in this function". · 26e6c896
      Teodor Sigaev authored
      Actually, it can't but some compilers are not smart enough.
      Per Peter Eisentraut gripe.
      26e6c896
    • Peter Eisentraut's avatar
      Change this script to Perl 5 style. Add support for multiple refnames. · 8b4da404
      Peter Eisentraut authored
      Sort the output by command name.  This previously only worked by source
      file name, which doesn't always match the command name exactly.  And it
      certainly won't work for multiple refnames.
      8b4da404
    • Bruce Momjian's avatar
      Add "Most Common Implementation" row to high availablity table so the · 89ad92a2
      Bruce Momjian authored
      table is less abstract.  Most common implementations were already
      mentioned in the text.
      89ad92a2
    • Tom Lane's avatar
      Add auto-explain contrib module for automatic logging of the plans of · e125e28e
      Tom Lane authored
      slow-running queries.
      
      Takahiro Itagaki
      e125e28e
    • Tom Lane's avatar
      Fix define_custom_variable so that SUSET custom variables behave · 31ec957a
      Tom Lane authored
      somewhat reasonably.  It's not perfect, but it beats the kluge
      proposed in the auto-explain patch ...
      31ec957a
    • Tom Lane's avatar
      Some infrastructure changes for the upcoming auto-explain contrib module: · cd35e9d7
      Tom Lane authored
      * Refactor explain.c slightly to export a convenient-to-use subroutine
      for printing EXPLAIN results.
      
      * Provide hooks for plugins to get control at ExecutorStart and ExecutorEnd
      as well as ExecutorRun.
      
      * Add some minimal support for tracking the total runtime of ExecutorRun.
      This code won't actually do anything unless a plugin prods it to.
      
      * Change the API of the DefineCustomXXXVariable functions to allow nonzero
      "flags" to be specified for a custom GUC variable.  While at it, also make
      the "bootstrap" default value for custom GUCs be explicitly specified as a
      parameter to these functions.  This is to eliminate confusion over where the
      default comes from, as has been expressed in the past by some users of the
      custom-variable facility.
      
      * Refactor GUC code a bit to ensure that a custom variable gets initialized to
      something valid (like its default value) even if the placeholder value was
      invalid.
      cd35e9d7
  6. 18 Nov, 2008 2 commits
  7. 17 Nov, 2008 2 commits
  8. 16 Nov, 2008 1 commit
    • Tom Lane's avatar
      Modify UPDATE/DELETE WHERE CURRENT OF to use the FOR UPDATE infrastructure to · 18004101
      Tom Lane authored
      locate the target row, if the cursor was declared with FOR UPDATE or FOR
      SHARE.  This approach is more flexible and reliable than digging through the
      plan tree; for instance it can cope with join cursors.  But we still provide
      the old code for use with non-FOR-UPDATE cursors.  Per gripe from Robert Haas.
      18004101
  9. 15 Nov, 2008 4 commits
  10. 14 Nov, 2008 6 commits