1. 01 Oct, 2007 1 commit
    • Tom Lane's avatar
      Avoid assuming that struct varattrib_pointer doesn't get padded by the · b526462f
      Tom Lane authored
      compiler --- at least on ARM, it does.  I suspect that the varvarlena patch
      has been creating larger-than-intended toast pointers all along on ARM,
      but it wasn't exposed until the latest tweak added some Asserts that
      calculated the expected size in a different way.  We could probably have
      fixed this by adding __attribute__((packed)) as is done for ItemPointerData,
      but struct varattrib_pointer isn't really all that useful anyway, so it
      seems cleanest to just get rid of it and have only struct varattrib_1b_e.
      Per results from buildfarm member quagga.
      b526462f
  2. 30 Sep, 2007 1 commit
    • Tom Lane's avatar
      Add an extra header byte to TOAST-pointer datums to represent their size · 27b89222
      Tom Lane authored
      explicitly.  This means a TOAST pointer takes 18 bytes instead of 17 --- still
      smaller than in 8.2 --- which seems a good tradeoff to ensure we won't have
      painted ourselves into a corner if we want to support multiple types of TOAST
      pointer later on.  Per discussion with Greg Stark.
      27b89222
  3. 27 Sep, 2007 1 commit
  4. 25 Jul, 2007 1 commit
  5. 15 May, 2007 1 commit
  6. 04 May, 2007 1 commit
    • Tom Lane's avatar
      A few fixups in error handling: mark pg_re_throw() as noreturn for gcc, · 79ca7ffe
      Tom Lane authored
      and for other compilers, insert a dummy exit() call so that they understand
      PG_RE_THROW() doesn't return.  Insert fflush(stderr) in ExceptionalCondition,
      per recent buildfarm evidence that that might not happen automatically on some
      platforms.  And const-ify ExceptionalCondition's declaration while at it.
      79ca7ffe
  7. 06 Apr, 2007 1 commit
    • Tom Lane's avatar
      Support varlena fields with single-byte headers and unaligned storage. · 3e23b68d
      Tom Lane authored
      This commit breaks any code that assumes that the mere act of forming a tuple
      (without writing it to disk) does not "toast" any fields.  While all available
      regression tests pass, I'm not totally sure that we've fixed every nook and
      cranny, especially in contrib.
      
      Greg Stark with some help from Tom Lane
      3e23b68d
  8. 23 Mar, 2007 1 commit
    • Tom Lane's avatar
      Adjust DatumGetBool macro so that it isn't fooled by garbage in the Datum · 23a41573
      Tom Lane authored
      to the left of the actual bool value.  While in most cases there won't be
      any, our support for old-style user-defined functions violates the C spec
      to the extent of calling functions that might return char or short through
      a function pointer declared to return "char *", which we then coerce to
      Datum.  It is not surprising that the result might contain garbage
      high-order bits ... what is surprising is that we didn't see such cases
      long ago.  Per report from Magnus.
      23a41573
  9. 27 Feb, 2007 1 commit
    • Tom Lane's avatar
      Replace direct assignments to VARATT_SIZEP(x) with SET_VARSIZE(x, len). · 234a02b2
      Tom Lane authored
      Get rid of VARATT_SIZE and VARATT_DATA, which were simply redundant with
      VARSIZE and VARDATA, and as a consequence almost no code was using the
      longer names.  Rename the length fields of struct varlena and various
      derived structures to catch anyplace that was accessing them directly;
      and clean up various places so caught.  In itself this patch doesn't
      change any behavior at all, but it is necessary infrastructure if we hope
      to play any games with the representation of varlena headers.
      Greg Stark and Tom Lane
      234a02b2
  10. 05 Jan, 2007 1 commit
  11. 13 Jul, 2006 1 commit
  12. 05 Mar, 2006 1 commit
  13. 12 Feb, 2006 1 commit
    • Bruce Momjian's avatar
      I've created a new shared catalog table pg_shdescription to store · f9a726aa
      Bruce Momjian authored
      comments on cluster global objects like databases, tablespaces, and
      roles.
      
      It touches a lot of places, but not much in the way of big changes.  The
      only design decision I made was to duplicate the query and manipulation
      functions rather than to try and have them handle both shared and local
      comments.  I believe this is simpler for the code and not an issue for
      callers because they know what type of object they are dealing with.
      This has resulted in a shobj_description function analagous to
      obj_description and backend functions [Create/Delete]SharedComments
      mirroring the existing [Create/Delete]Comments functions.
      
      pg_shdescription.h goes into src/include/catalog/
      
      Kris Jurka
      f9a726aa
  14. 08 Jan, 2006 1 commit
  15. 14 Apr, 2005 1 commit
    • Tom Lane's avatar
      First phase of project to use fixed OIDs for all system catalogs and · 7c13781e
      Tom Lane authored
      indexes.  Extend the macros in include/catalog/*.h to carry the info
      about hand-assigned OIDs, and adjust the genbki script and bootstrap
      code to make the relations actually get those OIDs.  Remove the small
      number of RelOid_pg_foo macros that we had in favor of a complete
      set named like the catname.h and indexing.h macros.  Next phase will
      get rid of internal use of names for looking up catalogs and indexes;
      but this completes the changes forcing an initdb, so it looks like a
      good place to commit.
      Along the way, I made the shared relations (pg_database etc) not be
      'bootstrap' relations any more, so as to reduce the number of hardwired
      entries and simplify changing those relations in future.  I'm not
      sure whether they ever really needed to be handled as bootstrap
      relations, but it seems to work fine to not do so now.
      7c13781e
  16. 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
  17. 29 Aug, 2004 1 commit
  18. 16 Jan, 2004 1 commit
  19. 04 Jan, 2004 1 commit
  20. 29 Nov, 2003 1 commit
    • PostgreSQL Daemon's avatar
      · 55b11325
      PostgreSQL Daemon authored
      make sure the $Id tags are converted to $PostgreSQL as well ...
      55b11325
  21. 04 Aug, 2003 2 commits
  22. 06 Apr, 2003 1 commit
  23. 18 Oct, 2002 1 commit
  24. 04 Sep, 2002 1 commit
  25. 25 Aug, 2002 1 commit
    • Tom Lane's avatar
      Clean up comments to be careful about the distinction between variable- · 58de4809
      Tom Lane authored
      width types and varlena types, since with the introduction of CSTRING as
      a more-or-less-real type, these concepts aren't identical.  I've tried to
      use varlena consistently to denote datatypes with typlen = -1, ie, they
      have a length word and are potentially TOASTable; while the term variable
      width covers both varlena and cstring (and, perhaps, someday other types
      with other rules for computing the actual width).  No code changes in this
      commit except for renaming a couple macros.
      58de4809
  26. 10 Aug, 2002 1 commit
    • Bruce Momjian's avatar
      This patch removes a lot of unused code related to assertions and · c5354dff
      Bruce Momjian authored
      error handling, and simplifies the code that remains. Apparently,
      the code that left Berkeley had a whole "error handling subsystem",
      which exceptions and whatnot. Since we don't use that anymore,
      there's no reason to keep it around.
      
      The regression tests pass with the patch applied. Unless anyone
      sees a problem, please apply.
      
      Neil Conway
      c5354dff
  27. 20 Jun, 2002 1 commit
  28. 27 Apr, 2002 1 commit
    • Tom Lane's avatar
      Support toasting of shared system relations, and provide toast tables for · c06f6a6b
      Tom Lane authored
      pg_database, pg_shadow, pg_group, all of which now have potentially-long
      fields.  Along the way, get rid of SharedSystemRelationNames list: shared
      rels are now identified in their include/pg_catalog/*.h files by a
      BKI_SHARED_RELATION macro, while indexes and toast rels inherit sharedness
      automatically from their parent table.  Fix some bugs with failure to detoast
      pg_group.grolist during ALTER GROUP.
      c06f6a6b
  29. 05 Nov, 2001 1 commit
  30. 28 Oct, 2001 1 commit
  31. 25 Oct, 2001 1 commit
  32. 03 Oct, 2001 1 commit
  33. 24 Aug, 2001 1 commit
  34. 23 Aug, 2001 1 commit
  35. 10 Aug, 2001 1 commit
    • Tom Lane's avatar
      Make OIDs optional, per discussions in pghackers. WITH OIDS is still the · bf56f075
      Tom Lane authored
      default, but OIDS are removed from many system catalogs that don't need them.
      Some interesting side effects: TOAST pointers are 20 bytes not 32 now;
      pg_description has a three-column key instead of one.
      
      Bugs fixed in passing: BINARY cursors work again; pg_class.relhaspkey
      has some usefulness; pg_dump dumps comments on indexes, rules, and
      triggers in a valid order.
      
      initdb forced.
      bf56f075
  36. 12 Jun, 2001 1 commit
    • Tom Lane's avatar
      Clean up various to-do items associated with system indexes: · 1d584f97
      Tom Lane authored
      pg_database now has unique indexes on oid and on datname.
      pg_shadow now has unique indexes on usename and on usesysid.
      pg_am now has unique index on oid.
      pg_opclass now has unique index on oid.
      pg_amproc now has unique index on amid+amopclaid+amprocnum.
      Remove pg_rewrite's unnecessary index on oid, delete unused RULEOID syscache.
      Remove index on pg_listener and associated syscache for performance reasons
      (caching rows that are certain to change before you need 'em again is
      rather pointless).
      Change pg_attrdef's nonunique index on adrelid into a unique index on
      adrelid+adnum.
      
      Fix various incorrect settings of pg_class.relisshared, make that the
      primary reference point for whether a relation is shared or not.
      IsSharedSystemRelationName() is now only consulted to initialize relisshared
      during initial creation of tables and indexes.  In theory we might now
      support shared user relations, though it's not clear how one would get
      entries for them into pg_class &etc of multiple databases.
      
      Fix recently reported bug that pg_attribute rows created for an index all have
      the same OID.  (Proof that non-unique OID doesn't matter unless it's
      actually used to do lookups ;-))
      
      There's no need to treat pg_trigger, pg_attrdef, pg_relcheck as bootstrap
      relations.  Convert them into plain system catalogs without hardwired
      entries in pg_class and friends.
      
      Unify global.bki and template1.bki into a single init script postgres.bki,
      since the alleged distinction between them was misleading and pointless.
      Not to mention that it didn't work for setting up indexes on shared
      system relations.
      
      Rationalize locking of pg_shadow, pg_group, pg_attrdef (no need to use
      AccessExclusiveLock where ExclusiveLock or even RowExclusiveLock will do).
      Also, hold locks until transaction commit where necessary.
      1d584f97
  37. 23 Mar, 2001 1 commit
  38. 22 Mar, 2001 1 commit
  39. 10 Feb, 2001 1 commit
    • Tom Lane's avatar
      Restructure the key include files per recent pghackers discussion: there · d08741ea
      Tom Lane authored
      are now separate files "postgres.h" and "postgres_fe.h", which are meant
      to be the primary include files for backend .c files and frontend .c files
      respectively.  By default, only include files meant for frontend use are
      installed into the installation include directory.  There is a new make
      target 'make install-all-headers' that adds the whole content of the
      src/include tree to the installed fileset, for use by people who want to
      develop server-side code without keeping the complete source tree on hand.
      Cleaned up a whole lot of crufty and inconsistent header inclusions.
      d08741ea