1. 10 2月, 2007 3 次提交
  2. 09 2月, 2007 16 次提交
    • P
      Replace useless uses of := by = in makefiles. · c138b966
      Peter Eisentraut 提交于
      c138b966
    • B
      Remove blank lines in code. · d7fee591
      Bruce Momjian 提交于
      d7fee591
    • B
      Update FAQ for new 24-byte header, down from 28. · bc6fb543
      Bruce Momjian 提交于
      bc6fb543
    • B
      Add blank line. · 1ad2f04b
      Bruce Momjian 提交于
      1ad2f04b
    • B
    • B
      Done! · 19d561cb
      Bruce Momjian 提交于
      < * 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
    • T
      Combine cmin and cmax fields of HeapTupleHeaders into a single field, by · c3983003
      Tom Lane 提交于
      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
    • B
      Remove blank line from C code. · acb34166
      Bruce Momjian 提交于
      acb34166
    • B
      Update: · aba039df
      Bruce Momjian 提交于
      < * Consider placing all sequences in a single table
      > * Consider placing all sequences in a single table, or create a system
      >   view
      aba039df
    • B
      Update: · 5bdf44c6
      Bruce Momjian 提交于
      < * Consider placing all sequences in a single table, now that system
      <   tables are full transactional
      > * Consider placing all sequences in a single table
      5bdf44c6
    • B
      Add: · 18d36f9e
      Bruce Momjian 提交于
      > * Consider placing all sequences in a single table, now that system
      >   tables are full transactional
      18d36f9e
    • B
      Add URL for: · 2737f304
      Bruce Momjian 提交于
      * Add support for SQL-standard GENERATED/IDENTITY columns
      >   http://archives.postgresql.org/pgsql-hackers/2006-08/msg00038.php
      2737f304
    • T
      Add missing #define for mingw, per Magnus. · 4a30da1e
      Tom Lane 提交于
      4a30da1e
    • T
      Fix an ancient logic error in plpgsql's exec_stmt_block: it thought it could · fe796ea8
      Tom Lane 提交于
      get away with not (re)initializing a local variable if the variable is marked
      "isconst" and not "isnull".  Unfortunately it makes this decision after having
      already freed the old value, meaning that something like
      
         for i in 1..10 loop
           declare c constant text := 'hi there';
      
      leads to subsequent accesses to freed memory, and hence probably crashes.
      (In particular, this is why Asif Ali Rehman's bug leads to crash and not
      just an unexpectedly-NULL value for SQLERRM: SQLERRM is marked CONSTANT
      and so triggers this error.)
      
      The whole thing seems wrong on its face anyway: CONSTANT means that you can't
      change the variable inside the block, not that the initializer expression is
      guaranteed not to change value across successive block entries.  Hence,
      remove the "optimization" instead of trying to fix it.
      fe796ea8
    • T
      Rearrange use of plpgsql_add_initdatums() so that only the parsing of a · 7ad33ceb
      Tom Lane 提交于
      DECLARE section needs to know about it.  Formerly, everyplace besides DECLARE
      that created variables needed to do "plpgsql_add_initdatums(NULL)" to prevent
      those variables from being sucked up as part of a subsequent DECLARE block.
      This is obviously error-prone, and in fact the SQLSTATE/SQLERRM patch had
      failed to do it for those two variables, leading to the bug recently exhibited
      by Asif Ali Rehman: a DECLARE within an exception handler tried to reinitialize
      SQLERRM.
      
      Although the SQLSTATE/SQLERRM patch isn't in any pre-8.1 branches, and so
      I can't point to a demonstrable failure there, it seems wise to back-patch
      this into the older branches anyway, just to keep the logic similar to HEAD.
      7ad33ceb
    • B
      Fix bug when localized to_char() day or month names were incorectly · b577aa9e
      Bruce Momjian 提交于
      trnasformed to lower or upper string.
      
      Pavel Stehule
      b577aa9e
  3. 08 2月, 2007 15 次提交
  4. 07 2月, 2007 6 次提交