1. 27 May, 2007 6 commits
  2. 26 May, 2007 1 commit
    • Tom Lane's avatar
      Repair two constraint-exclusion corner cases triggered by proving that an · cadb7833
      Tom Lane authored
      inheritance child of an UPDATE/DELETE target relation can be excluded by
      constraints.  I had rearranged some code in set_append_rel_pathlist() to
      avoid "useless" work when a child is excluded, but overdid it and left
      the child with no cheapest_path entry, causing possible failure later
      if the appendrel was involved in a join.  Also, it seems that the dummy
      plan generated by inheritance_planner() when all branches are excluded
      has to be a bit less dummy now than was required in 8.2.
      Per report from Jan Wieck.  Add his test case to the regression tests.
      cadb7833
  3. 25 May, 2007 1 commit
    • Tom Lane's avatar
      Create hooks to let a loadable plugin monitor (or even replace) the planner · 604ffd28
      Tom Lane authored
      and/or create plans for hypothetical situations; in particular, investigate
      plans that would be generated using hypothetical indexes.  This is a
      heavily-rewritten version of the hooks proposed by Gurjeet Singh for his
      Index Advisor project.  In this formulation, the index advisor can be
      entirely a loadable module instead of requiring a significant part to be
      in the core backend, and plans can be generated for hypothetical indexes
      without requiring the creation and rolling-back of system catalog entries.
      
      The index advisor patch as-submitted is not compatible with these hooks,
      but it needs significant work anyway due to other 8.2-to-8.3 planner
      changes.  With these hooks in the core backend, development of the advisor
      can proceed as a pgfoundry project.
      604ffd28
  4. 24 May, 2007 3 commits
  5. 22 May, 2007 3 commits
    • Tom Lane's avatar
      Repair planner bug introduced in 8.2 by ability to rearrange outer joins: · 11086f2f
      Tom Lane authored
      in cases where a sub-SELECT inserts a WHERE clause between two outer joins,
      that clause may prevent us from re-ordering the two outer joins.  The code
      was considering only the joins' own ON-conditions in determining reordering
      safety, which is not good enough.  Add a "delay_upper_joins" flag to
      OuterJoinInfo to flag that we have detected such a clause and higher-level
      outer joins shouldn't be permitted to commute with this one.  (This might
      seem overly coarse, but given the current rules for OJ reordering, it's
      sufficient AFAICT.)
      
      The failure case is actually pretty narrow: it needs a WHERE clause within
      the RHS of a left join that checks the RHS of a lower left join, but is not
      strict for that RHS (else we'd have simplified the lower join to a plain
      join).  Even then no failure will be manifest unless the planner chooses to
      rearrange the join order.
      
      Per bug report from Adam Terrey.
      11086f2f
    • Alvaro Herrera's avatar
      Remove unsupported -u option from pg_standby example usage. · 0f6e2d08
      Alvaro Herrera authored
      From Pavel Stehule.
      0f6e2d08
    • Tom Lane's avatar
      Fix best_inner_indexscan to return both the cheapest-total-cost and · d7153c5f
      Tom Lane authored
      cheapest-startup-cost innerjoin indexscans, and make joinpath.c consider
      both of these (when different) as the inside of a nestloop join.  The
      original design was based on the assumption that indexscan paths always
      have negligible startup cost, and so total cost is the only important
      figure of merit; an assumption that's obviously broken by bitmap
      indexscans.  This oversight could lead to choosing poor plans in cases
      where fast-start behavior is more important than total cost, such as
      LIMIT and IN queries.  8.1-vintage brain fade exposed by an example from
      Chuck D.
      d7153c5f
  6. 21 May, 2007 5 commits
    • Tom Lane's avatar
      Teach tuplestore.c to throw away data before the "mark" point when the caller · 2415ad98
      Tom Lane authored
      is using mark/restore but not rewind or backward-scan capability.  Insert a
      materialize plan node between a mergejoin and its inner child if the inner
      child is a sort that is expected to spill to disk.  The materialize shields
      the sort from the need to do mark/restore and thereby allows it to perform
      its final merge pass on-the-fly; while the materialize itself is normally
      cheap since it won't spill to disk unless the number of tuples with equal
      key values exceeds work_mem.
      
      Greg Stark, with some kibitzing from Tom Lane.
      2415ad98
    • Peter Eisentraut's avatar
      XPath fixes: · 3963574d
      Peter Eisentraut authored
       - Function renamed to "xpath".
       - Function is now strict, per discussion.
       - Return empty array in case when XPath expression detects nothing
         (previously, NULL was returned in such case), per discussion.
       - (bugfix) Work with fragments with prologue: select xpath('/a',
         '<?xml version="1.0"?><a /><b />'); // now XML datum is always wrapped
         with dummy <x>...</x>, XML prologue simply goes away (if any).
       - Some cleanup.
      
      Nikolay Samokhvalov
      
      Some code cleanup and documentation work by myself.
      3963574d
    • Peter Eisentraut's avatar
      Fix spurious German index entry · 0c644d2c
      Peter Eisentraut authored
      0c644d2c
    • Michael Meskes's avatar
      9ab58bbd
    • Michael Meskes's avatar
      Do not try to find local timezone in DecodeDateTime() because the · 439cf8e6
      Michael Meskes authored
      result is not used anyway. This also fixes Vista's build problems.
      439cf8e6
  7. 20 May, 2007 2 commits
    • Tom Lane's avatar
      To support external compression of archived WAL data, add a flag bit to · a8d539f1
      Tom Lane authored
      WAL records that shows whether it is safe to remove full-page images
      (ie, whether or not an on-line backup was in progress when the WAL entry
      was made).  Also make provision for an XLOG_NOOP record type that can be
      used to fill in the extra space when decompressing the data for restore.
      
      This is the portion of Koichi Suzuki's "full page writes" patch that
      has to go into the core database.  The remainder of that work is two
      external compression and decompression programs, which for the time being
      will undergo separate development on pgfoundry.  Per discussion.
      
      Also, twiddle the handling of BTREE_SPLIT records to ensure it'll be
      possible to compress them (the previous coding caused essential info
      to be omitted).  The other commonly-used record types seem OK already,
      with the possible exception of GIN and GIST WAL records, which I don't
      understand well enough to opine on.
      a8d539f1
    • Michael Meskes's avatar
      tackling Vista problem - another try · 2f2717d1
      Michael Meskes authored
      2f2717d1
  8. 19 May, 2007 1 commit
  9. 18 May, 2007 4 commits
    • Alvaro Herrera's avatar
      Have CLUSTER advance the table's relfrozenxid. The new frozen point is the · b40776d2
      Alvaro Herrera authored
      FreezeXid introduced in a recent commit, so there isn't any data loss in this
      approach.
      
      Doing it causes ALTER TABLE (or rather, the forms of it that cause a full table
      rewrite) to be affected as well.  In this case, the frozen point is RecentXmin,
      because after the rewrite all the tuples are relabeled with the rewriting
      transaction's Xid.
      
      TOAST tables are fixed automatically as well, as fallout of the way they were
      already being handled in the respective code paths.
      
      With this patch, there is no longer need to VACUUM tables for Xid wraparound
      purposes that have been cleaned up via TRUNCATE or CLUSTER.
      b40776d2
    • Peter Eisentraut's avatar
      Mark some intermediate targets as .PRECIOUS, to replace the recently removed · 2f1bf824
      Peter Eisentraut authored
      .SECONDARY target.  This makes experimentation with the PDF builds easier.
      2f1bf824
    • Bruce Momjian's avatar
      Done: · f22967ee
      Bruce Momjian authored
      < * Fix problem with excessive logging during SSL disconnection
      > * -Fix problem with excessive logging during SSL disconnection
      f22967ee
    • Tom Lane's avatar
      Remove redundant logging of send failures when SSL is in use. While pqcomm.c · d1972c52
      Tom Lane authored
      had been taught not to do that ages ago, the SSL code was helpfully bleating
      anyway.  Resolves some recent reports such as bug #3266; however the
      underlying cause of the related bug #2829 is still unclear.
      d1972c52
  10. 17 May, 2007 11 commits
  11. 16 May, 2007 2 commits
  12. 15 May, 2007 1 commit