1. 09 Feb, 2007 11 commits
    • Peter Eisentraut's avatar
      c138b966
    • Bruce Momjian's avatar
      Remove blank lines in code. · d7fee591
      Bruce Momjian authored
      d7fee591
    • Bruce Momjian's avatar
      bc6fb543
    • Bruce Momjian's avatar
      Add blank line. · 1ad2f04b
      Bruce Momjian authored
      1ad2f04b
    • Bruce Momjian's avatar
    • Bruce Momjian's avatar
      Done! · 19d561cb
      Bruce Momjian authored
      < * Merge xmin/xmax/cmin/cmax back into three header fields
      <
      <   Before subtransactions, there used to be only three fields needed to
      <   store these four values. This was possible because only the current
      <   transaction looks at the cmin/cmax values. If the current transaction
      <   created and expired the row the fields stored where xmin (same as
      <   xmax), cmin, cmax, and if the transaction was expiring a row from a
      <   another transaction, the fields stored were xmin (cmin was not
      <   needed), xmax, and cmax. Such a system worked because a transaction
      <   could only see rows from another completed transaction. However,
      <   subtransactions can see rows from outer transactions, and once the
      <   subtransaction completes, the outer transaction continues, requiring
      <   the storage of all four fields. With subtransactions, an outer
      <   transaction can create a row, a subtransaction expire it, and when the
      <   subtransaction completes, the outer transaction still has to have
      <   proper visibility of the row's cmin, for example, for cursors.
      <
      <   One possible solution is to create a phantom cid which represents a
      <   cmin/cmax pair and is stored in local memory.  Another idea is to
      <   store both cmin and cmax only in local memory.
      <
      > * -Merge xmin/xmax/cmin/cmax back into three header fields
      19d561cb
    • Tom Lane's avatar
      Combine cmin and cmax fields of HeapTupleHeaders into a single field, by · c3983003
      Tom Lane authored
      keeping private state in each backend that has inserted and deleted the same
      tuple during its current top-level transaction.  This is sufficient since
      there is no need to be able to determine the cmin/cmax from any other
      transaction.  This gets us back down to 23-byte headers, removing a penalty
      paid in 8.0 to support subtransactions.  Patch by Heikki Linnakangas, with
      minor revisions by moi, following a design hashed out awhile back on the
      pghackers list.
      c3983003
    • Bruce Momjian's avatar
      Remove blank line from C code. · acb34166
      Bruce Momjian authored
      acb34166
    • Bruce Momjian's avatar
      Update: · aba039df
      Bruce Momjian authored
      < * Consider placing all sequences in a single table
      > * Consider placing all sequences in a single table, or create a system
      >   view
      aba039df
    • Bruce Momjian's avatar
      Update: · 5bdf44c6
      Bruce Momjian authored
      < * Consider placing all sequences in a single table, now that system
      <   tables are full transactional
      > * Consider placing all sequences in a single table
      5bdf44c6
    • Bruce Momjian's avatar
      Add: · 18d36f9e
      Bruce Momjian authored
      > * Consider placing all sequences in a single table, now that system
      >   tables are full transactional
      18d36f9e
  2. 08 Feb, 2007 17 commits
  3. 07 Feb, 2007 10 commits
  4. 06 Feb, 2007 2 commits
    • Tom Lane's avatar
      Fix an error in the original coding of holdable cursors: PersistHoldablePortal · 5b706ba4
      Tom Lane authored
      thought that it didn't have to reposition the underlying tuplestore if the
      portal is atEnd.  But this is not so, because tuplestores have separate read
      and write cursors ... and the read cursor hasn't moved from the start.
      This mistake explains bug #2970 from William Zhang.
      
      Note: the coding here is pretty inefficient, but given that no one has noticed
      this bug until now, I'd say hardly anyone uses the case where the cursor has
      been advanced before being persisted.  So maybe it's not worth worrying about.
      5b706ba4
    • Bruce Momjian's avatar
      Update for 8.2.2 as most recent release. · 09f9553d
      Bruce Momjian authored
      09f9553d