1. 19 Nov, 2008 1 commit
    • 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
  2. 18 Nov, 2008 2 commits
  3. 17 Nov, 2008 2 commits
  4. 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
  5. 15 Nov, 2008 4 commits
  6. 14 Nov, 2008 20 commits
  7. 13 Nov, 2008 9 commits
  8. 12 Nov, 2008 1 commit
    • Tom Lane's avatar
      In predtest.c, install a limit on the number of branches we will process in · fdf8d062
      Tom Lane authored
      AND, OR, or equivalent clauses: if there are too many (more than 100) just
      exit without proving anything.  This ensures that we don't spend O(N^2) time
      trying (and most likely failing) to prove anything about very long IN lists
      and similar cases.
      
      Also, install a couple of CHECK_FOR_INTERRUPTS calls to ensure that a long
      proof attempt can be interrupted.
      
      Per gripe from Sergey Konoplev.
      
      Back-patch the whole patch to 8.2 and just the CHECK_FOR_INTERRUPTS addition
      to 8.1.  (The rest of the patch doesn't apply cleanly, and since 8.1 doesn't
      show the complained-of behavior anyway, it doesn't seem necessary to work
      hard on it.)
      fdf8d062