1. 10 Feb, 2007 5 commits
  2. 09 Feb, 2007 16 commits
    • Neil Conway's avatar
      Unbreak the SGML doc build: ":=" is needed to assign to variables if · fc7de7c2
      Neil Conway authored
      the RHS of the assignment expands to a reference to the LHS.
      fc7de7c2
    • Tom Lane's avatar
      Minor tweak to make rowtypes regression test run faster. We don't · 6be40def
      Tom Lane authored
      currently have any better strategy for this query than re-running the
      sub-select over and over; it seems unlikely that doing so 10000 times
      is a more useful test than doing it a few dozen times.
      6be40def
    • Peter Eisentraut's avatar
      Remove useless CPPFLAGS. · 6e1664be
      Peter Eisentraut authored
      6e1664be
    • Peter Eisentraut's avatar
      994b1cb5
    • Tom Lane's avatar
      Call pgstat_drop_database during DROP DATABASE, so that any stats file · f4427117
      Tom Lane authored
      entries for the victim database go away sooner rather than later.  We already
      did the equivalent thing at the per-relation level, not sure why it's not
      been done for whole databases.  With this change, pgstat_vacuum_tabstat
      should usually not find anything to do; though we still need it as a backstop
      in case DROPDB or TABPURGE messages get lost under load.
      f4427117
    • 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
  3. 08 Feb, 2007 17 commits
  4. 07 Feb, 2007 2 commits
    • Tom Lane's avatar
      Add a function pg_stat_clear_snapshot() that discards any statistics snapshot · aec4cf1c
      Tom Lane authored
      already collected in the current transaction; this allows plpgsql functions to
      watch for stats updates even though they are confined to a single transaction.
      Use this instead of the previous kluge involving pg_stat_file() to wait for
      the stats collector to update in the stats regression test.  Internally,
      decouple storage of stats snapshots from transaction boundaries; they'll
      now stick around until someone calls pgstat_clear_snapshot --- which xact.c
      still does at transaction end, to maintain the previous behavior.  This makes
      the logic a lot cleaner, at the price of a couple dozen cycles per transaction
      exit.
      aec4cf1c
    • Tom Lane's avatar
      Modify the stats regression test to delay until the stats file actually · d9ce6887
      Tom Lane authored
      changes (with an upper limit of 30 seconds), and record the delay time in
      the postmaster log.  This should give us some info about what's happening
      with the intermittent stats failures in buildfarm.  After an idea of
      Andrew Dunstan's.
      d9ce6887