Skip to content
Snippets Groups Projects
  1. Dec 09, 2005
    • Tom Lane's avatar
      Simplify lock manager data structures by making a clear separation between · c599a247
      Tom Lane authored
      the data defining the semantics of a lock method (ie, conflict resolution
      table and ancillary data, which is all constant) and the hash tables
      storing the current state.  The only thing we give up by this is the
      ability to use separate hashtables for different lock methods, but there
      is no need for that anyway.  Put some extra fields into the LockMethod
      definition structs to clean up some other uglinesses, like hard-wired
      tests for DEFAULT_LOCKMETHOD and USER_LOCKMETHOD.  This commit doesn't
      do anything about the performance issues we were discussing, but it clears
      away some of the underbrush that's in the way of fixing that.
      c599a247
  2. Oct 15, 2005
  3. Jun 18, 2005
    • Tom Lane's avatar
      Add a time-of-preparation column to the pg_prepared_xacts view, per an · a8d1075f
      Tom Lane authored
      old suggestion by Oliver Jowett.  Also, add a transaction column to the
      pg_locks view to show the xid of each transaction holding or awaiting
      locks; this allows prepared transactions to be properly associated with
      the locks they own.  There was already a column named 'transaction',
      and I chose to rename it to 'transactionid' --- since this column is
      new in the current devel cycle there should be no backwards compatibility
      issue to worry about.
      a8d1075f
  4. May 17, 2005
  5. Apr 30, 2005
    • Tom Lane's avatar
      Restructure LOCKTAG as per discussions of a couple months ago. · 3a694bb0
      Tom Lane authored
      Essentially, we shoehorn in a lockable-object-type field by taking
      a byte away from the lockmethodid, which can surely fit in one byte
      instead of two.  This allows less artificial definitions of all the
      other fields of LOCKTAG; we can get rid of the special pg_xactlock
      pseudo-relation, and also support locks on individual tuples and
      general database objects (including shared objects).  None of those
      possibilities are actually exploited just yet, however.
      
      I removed pg_xactlock from pg_class, but did not force initdb for
      that change.  At this point, relkind 's' (SPECIAL) is unused and
      could be removed entirely.
      3a694bb0
  6. Jan 01, 2005
  7. Aug 29, 2004
  8. Aug 27, 2004
    • Tom Lane's avatar
      Introduce local hash table for lock state, as per recent proposal. · 1785aceb
      Tom Lane authored
      PROCLOCK structs in shared memory now have only a bitmask for held
      locks, rather than counts (making them 40 bytes smaller, which is a
      good thing).  Multiple locks within a transaction are counted in the
      local hash table instead, and we have provision for tracking which
      ResourceOwner each count belongs to.  Solves recently reported problem
      with memory leakage within long transactions.
      1785aceb
  9. Apr 01, 2004
    • Tom Lane's avatar
      Replace TupleTableSlot convention for whole-row variables and function · 375369ac
      Tom Lane authored
      results with tuples as ordinary varlena Datums.  This commit does not
      in itself do much for us, except eliminate the horrid memory leak
      associated with evaluation of whole-row variables.  However, it lays the
      groundwork for allowing composite types as table columns, and perhaps
      some other useful features as well.  Per my proposal of a few days ago.
      375369ac
  10. Nov 29, 2003
    • PostgreSQL Daemon's avatar
      · 969685ad
      PostgreSQL Daemon authored
      $Header: -> $PostgreSQL Changes ...
      969685ad
  11. Aug 05, 2003
  12. Feb 20, 2003
  13. Feb 19, 2003
    • Bruce Momjian's avatar
      - Modifies LOCKTAG to include a 'classId'. Relation receive a classId of · d0f3a7e9
      Bruce Momjian authored
      RelOid_pg_class, and transaction locks XactLockTableId. RelId is renamed
      to objId.
      
      - LockObject() and UnlockObject() functions created, and their use
      sprinkled throughout the code to do descent locking for domains and
      types. They accept lock modes AccessShare and AccessExclusive, as we
      only really need a 'read' and 'write' lock at the moment.  Most locking
      cases are held until the end of the transaction.
      
      This fixes the cases Tom mentioned earlier in regards to locking with
      Domains.  If the patch is good, I'll work on cleaning up issues with
      other database objects that have this problem (most of them).
      
      Rod Taylor
      d0f3a7e9
  14. Feb 18, 2003
  15. Sep 04, 2002
  16. Sep 02, 2002
    • Tom Lane's avatar
      Code review for HeapTupleHeader changes. Add version number to page headers · c7a165ad
      Tom Lane authored
      (overlaying low byte of page size) and add HEAP_HASOID bit to t_infomask,
      per earlier discussion.  Simplify scheme for overlaying fields in tuple
      header (no need for cmax to live in more than one place).  Don't try to
      clear infomask status bits in tqual.c --- not safe to do it there.  Don't
      try to force output table of a SELECT INTO to have OIDs, either.  Get rid
      of unnecessarily complex three-state scheme for TupleDesc.tdhasoids, which
      has already caused one recent failure.  Improve documentation.
      c7a165ad
  17. Aug 31, 2002
    • Tom Lane's avatar
      Code review for pg_locks feature. Make shmemoffset of PROCLOCK structs · 1bab464e
      Tom Lane authored
      available (else there's no way to interpret the list links).  Change
      pg_locks view to show transaction ID locks separately from ordinary
      relation locks.  Avoid showing N duplicate rows when the same lock is
      held multiple times (seems unlikely that users care about exact hold
      count).  Improve documentation.
      1bab464e
  18. Aug 29, 2002
  19. Aug 27, 2002
  20. Aug 17, 2002
Loading