1. 27 11月, 2005 2 次提交
  2. 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
  3. 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
  4. 24 11月, 2005 4 次提交
    • B
      Add space. · c0a2f8cc
      Bruce Momjian 提交于
      c0a2f8cc
    • B
      Add item: · 3f69c419
      Bruce Momjian 提交于
      <
      > 	o Add -f to pg_dumpall
      3f69c419
    • T
      Get rid of ExecAssignResultTypeFromOuterPlan() and make all plan node types · 4dd2048a
      Tom Lane 提交于
      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
    • T
      Fix problems with rewriter failing to set Query.hasSubLinks when inserting · 19ff959b
      Tom Lane 提交于
      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
  5. 23 11月, 2005 7 次提交
  6. 22 11月, 2005 13 次提交
  7. 21 11月, 2005 5 次提交
    • A
      Implement DROP OWNED and REASSIGN OWNED. These new commands facilitate the · cec3b0a9
      Alvaro Herrera 提交于
      process of dropping roles by dropping objects owned by them and privileges
      granted to them, or giving the owned objects to someone else, through the
      use of the data stored in the new pg_shdepend catalog.
      
      Some refactoring of the GRANT/REVOKE code was needed, as well as ALTER OWNER
      code.  Further cleanup of code duplication in the GRANT code seems necessary.
      
      Implemented by me after an idea from Tom Lane, who also provided various kind
      of implementation advice.
      
      Regression tests pass.  Some tests for the new functionality are also added,
      as well as rudimentary documentation.
      cec3b0a9
    • T
      Text parser rewritten: · c52795d1
      Teodor Sigaev 提交于
              - supports multibyte encodings
              - more strict rules for lexemes
              - flex isn't used
      Add:
              - tsquery plainto_tsquery(text)
                Function makes tsquery from plain text.
              - &&, ||, !! operation for tsquery for combining
                tsquery from it's parts:  'foo & bar' || 'asd' => 'foo & bar | asd'
      c52795d1
    • T
      Clean up after DROP IF EXISTS patch. · b91e6ed9
      Tom Lane 提交于
      b91e6ed9
    • T
      Remove the t_datamcxt field of HeapTupleData. This was introduced for · dd218ae7
      Tom Lane 提交于
      the convenience of tuptoaster.c and is no longer needed, so may as well
      get rid of some small amount of overhead.
      dd218ae7
    • T
      Modify tuptoaster's API so that it does not try to modify the passed · 40314f2d
      Tom Lane 提交于
      tuple in-place, but instead passes back an all-new tuple structure if
      any changes are needed.  This is a much cleaner and more robust solution
      for the bug discovered by Alexey Beschiokov; accordingly, revert the
      quick hack I installed yesterday.
      With this change, HeapTupleData.t_datamcxt is no longer needed; will
      remove it in a separate commit in HEAD only.
      40314f2d
  8. 20 11月, 2005 3 次提交
  9. 19 11月, 2005 2 次提交