1. 27 Jan, 2005 1 commit
  2. 24 Jan, 2005 1 commit
  3. 10 Jan, 2005 1 commit
  4. 31 Dec, 2004 1 commit
    • PostgreSQL Daemon's avatar
      · 2ff50159
      PostgreSQL Daemon authored
      Tag appropriate files for rc3
      
      Also performed an initial run through of upgrading our Copyright date to
      extend to 2005 ... first run here was very simple ... change everything
      where: grep 1996-2004 && the word 'Copyright' ... scanned through the
      generated list with 'less' first, and after, to make sure that I only
      picked up the right entries ...
      2ff50159
  5. 16 Nov, 2004 1 commit
    • Neil Conway's avatar
      Prevent a backend crash when processing CREATE TABLE commands with · e1bf6527
      Neil Conway authored
      more than 65K columns, or when the created table has more than 65K columns
      due to adding inherited columns from parent relations. Fix a similar
      crash when processing SELECT queries with more than 65K target list
      entries. In all three cases we would eventually detect the error and
      elog, but the check was being made too late.
      e1bf6527
  6. 05 Nov, 2004 1 commit
    • Tom Lane's avatar
      Create 'default_tablespace' GUC variable that supplies a TABLESPACE · 98e8b480
      Tom Lane authored
      clause implicitly whenever one is not given explicitly.  Remove concept
      of a schema having an associated tablespace, and simplify the rules for
      selecting a default tablespace for a table or index.  It's now just
      (a) explicit TABLESPACE clause; (b) default_tablespace if that's not an
      empty string; (c) database's default.  This will allow pg_dump to use
      SET commands instead of tablespace clauses to determine object locations
      (but I didn't actually make it do so).  All per recent discussions.
      98e8b480
  7. 30 Oct, 2004 1 commit
    • Tom Lane's avatar
      I found a corner case in which it is possible for RI_FKey_check's call · 80559fa9
      Tom Lane authored
      of HeapTupleSatisfiesItself() to trigger a hint-bit update on the tuple:
      if the row was updated or deleted by a subtransaction of my own transaction
      that was later rolled back.  This cannot occur in pre-8.0 of course, so
      the hint-bit patch applied a couple weeks ago is OK for existing releases.
      But for 8.0 it seems we had better fix things so that RI_FKey_check can
      pass the correct buffer number to HeapTupleSatisfiesItself.  Accordingly,
      add fields to the TriggerData struct to carry the buffer ID(s) for the
      old and new tuple(s).  There are other possible solutions but this one
      seems cleanest; it will allow other AFTER-trigger functions to safely
      do tqual.c calls if they want to.  Put new fields at end of struct so
      that there is no API breakage.
      80559fa9
  8. 22 Oct, 2004 1 commit
  9. 21 Oct, 2004 1 commit
    • Tom Lane's avatar
      Disallow referential integrity actions from being deferred; only the · 12a47c6a
      Tom Lane authored
      NO ACTION check is deferrable.  This seems to be a closer approximation
      to what the SQL spec says than what we were doing before, and it prevents
      some anomalous behaviors that are possible now that triggers can fire
      during the execution of PL functions.
      Stephan Szabo.
      12a47c6a
  10. 16 Oct, 2004 1 commit
  11. 12 Oct, 2004 1 commit
  12. 23 Sep, 2004 1 commit
  13. 16 Sep, 2004 1 commit
    • Tom Lane's avatar
      Restructure subtransaction handling to reduce resource consumption, · 8f9f1986
      Tom Lane authored
      as per recent discussions.  Invent SubTransactionIds that are managed like
      CommandIds (ie, counter is reset at start of each top transaction), and
      use these instead of TransactionIds to keep track of subtransaction status
      in those modules that need it.  This means that a subtransaction does not
      need an XID unless it actually inserts/modifies rows in the database.
      Accordingly, don't assign it an XID nor take a lock on the XID until it
      tries to do that.  This saves a lot of overhead for subtransactions that
      are only used for error recovery (eg plpgsql exceptions).  Also, arrange
      to release a subtransaction's XID lock as soon as the subtransaction
      exits, in both the commit and abort cases.  This avoids holding many
      unique locks after a long series of subtransactions.  The price is some
      additional overhead in XactLockTableWait, but that seems acceptable.
      Finally, restructure the state machine in xact.c to have a more orthogonal
      set of states for subtransactions.
      8f9f1986
  14. 31 Aug, 2004 2 commits
  15. 29 Aug, 2004 2 commits
  16. 28 Aug, 2004 1 commit
    • Tom Lane's avatar
      Rearrange order of operations in heap_drop_with_catalog and index_drop · 448eb083
      Tom Lane authored
      so that we close and flush the doomed relation's relcache entry before
      we start to delete the underlying catalog rows, rather than afterwards.
      For awhile yesterday I thought that an unexpected relcache entry rebuild
      partway through this sequence might explain the infrequent parallel
      regression failures we were chasing.  It doesn't, mainly because there's
      no CommandCounterIncrement in the sequence and so the deletions aren't
      "really" done yet.  But it sure seems like trouble waiting to happen.
      448eb083
  17. 15 Aug, 2004 1 commit
    • Tom Lane's avatar
      Dept. of further reflection: I looked around to see if any other callers · 1a3de15a
      Tom Lane authored
      of XLogInsert had the same sort of checkpoint interlock problem as
      RecordTransactionCommit, and indeed I found some.  Btree index build
      and ALTER TABLE SET TABLESPACE write data outside the friendly confines
      of the buffer manager, and therefore they have to take their own
      responsibility for checkpoint interlock.  The easiest solution seems to
      be to force smgrimmedsync at the end of the index build or table copy,
      even when the operation is being WAL-logged.  This is sufficient since
      the new index or table will be of interest to no one if we don't get
      as far as committing the current transaction.
      1a3de15a
  18. 13 Aug, 2004 1 commit
  19. 04 Aug, 2004 1 commit
  20. 01 Aug, 2004 1 commit
  21. 21 Jul, 2004 1 commit
    • Tom Lane's avatar
      Invent WAL timelines, as per recent discussion, to make point-in-time · 2042b342
      Tom Lane authored
      recovery more manageable.  Also, undo recent change to add FILE_HEADER
      and WASTED_SPACE records to XLOG; instead make the XLOG page header
      variable-size with extra fields in the first page of an XLOG file.
      This should fix the boundary-case bugs observed by Mark Kirkwood.
      initdb forced due to change of XLOG representation.
      2042b342
  22. 19 Jul, 2004 1 commit
  23. 17 Jul, 2004 1 commit
  24. 11 Jul, 2004 1 commit
  25. 01 Jul, 2004 1 commit
  26. 25 Jun, 2004 1 commit
  27. 18 Jun, 2004 1 commit
  28. 10 Jun, 2004 3 commits
  29. 06 Jun, 2004 1 commit
    • Tom Lane's avatar
      Allow use of table rowtypes directly as column types of other tables. · bb3da43e
      Tom Lane authored
      Instead of prohibiting that, put code into ALTER TABLE to reject ALTERs
      that would affect other tables' columns.  Eventually we will probably
      want to extend ALTER TABLE to actually do something useful here, but
      in the meantime it seems wrong to forbid the feature completely just
      because ALTER isn't fully baked.
      bb3da43e
  30. 05 Jun, 2004 1 commit
  31. 04 Jun, 2004 1 commit
    • Tom Lane's avatar
      Resurrect heap_deformtuple(), this time implemented as a singly nested · 8f2ea8b7
      Tom Lane authored
      loop over the fields instead of a loop around heap_getattr.  This is
      considerably faster (O(N) instead of O(N^2)) when there are nulls or
      varlena fields, since those prevent use of attcacheoff.  Replace loops
      over heap_getattr with heap_deformtuple in situations where all or most
      of the fields have to be fetched, such as printtup and tuptoaster.
      Profiling done more than a year ago shows that this should be a nice
      win for situations involving many-column tables.
      8f2ea8b7
  32. 02 Jun, 2004 1 commit
  33. 26 May, 2004 1 commit
    • Neil Conway's avatar
      Reimplement the linked list data structure used throughout the backend. · d0b4399d
      Neil Conway authored
      In the past, we used a 'Lispy' linked list implementation: a "list" was
      merely a pointer to the head node of the list. The problem with that
      design is that it makes lappend() and length() linear time. This patch
      fixes that problem (and others) by maintaining a count of the list
      length and a pointer to the tail node along with each head node pointer.
      A "list" is now a pointer to a structure containing some meta-data
      about the list; the head and tail pointers in that structure refer
      to ListCell structures that maintain the actual linked list of nodes.
      
      The function names of the list API have also been changed to, I hope,
      be more logically consistent. By default, the old function names are
      still available; they will be disabled-by-default once the rest of
      the tree has been updated to use the new API names.
      d0b4399d
  34. 08 May, 2004 2 commits
    • Tom Lane's avatar
      Fix a couple of oversights in new ALTER TABLE code that broke · 7a3977c0
      Tom Lane authored
      ALTER SET STATISTICS for functional indexes.
      7a3977c0
    • Tom Lane's avatar
      Get rid of cluster.c's apparatus for rebuilding a relation's indexes · dd16b7aa
      Tom Lane authored
      in favor of using the REINDEX TABLE apparatus, which does the same thing
      simpler and faster.  Also, make TRUNCATE not use cluster.c at all, but
      just assign a new relfilenode and REINDEX.  This partially addresses
      Hartmut Raschick's complaint from last December that 7.4's TRUNCATE is
      an order of magnitude slower than prior releases.  By getting rid of
      a lot of unnecessary catalog updates, these changes buy back about a
      factor of two (on my system).  The remaining overhead seems associated
      with creating and deleting storage files, which we may not be able to
      do much about without abandoning transaction safety for TRUNCATE.
      dd16b7aa
  35. 07 May, 2004 1 commit
    • Tom Lane's avatar
      Solve the 'Turkish problem' with undesirable locale behavior for case · 0bd61548
      Tom Lane authored
      conversion of basic ASCII letters.  Remove all uses of strcasecmp and
      strncasecmp in favor of new functions pg_strcasecmp and pg_strncasecmp;
      remove most but not all direct uses of toupper and tolower in favor of
      pg_toupper and pg_tolower.  These functions use the same notions of
      case folding already developed for identifier case conversion.  I left
      the straight locale-based folding in place for situations where we are
      just manipulating user data and not trying to match it to built-in
      strings --- for example, the SQL upper() function is still locale
      dependent.  Perhaps this will prove not to be what's wanted, but at
      the moment we can initdb and pass regression tests in Turkish locale.
      0bd61548