1. 28 Jun, 2006 1 commit
    • Teodor Sigaev's avatar
      Changes · 1f7ef548
      Teodor Sigaev authored
      * new split algorithm (as proposed in http://archives.postgresql.org/pgsql-hackers/2006-06/msg00254.php)
        * possible call pickSplit() for second and below columns
        * add spl_(l|r)datum_exists to GIST_SPLITVEC -
          pickSplit should check its values to use already defined
          spl_(l|r)datum for splitting. pickSplit should set
          spl_(l|r)datum_exists to 'false' (if they was 'true') to
          signal to caller about using spl_(l|r)datum.
        * support for old pickSplit(): not very optimal
          but correct split
      * remove 'bytes' field from GISTENTRY: in any case size of
        value is defined by it's type.
      * split GIST_SPLITVEC to two structures: one for using in picksplit
        and second - for internal use.
      * some code refactoring
      * support of subsplit to rtree opclasses
      
      TODO: add support of subsplit to contrib modules
      1f7ef548
  2. 25 Jun, 2006 1 commit
  3. 05 Mar, 2006 1 commit
  4. 07 Nov, 2005 1 commit
  5. 15 Oct, 2005 1 commit
  6. 30 Jun, 2005 1 commit
  7. 27 Jun, 2005 1 commit
    • Teodor Sigaev's avatar
      Concurrency for GiST · e8cab5fe
      Teodor Sigaev authored
      - full concurrency for insert/update/select/vacuum:
              - select and vacuum never locks more than one page simultaneously
              - select (gettuple) hasn't any lock across it's calls
              - insert never locks more than two page simultaneously:
                      - during search of leaf to insert it locks only one page
                        simultaneously
                      - while walk upward to the root it locked only parent (may be
                        non-direct parent) and child. One of them X-lock, another may
                        be S- or X-lock
      - 'vacuum full' locks index
      - improve gistgetmulti
      - simplify XLOG records
      
      Fix bug in index_beginscan_internal: LockRelation may clean
        rd_aminfo structure, so move GET_REL_PROCEDURE after LockRelation
      e8cab5fe
  8. 20 Jun, 2005 1 commit
    • Teodor Sigaev's avatar
      1. full functional WAL for GiST · d544ec8b
      Teodor Sigaev authored
      2. improve vacuum for gist
         - use FSM
         - full vacuum:
            - reforms parent tuple if it's needed
              ( tuples was deleted on child page or parent tuple remains invalid
                after crash recovery )
            - truncate index file if possible
      3. fixes bugs and mistakes
      d544ec8b
  9. 17 May, 2005 2 commits
    • Neil Conway's avatar
      Cleanup GiST header files. Since GiST extensions are often written as · c891e05f
      Neil Conway authored
      external projects, we should be careful about what parts of the GiST
      API are considered implementation details, and which are part of the
      public API. Therefore, I've moved internal-only declarations into
      gist_private.h -- future backward-incompatible changes to gist.h should
      be made with care, to avoid needlessly breaking external GiST extensions.
      
      Also did some related header cleanup: remove some unnecessary #includes
      from gist.h, and remove some unused definitions: isAttByVal(), _gistdump(),
      and GISTNStrategies.
      c891e05f
    • Neil Conway's avatar
      GiST improvements: · eda6dd32
      Neil Conway authored
      - make sure we always invoke user-supplied GiST methods in a short-lived
        memory context. This means the backend isn't exposed to any memory leaks
        that be in those methods (in fact, it is probably a net loss for most
        GiST methods to bother manually freeing memory now). This also means
        we can do away with a lot of ugly manual memory management in the
        GiST code itself.
      
      - keep the current page of a GiST index scan pinned, rather than doing a
        ReadBuffer() for each tuple produced by the scan. Since ReadBuffer() is
        expensive, this is a perf. win
      
      - implement dead tuple killing for GiST indexes (which is easy to do, now
        that we keep a pin on the current scan page). Now all the builtin indexes
        implement dead tuple killing.
      
      - cleanup a lot of ugly code in GiST
      eda6dd32
  10. 27 Mar, 2005 1 commit
    • Tom Lane's avatar
      First steps towards index scans with heap access decoupled from index · bf3dbb58
      Tom Lane authored
      access: define new index access method functions 'amgetmulti' that can
      fetch multiple TIDs per call.  (The functions exist but are totally
      untested as yet.)  Since I was modifying pg_am anyway, remove the
      no-longer-needed 'rel' parameter from amcostestimate functions, and
      also remove the vestigial amowner column that was creating useless
      work for Alvaro's shared-object-dependencies project.
      Initdb forced due to changes in pg_am.
      bf3dbb58
  11. 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
  12. 29 Aug, 2004 2 commits
  13. 30 Mar, 2004 1 commit
  14. 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
  15. 09 Nov, 2003 1 commit
    • Tom Lane's avatar
      Add operator strategy and comparison-value datatype fields to ScanKey. · c1d62bfd
      Tom Lane authored
      Remove the 'strategy map' code, which was a large amount of mechanism
      that no longer had any use except reverse-mapping from procedure OID to
      strategy number.  Passing the strategy number to the index AM in the
      first place is simpler and faster.
      This is a preliminary step in planned support for cross-datatype index
      operations.  I'm committing it now since the ScanKeyEntryInitialize()
      API change touches quite a lot of files, and I want to commit those
      changes before the tree drifts under me.
      c1d62bfd
  16. 04 Aug, 2003 1 commit
  17. 20 Jun, 2002 1 commit
  18. 05 Nov, 2001 1 commit
  19. 28 Oct, 2001 1 commit
  20. 25 Oct, 2001 1 commit
  21. 22 Aug, 2001 1 commit
  22. 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
  23. 10 Aug, 2001 1 commit
    • Bruce Momjian's avatar
      1. null-safe interface to GiST · 13923be7
      Bruce Momjian authored
         (as proposed in http://fts.postgresql.org/db/mw/msg.html?mid=1028327)
      
      2. support for 'pass-by-value' arguments - to test this
         we used special opclass for int4 with values in range [0-2^15]
         More testing will be done after resolving problem with
         index_formtuple and implementation of B-tree using GiST
      
      3. small patch to contrib modules (seg,cube,rtree_gist,intarray) -
         mark functions as 'isstrict' where needed.
      
      Oleg Bartunov
      13923be7
  24. 15 Jul, 2001 1 commit
    • Tom Lane's avatar
      Restructure index AM interface for index building and index tuple deletion, · c8076f09
      Tom Lane authored
      per previous discussion on pghackers.  Most of the duplicate code in
      different AMs' ambuild routines has been moved out to a common routine
      in index.c; this means that all index types now do the right things about
      inserting recently-dead tuples, etc.  (I also removed support for EXTEND
      INDEX in the ambuild routines, since that's about to go away anyway, and
      it cluttered the code a lot.)  The retail indextuple deletion routines have
      been replaced by a "bulk delete" routine in which the indexscan is inside
      the access method.  I haven't pushed this change as far as it should go yet,
      but it should allow considerable simplification of the internal bookkeeping
      for deletions.  Also, add flag columns to pg_am to eliminate various
      hardcoded tests on AM OIDs, and remove unused pg_am columns.
      
      Fix rtree and gist index types to not attempt to store NULLs; before this,
      gist usually crashed, while rtree managed not to crash but computed wacko
      bounding boxes for NULL entries (which might have had something to do with
      the performance problems we've heard about occasionally).
      
      Add AtEOXact routines to hash, rtree, and gist, all of which have static
      state that needs to be reset after an error.  We discovered this need long
      ago for btree, but missed the other guys.
      
      Oh, one more thing: concurrent VACUUM is now the default.
      c8076f09
  25. 31 May, 2001 1 commit
  26. 30 May, 2001 1 commit
  27. 22 Mar, 2001 1 commit
  28. 21 Nov, 2000 1 commit
  29. 14 Jul, 2000 1 commit
    • Tom Lane's avatar
      Cleanup of code for creating index entries. Functional indexes with · 6bfe6403
      Tom Lane authored
      pass-by-ref data types --- eg, an index on lower(textfield) --- no longer
      leak memory during index creation or update.  Clean up a lot of redundant
      code ... did you know that copy, vacuum, truncate, reindex, extend index,
      and bootstrap each basically duplicated the main executor's logic for
      extracting information about an index and preparing index entries?
      Functional indexes should be a little faster now too, due to removal
      of repeated function lookups.
      CREATE INDEX 'opt_type' clause is deimplemented by these changes,
      but I haven't removed it from the parser yet (need to merge with
      Thomas' latest change set first).
      6bfe6403
  30. 13 Jun, 2000 1 commit
  31. 12 Apr, 2000 1 commit
  32. 15 Jul, 1999 2 commits
  33. 13 Feb, 1999 1 commit
  34. 01 Sep, 1998 1 commit
  35. 26 Feb, 1998 1 commit
  36. 24 Jan, 1998 1 commit
  37. 15 Jan, 1998 1 commit
    • PostgreSQL Daemon's avatar
      Thank god for searchable mail archives. · baef78d9
      PostgreSQL Daemon authored
      Patch by: wieck@sapserv.debis.de (Jan Wieck)
      
         One  of  the design rules of PostgreSQL is extensibility. And
         to follow this rule means (at least for me) that there should
         not  only  be a builtin PL.  Instead I would prefer a defined
         interface for PL implemetations.
      baef78d9