1. 02 12月, 2005 12 次提交
  2. 01 12月, 2005 4 次提交
  3. 30 11月, 2005 1 次提交
  4. 29 11月, 2005 11 次提交
  5. 28 11月, 2005 4 次提交
  6. 27 11月, 2005 3 次提交
  7. 26 11月, 2005 3 次提交
    • T
      Some marginal additional hacking to shave a few more cycles off · 4c4eb571
      Tom Lane 提交于
      heapgettup.
      4c4eb571
    • T
      Change seqscan logic so that we check visibility of all tuples on a page · 70f1482d
      Tom Lane 提交于
      when we first read the page, rather than checking them one at a time.
      This allows us to take and release the buffer content lock just once
      per page, instead of once per tuple.  Since it's a shared lock the
      contention penalty for holding the lock longer shouldn't be too bad.
      We can safely do this only when using an MVCC snapshot; else the
      assumption that visibility won't change over time is uncool.  Therefore
      there are now two code paths depending on the snapshot type.  I also
      made the same change in nodeBitmapHeapscan.c, where it can be done always
      because we only support MVCC snapshots for bitmap scans anyway.
      Also make some incidental cleanups in the APIs of these functions.
      Per a suggestion from Qingqing Zhou.
      70f1482d
    • T
      Teach planner and executor to handle ScalarArrayOpExpr as an indexable · 290166f9
      Tom Lane 提交于
      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
  8. 25 11月, 2005 1 次提交
    • T
      Improve ExecStoreTuple to be smarter about replacing the contents of · dab52ab1
      Tom Lane 提交于
      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
  9. 24 11月, 2005 1 次提交