Skip to content
Snippets Groups Projects
  1. Mar 22, 2001
  2. Mar 07, 2001
    • Tom Lane's avatar
      Repair a number of places that didn't bother to check whether PageAddItem · b109b03f
      Tom Lane authored
      succeeds or not.  Revise rtree page split algorithm to take care about
      making a feasible split --- ie, will the incoming tuple actually fit?
      Failure to make a feasible split, combined with failure to notice the
      failure, account for Jim Stone's recent bug report.  I suspect that
      hash and gist indices may have the same type of bug, but at least now
      we'll get error messages rather than silent failures if so.  Also clean
      up rtree code to use Datum rather than char* where appropriate.
      b109b03f
  3. Feb 22, 2001
  4. Jan 29, 2001
    • Tom Lane's avatar
      Clean up handling of tuple descriptors so that result-tuple descriptors · 0d54d6ac
      Tom Lane authored
      allocated by plan nodes are not leaked at end of query.  This doesn't
      really matter for normal queries, but it sure does for queries invoked
      repetitively inside SQL functions.  Clean up some other grotty code
      associated with tupdescs, and fix a few other memory leaks exposed by
      tests with simple SQL functions.
      0d54d6ac
  5. Jan 12, 2001
    • Marc G. Fournier's avatar
      · 0ad7db4b
      Marc G. Fournier authored
      New feature:
         1. Support of variable size keys - new algorithm of insertion to tree
            (GLI - gist layrered insertion). Previous algorithm was implemented
            as described in paper by Joseph M. Hellerstein et.al
            "Generalized Search Trees for Database Systems".  This (old)
            algorithm was not suitable for variable size keys and could be
            not effective ( walking up-down ) in case of multiple levels split
      Bug fixed:
         1. fixed bug in gistPageAddItem - key values were written to disk
            uncompressed. This caused failure if decompression function
            does real job.
         2. NULLs handling - we keep NULLs in tree. Right way is to remove them,
            but we don't know how to inform vacuum about index statistics. This is
            just cosmetic warning message (like in case with R-Tree),
            but I'm not sure how to recognize real problem if we remove NULLs
            and suppress this warning as Tom suggested.
         3. various memory leaks
      
      This work was done by Teodor Sigaev (teodor@stack.net) and
      Oleg Bartunov (oleg@sai.msu.su).
      0ad7db4b
  6. Nov 30, 2000
  7. Nov 21, 2000
  8. Nov 16, 2000
  9. Nov 08, 2000
    • Tom Lane's avatar
      Make DROP TABLE rollback-able: postpone physical file delete until commit. · 3908473c
      Tom Lane authored
      (WAL logging for this is not done yet, however.)  Clean up a number of really
      crufty things that are no longer needed now that DROP behaves nicely.  Make
      temp table mapper do the right things when drop or rename affecting a temp
      table is rolled back.  Also, remove "relation modified while in use" error
      check, in favor of locking tables at first reference and holding that lock
      throughout the statement.
      3908473c
  10. Oct 21, 2000
  11. Jul 15, 2000
    • 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
  12. Jul 12, 2000
  13. Jul 04, 2000
    • Jan Wieck's avatar
      TOAST · 57d8080a
      Jan Wieck authored
          WARNING: This is actually broken - we have self-deadlocks
      	         due to concurrent changes in buffer management.
      			 Vadim and me are working on it.
      
      Jan
      57d8080a
  14. Jun 18, 2000
    • Tom Lane's avatar
      Get rid of IndexIsUniqueNoCache() kluge by the simple expedient of · edf0b5f0
      Tom Lane authored
      passing the index-is-unique flag to index build routines (duh! ...
      why wasn't it done this way to begin with?).  Aside from eliminating
      an eyesore, this should save a few milliseconds in btree index creation
      because a full scan of pg_index is not needed any more.
      edf0b5f0
  15. Jun 15, 2000
  16. Jun 14, 2000
  17. Jun 13, 2000
  18. May 30, 2000
  19. Apr 12, 2000
  20. Mar 17, 2000
  21. Mar 01, 2000
  22. Jan 20, 2000
    • Tom Lane's avatar
      Fix handling of NULL constraint conditions: per SQL92 spec, a NULL result · 6d1efd76
      Tom Lane authored
      from a constraint condition does not violate the constraint (cf. discussion
      on pghackers 12/9/99).  Implemented by adding a parameter to ExecQual,
      specifying whether to return TRUE or FALSE when the qual result is
      really NULL in three-valued boolean logic.  Currently, ExecRelCheck is
      the only caller that asks for TRUE, but if we find any other places that
      have the wrong response to NULL, it'll be easy to fix them.
      6d1efd76
  23. Jan 18, 2000
  24. Dec 10, 1999
  25. Nov 08, 1999
  26. Sep 24, 1999
    • Tom Lane's avatar
      Several changes here, not very related but touching some of the same files. · e812458b
      Tom Lane authored
      * Buffer refcount cleanup (per my "progress report" to pghackers, 9/22).
      * Add links to backend PROC structs to sinval's array of per-backend info,
      and use these links for routines that need to check the state of all
      backends (rather than the slow, complicated search of the ShmemIndex
      hashtable that was used before).  Add databaseOID to PROC structs.
      * Use this to implement an interlock that prevents DESTROY DATABASE of
      a database containing running backends.  (It's a little tricky to prevent
      a concurrently-starting backend from getting in there, since the new
      backend is not able to lock anything at the time it tries to look up
      its database in pg_database.  My solution is to recheck that the DB is
      OK at the end of InitPostgres.  It may not be a 100% solution, but it's
      a lot better than no interlock at all...)
      * In ALTER TABLE RENAME, flush buffers for the relation before doing the
      rename of the physical files, to ensure we don't get failures later from
      mdblindwrt().
      * Update TRUNCATE patch so that it actually compiles against current
      sources :-(.
      You should do "make clean all" after pulling these changes.
      e812458b
  27. Sep 18, 1999
    • Tom Lane's avatar
      Mega-commit to make heap_open/heap_openr/heap_close take an · bd272cac
      Tom Lane authored
      additional argument specifying the kind of lock to acquire/release (or
      'NoLock' to do no lock processing).  Ensure that all relations are locked
      with some appropriate lock level before being examined --- this ensures
      that relevant shared-inval messages have been processed and should prevent
      problems caused by concurrent VACUUM.  Fix several bugs having to do with
      mismatched increment/decrement of relation ref count and mismatched
      heap_open/close (which amounts to the same thing).  A bogus ref count on
      a relation doesn't matter much *unless* a SI Inval message happens to
      arrive at the wrong time, which is probably why we got away with this
      sloppiness for so long.  Repair missing grab of AccessExclusiveLock in
      DROP TABLE, ALTER/RENAME TABLE, etc, as noted by Hiroshi.
      Recommend 'make clean all' after pulling this update; I modified the
      Relation struct layout slightly.
      Will post further discussion to pghackers list shortly.
      bd272cac
  28. Jul 19, 1999
  29. Jul 17, 1999
  30. Jul 16, 1999
  31. Jul 15, 1999
  32. May 25, 1999
  33. May 10, 1999
  34. Feb 14, 1999
  35. Dec 15, 1998
  36. Dec 14, 1998
    • Marc G. Fournier's avatar
      · 7c3b7d27
      Marc G. Fournier authored
      Initial attempt to clean up the code...
      
      Switch sprintf() to snprintf()
      Remove any/all #if 0 -or- #ifdef NOT_USED -or- #ifdef FALSE sections of
      	code
      7c3b7d27
  37. Nov 27, 1998
Loading