1. 12 Sep, 2007 9 commits
  2. 11 Sep, 2007 13 commits
  3. 10 Sep, 2007 10 commits
  4. 09 Sep, 2007 2 commits
  5. 08 Sep, 2007 1 commit
    • Tom Lane's avatar
      Replace the former method of determining snapshot xmax --- to wit, calling · 6bd4f401
      Tom Lane authored
      ReadNewTransactionId from GetSnapshotData --- with a "latestCompletedXid"
      variable that is updated during transaction commit or abort.  Since
      latestCompletedXid is written only in places that had to lock ProcArrayLock
      exclusively anyway, and is read only in places that had to lock ProcArrayLock
      shared anyway, it adds no new locking requirements to the system despite being
      cluster-wide.  Moreover, removing ReadNewTransactionId from snapshot
      acquisition eliminates the need to take both XidGenLock and ProcArrayLock at
      the same time.  Since XidGenLock is sometimes held across I/O this can be a
      significant win.  Some preliminary benchmarking suggested that this patch has
      no effect on average throughput but can significantly improve the worst-case
      transaction times seen in pgbench.  Concept by Florian Pflug, implementation
      by Tom Lane.
      6bd4f401
  6. 07 Sep, 2007 5 commits
    • Tom Lane's avatar
      Don't take ProcArrayLock while exiting a transaction that has no XID; there is · 0a51e707
      Tom Lane authored
      no need for serialization against snapshot-taking because the xact doesn't
      affect anyone else's snapshot anyway.  Per discussion.  Also, move various
      info about the interlocking of transactions and snapshots out of code comments
      and into a hopefully-more-cohesive discussion in access/transam/README.
      
      Also, remove a couple of now-obsolete comments about having to force some WAL
      to be written to persuade RecordTransactionCommit to do its thing.
      0a51e707
    • Bruce Momjian's avatar
    • Teodor Sigaev's avatar
      Improve page split in rtree emulation. Now if splitted result has · 0392ea50
      Teodor Sigaev authored
      big misalignement, then it tries to split page basing on distribution
      of boxe's centers.
      
      Per report from  Dolafi, Tom <dolafit@janelia.hhmi.org>
      
       Backpatch is needed, change doesn't affect on-disk storage.
      0392ea50
    • Teodor Sigaev's avatar
      Improvements from Heikki Linnakangas <heikki@enterprisedb.com> · 978de9d0
      Teodor Sigaev authored
      - change the alignment requirement of lexemes in TSVector slightly.
      Lexeme strings were always padded to 2-byte aligned length to make sure
      that if there's position array (uint16[]) it has the right alignment.
      The patch changes that so that the padding is not done when there's no
      positions. That makes the storage of tsvectors without positions
      slightly more compact.
      
      - added some #include "miscadmin.h" lines I missed in the earlier when I
      added calls to check_stack_depth().
      
      - Reimplement the send/recv functions, and added a comment
      above them describing the on-wire format. The CRC is now recalculated in
      tsquery as well per previous discussion.
      978de9d0
    • Teodor Sigaev's avatar
      Improving various checks by Heikki Linnakangas <heikki@enterprisedb.com> · 8983852e
      Teodor Sigaev authored
      - add code to check that the query tree is well-formed. It was indeed
        possible to send malformed queries in binary mode, which produced all
        kinds of strange results.
      
      - make the left-field a uint32. There's no reason to
        arbitrarily limit it to 16-bits, and it won't increase the disk/memory
        footprint either now that QueryOperator and QueryOperand are separate
        structs.
      
      - add check_stack_depth() call to all recursive functions I found.
        Some of them might have a natural limit so that you can't force
        arbitrarily deep recursions, but check_stack_depth() is cheap enough
        that seems best to just stick it into anything that might be a problem.
      8983852e