1. 01 Dec, 2005 10 commits
  2. 30 Nov, 2005 3 commits
  3. 29 Nov, 2005 4 commits
  4. 28 Nov, 2005 10 commits
  5. 27 Nov, 2005 2 commits
  6. 26 Nov, 2005 4 commits
  7. 25 Nov, 2005 2 commits
    • Tom Lane's avatar
      Teach planner and executor to handle ScalarArrayOpExpr as an indexable · 290166f9
      Tom Lane authored
      qualification when the underlying operator is indexable and useOr is true.
      That is, indexkey op ANY (ARRAY[...]) is effectively translated into an
      OR combination of one indexscan for each array element.  This only works
      for bitmap index scans, of course, since regular indexscans no longer
      support OR'ing of scans.  There are still some loose ends to clean up
      before changing 'x IN (list)' to translate as a ScalarArrayOpExpr;
      for instance predtest.c ought to be taught about it.  But this gets the
      basic functionality in place.
      290166f9
    • Tom Lane's avatar
      Improve ExecStoreTuple to be smarter about replacing the contents of · dab52ab1
      Tom Lane authored
      a TupleTableSlot: instead of calling ExecClearTuple, inline the needed
      operations, so that we can avoid redundant steps.  In particular, when
      the old and new tuples are both on the same disk page, avoid releasing
      and re-acquiring the buffer pin --- this saves work in both the bufmgr
      and ResourceOwner modules.  To make this improvement actually useful,
      partially revert a change I made on 2004-04-21 that caused SeqNext
      et al to call ExecClearTuple before ExecStoreTuple.  The motivation
      for that, to avoid grabbing the BufMgrLock separately for releasing
      the old buffer and grabbing the new one, no longer applies.  My
      profiling says that this saves about 5% of the CPU time for an
      all-in-memory seqscan.
      dab52ab1
  8. 24 Nov, 2005 2 commits
  9. 23 Nov, 2005 3 commits
    • Tom Lane's avatar
      Get rid of ExecAssignResultTypeFromOuterPlan() and make all plan node types · 4dd2048a
      Tom Lane authored
      generate their output tuple descriptors from their target lists (ie, using
      ExecAssignResultTypeFromTL()).  We long ago fixed things so that all node
      types have minimally valid tlists, so there's no longer any good reason to
      have two different ways of doing it.  This change is needed to fix bug
      reported by Hayden James: the fix of 2005-11-03 to emit the correct column
      names after optimizing away a SubqueryScan node didn't work if the new
      top-level plan node used ExecAssignResultTypeFromOuterPlan to generate its
      tupdesc, since the next plan node down won't have the correct column labels.
      4dd2048a
    • Tom Lane's avatar
      Fix problems with rewriter failing to set Query.hasSubLinks when inserting · 19ff959b
      Tom Lane authored
      a SubLink expression into a rule query.  Pre-8.1 we essentially did this
      unconditionally; 8.1 tries to do it only when needed, but was missing a
      couple of cases.  Per report from Kyle Bateman.  Add some regression test
      cases covering this area.
      19ff959b
    • Tatsuo Ishii's avatar
      Having blank lines in -f scripts was causing silent failures. · baa6b22f
      Tatsuo Ishii authored
      per David Fetter
      baa6b22f