1. 06 Dec, 2002 1 commit
  2. 05 Dec, 2002 1 commit
  3. 04 Dec, 2002 1 commit
  4. 23 Nov, 2002 2 commits
  5. 18 Nov, 2002 1 commit
  6. 15 Nov, 2002 1 commit
    • Bruce Momjian's avatar
      New version attached. The following is implemented: · 8bc717cb
      Bruce Momjian authored
      - CLUSTER ALL clusters all the tables that have some index with
        indisclustered set and the calling user owns.
      - CLUSTER tablename clusters the named table, using the index with
        indisclustered set.  If no index has the bit set, throws elog(ERROR).
      - The multi-relation version (CLUSTER ALL) uses a multitransaction
        approach, similar to what VACUUM does.
      
      Alvaro Herrera
      8bc717cb
  7. 11 Nov, 2002 1 commit
    • Tom Lane's avatar
      Code review for ON COMMIT patch. Make the actual on-commit action happen · f9b5b41e
      Tom Lane authored
      before commit, not after :-( --- the original coding is not only unsafe
      if an error occurs while it's processing, but it generates an invalid
      sequence of WAL entries.  Resurrect 7.2 logic for deleting items when
      no longer needed.  Use an enum instead of random macros.  Editorialize
      on names used for routines and constants.  Teach backend/nodes routines
      about new field in CreateTable struct.  Add a regression test.
      f9b5b41e
  8. 09 Nov, 2002 1 commit
  9. 02 Nov, 2002 1 commit
  10. 04 Sep, 2002 1 commit
  11. 03 Sep, 2002 1 commit
  12. 02 Sep, 2002 1 commit
    • Tom Lane's avatar
      Code review for HeapTupleHeader changes. Add version number to page headers · c7a165ad
      Tom Lane authored
      (overlaying low byte of page size) and add HEAP_HASOID bit to t_infomask,
      per earlier discussion.  Simplify scheme for overlaying fields in tuple
      header (no need for cmax to live in more than one place).  Don't try to
      clear infomask status bits in tqual.c --- not safe to do it there.  Don't
      try to force output table of a SELECT INTO to have OIDs, either.  Get rid
      of unnecessarily complex three-state scheme for TupleDesc.tdhasoids, which
      has already caused one recent failure.  Improve documentation.
      c7a165ad
  13. 27 Aug, 2002 1 commit
    • Bruce Momjian's avatar
      I attach a little patch to make CLUSTER set and reset the indisclustered · c0ad5953
      Bruce Momjian authored
      bit on the indexes.
      
      I also attach clusterdb and clusterdb.sgml; both of them are blatant
      rips of vacuumdb and vacuumdb.sgml, but get the job done.  Please review
      them, as I'm probably making a lot of mistakes with SGML and I can't
      compile it here.
      
      vacuumdb itself is not very comfortable to use when the databases have
      passwords, because it has to connect once for each table (I can probably
      make it connect only once for each database; should I?).  Because of
      this I added a mention of PGPASSWORDFILE in the documentation, but I
      don't know if that is the correct place for that.
      
      Alvaro Herrera
      c0ad5953
  14. 11 Aug, 2002 1 commit
  15. 10 Aug, 2002 2 commits
    • Bruce Momjian's avatar
      Update with newer version of CLUSTER patch posted August 8. · d1c64162
      Bruce Momjian authored
      > Looks like Alvaro got sideswiped by the system catalog indexing changes
      > I made over the weekend.  It's a simple change, just reduce the whole
      > mess to a "CatalogUpdateIndexes()" call.
      
      I update two tuples, so I manually CatalogOpenIndexes() and
      CatalogIndexInsert() two times, as per comments in
      CatalogUpdateIndexes().
      
      I also removed a couple of useless CommandCounterIncrement(), some
      useless definitions in src/include/commands/cluster.h and useless
      includes in src/backend/commands/cluster.c.  This version passes the
      regression test I had made for previous versions.
      
      Alvaro Herrera
      d1c64162
    • Bruce Momjian's avatar
      Major improvement in CLUSTER which preserves table characteristics using · 7dc40a2b
      Bruce Momjian authored
      relfilenode.
      
      I sent the CLUSTER patch a few days ago and I think it was missed.  I
      append it again, this time including the regression test files.  For the
      committer, please note that you have to cvs add the files as they don't
      exist.  Maybe add to the parallel and serial schedules also, but I don't
      know such stuff.
      
      Alvaro Herrera (<alvherre[a]atentus.com>)
      7dc40a2b
  16. 12 Jul, 2002 1 commit
    • Tom Lane's avatar
      Second phase of committing Rod Taylor's pg_depend/pg_constraint patch. · 7c6df91d
      Tom Lane authored
      pg_relcheck is gone; CHECK, UNIQUE, PRIMARY KEY, and FOREIGN KEY
      constraints all have real live entries in pg_constraint.  pg_depend
      exists, and RESTRICT/CASCADE options work on most kinds of DROP;
      however, pg_depend is not yet very well populated with dependencies.
      (Most of the ones that are present at this point just replace formerly
      hardwired associations, such as the implicit drop of a relation's pg_type
      entry when the relation is dropped.)  Need to add more logic to create
      dependency entries, improve pg_dump to dump constraints in place of
      indexes and triggers, and add some regression tests.
      7c6df91d
  17. 20 Jun, 2002 1 commit
  18. 21 May, 2002 1 commit
    • Tom Lane's avatar
      Remove global variable scanCommandId in favor of storing a command ID · 959e61e9
      Tom Lane authored
      in snapshots, per my proposal of a few days ago.  Also, tweak heapam.c
      routines (heap_insert, heap_update, heap_delete, heap_mark4update) to
      be passed the command ID to use, instead of doing GetCurrentCommandID.
      For catalog updates they'll still get passed current command ID, but
      for updates generated from the main executor they'll get passed the
      command ID saved in the snapshot the query is using.  This should fix
      some corner cases associated with functions and triggers that advance
      current command ID while an outer query is still in progress.
      959e61e9
  19. 20 May, 2002 1 commit
    • Tom Lane's avatar
      Restructure indexscan API (index_beginscan, index_getnext) per · 44fbe20d
      Tom Lane authored
      yesterday's proposal to pghackers.  Also remove unnecessary parameters
      to heap_beginscan, heap_rescan.  I modified pg_proc.h to reflect the
      new numbers of parameters for the AM interface routines, but did not
      force an initdb because nothing actually looks at those fields.
      44fbe20d
  20. 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
  21. 15 Apr, 2002 1 commit
    • Tom Lane's avatar
      The contents of command.c, creatinh.c, define.c, remove.c and rename.c · 71dc300a
      Tom Lane authored
      have been divided according to the type of object manipulated - so ALTER
      TABLE code is in tablecmds.c, aggregate commands in aggregatecmds.c and
      so on.
      
      A few common support routines remain in define.c (prototypes in
      src/include/commands/defrem.h).
      
      No code has been changed except for includes to reflect the new files.
      The prototypes for aggregatecmds.c, functioncmds.c, operatorcmds.c,
      and typecmds.c remain in src/include/commands/defrem.h.
      
      From John Gray <jgray@azuli.co.uk>
      71dc300a
  22. 31 Mar, 2002 2 commits
  23. 29 Mar, 2002 2 commits
  24. 26 Mar, 2002 1 commit
  25. 19 Feb, 2002 1 commit
    • Tom Lane's avatar
      A bunch of changes aimed at reducing backend startup time... · 78634044
      Tom Lane authored
      Improve 'pg_internal.init' relcache entry preload mechanism so that it is
      safe to use for all system catalogs, and arrange to preload a realistic
      set of system-catalog entries instead of only the three nailed-in-cache
      indexes that were formerly loaded this way.  Fix mechanism for deleting
      out-of-date pg_internal.init files: this must be synchronized with transaction
      commit, not just done at random times within transactions.  Drive it off
      relcache invalidation mechanism so that no special-case tests are needed.
      
      Cache additional information in relcache entries for indexes (their pg_index
      tuples and index-operator OIDs) to eliminate repeated lookups.  Also cache
      index opclass info at the per-opclass level to avoid repeated lookups during
      relcache load.
      
      Generalize 'systable scan' utilities originally developed by Hiroshi,
      move them into genam.c, use in a number of places where there was formerly
      ugly code for choosing either heap or index scan.  In particular this allows
      simplification of the logic that prevents infinite recursion between syscache
      and relcache during startup: we can easily switch to heapscans in relcache.c
      when and where needed to avoid recursion, so IndexScanOK becomes simpler and
      does not need any expensive initialization.
      
      Eliminate useless opening of a heapscan data structure while doing an indexscan
      (this saves an mdnblocks call and thus at least one kernel call).
      78634044
  26. 06 Jan, 2002 1 commit
  27. 25 Oct, 2001 1 commit
  28. 21 Aug, 2001 1 commit
    • Tom Lane's avatar
      Restructure pg_opclass, pg_amop, and pg_amproc per previous discussions in · f933766b
      Tom Lane authored
      pgsql-hackers.  pg_opclass now has a row for each opclass supported by each
      index AM, not a row for each opclass name.  This allows pg_opclass to show
      directly whether an AM supports an opclass, and furthermore makes it possible
      to store additional information about an opclass that might be AM-dependent.
      pg_opclass and pg_amop now store "lossy" and "haskeytype" information that we
      previously expected the user to remember to provide in CREATE INDEX commands.
      Lossiness is no longer an index-level property, but is associated with the
      use of a particular operator in a particular index opclass.
      
      Along the way, IndexSupportInitialize now uses the syscaches to retrieve
      pg_amop and pg_amproc entries.  I find this reduces backend launch time by
      about ten percent, at the cost of a couple more special cases in catcache.c's
      IndexScanOK.
      
      Initial work by Oleg Bartunov and Teodor Sigaev, further hacking by Tom Lane.
      
      initdb forced.
      f933766b
  29. 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
  30. 12 Jul, 2001 1 commit
  31. 22 Jun, 2001 1 commit
  32. 22 Mar, 2001 1 commit
  33. 24 Jan, 2001 1 commit
  34. 12 Jan, 2001 1 commit
  35. 10 Jan, 2001 1 commit
  36. 01 Jan, 2001 1 commit