summaryrefslogtreecommitdiff
path: root/src/backend/access/gist/gist.c
Commit message (Collapse)AuthorAgeFilesLines
...
* New feature:Marc G. Fournier2001-01-121-618/+485
| | | | | | | | | | | | | | | | | | | | | | 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).
* No more #ifdef XLOG.Vadim B. Mikheev2000-11-301-5/+1
|
* Put external declarations into header files.Peter Eisentraut2000-11-211-4/+1
|
* Change SearchSysCache coding conventions so that a reference count isTom Lane2000-11-161-14/+15
| | | | | | | maintained for each cache entry. A cache entry will not be freed until the matching ReleaseSysCache call has been executed. This eliminates worries about cache entries getting dropped while still in use. See my posting to pg-hackers of even date for more info.
* Make DROP TABLE rollback-able: postpone physical file delete until commit.Tom Lane2000-11-081-5/+4
| | | | | | | | | (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.
* WALVadim B. Mikheev2000-10-211-1/+26
|
* Cleanup of code for creating index entries. Functional indexes withTom Lane2000-07-141-90/+64
| | | | | | | | | | | | | 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).
* First stage of reclaiming memory in executor by resetting short-termTom Lane2000-07-121-11/+8
| | | | | | memory contexts. Currently, only leaks in expressions executed as quals or projections are handled. Clean up some old dead cruft in executor while at it --- unused fields in state nodes, that sort of thing.
* TOASTJan Wieck2000-07-031-3/+3
| | | | | | | | WARNING: This is actually broken - we have self-deadlocks due to concurrent changes in buffer management. Vadim and me are working on it. Jan
* Get rid of IndexIsUniqueNoCache() kluge by the simple expedient ofTom Lane2000-06-171-6/+5
| | | | | | | 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.
* Clean up #include's.Bruce Momjian2000-06-151-1/+2
|
* I had overlooked the fact that some fmgr-callable functions return voidTom Lane2000-06-141-3/+3
| | | | | | --- ie, they're only called for side-effects. Add a PG_RETURN_VOID() macro and use it where appropriate. This probably doesn't change the machine code by a single bit ... it's just for documentation.
* Another batch of fmgr updates. I think I have gotten all old-styleTom Lane2000-06-131-21/+37
| | | | | functions that take pass-by-value datatypes. Should be ready for port testing ...
* Third round of fmgr updates: eliminate calls using fmgr() andTom Lane2000-05-301-7/+22
| | | | | fmgr_faddr() in favor of new-style calls. Lots of cleanup of sloppy casts to use XXXGetDatum and DatumGetXXX ...
* Remove unused include files. Do not touch /port or includes used by defines.Bruce Momjian2000-05-301-2/+1
|
* Ye-old pgindent run. Same 4-space tabs.Bruce Momjian2000-04-121-12/+14
|
* Fix a bunch of minor portability problems and maybe-bugs revealed byTom Lane2000-03-171-2/+2
| | | | | | running gcc and HP's cc with warnings cranked way up. Signed vs unsigned comparisons, routines declared static and then defined not-static, that kind of thing. Tedious, but perhaps useful...
* Change reindex command to work properly with gist/hash/rtreeHiroshi Inoue2000-03-011-4/+5
|
* Fix handling of NULL constraint conditions: per SQL92 spec, a NULL resultTom Lane2000-01-191-3/+3
| | | | | | | | | 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.
* setheapoverride() is history. Uses replaced with CommandCounterIncrement()Tom Lane2000-01-171-3/+3
| | | | | where necessary --- several of them didn't really need it, though. tqual-checking macros simplified accordingly.
* Rename several destroy* functions/tags to drop*.Bruce Momjian1999-12-101-2/+2
|
* New NameStr macro to convert Name to Str. No need for var.data anymore.Bruce Momjian1999-11-071-2/+2
| | | | | | Fewer calls to nameout. Better use of RelationGetRelationName.
* Several changes here, not very related but touching some of the same files.Tom Lane1999-09-241-2/+2
| | | | | | | | | | | | | | | | | | | | | * 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.
* Mega-commit to make heap_open/heap_openr/heap_close take anTom Lane1999-09-181-23/+25
| | | | | | | | | | | | | | | | | 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.
* Clean up gcc warning about unused static decl.Tom Lane1999-07-191-1/+3
|
* Move some system includes into c.h, and remove duplicates.Bruce Momjian1999-07-171-5/+0
|
* Final cleanup.Bruce Momjian1999-07-161-1/+2
|
* Change #include's to use <> and "" as appropriate.Bruce Momjian1999-07-151-10/+10
|
* Remove unused #includes in *.c files.Bruce Momjian1999-07-151-6/+0
|
* Clean up #include in /include directory. Add scripts for checking includes.Bruce Momjian1999-07-151-0/+1
|
* pgindent run over code.Bruce Momjian1999-05-251-4/+4
|
* Change error messages to oids come out as %u and not %d. Change has noBruce Momjian1999-05-101-2/+2
| | | | real affect now.
* Change my-function-name-- to my_function_name, and optimizer renames.Bruce Momjian1999-02-131-1/+1
|
* Initial MVCC code.Vadim B. Mikheev1998-12-151-6/+11
| | | | New code for locking buffer' context.
* Initial attempt to clean up the code...Marc G. Fournier1998-12-141-29/+1
| | | | | | Switch sprintf() to snprintf() Remove any/all #if 0 -or- #ifdef NOT_USED -or- #ifdef FALSE sections of code
* New HeapTuple structure/interface.Vadim B. Mikheev1998-11-271-1/+1
|
* OK, folks, here is the pgindent output.Bruce Momjian1998-09-011-26/+16
|
* Renaming cleanup, no pgindent yet.Bruce Momjian1998-09-011-22/+22
|
* heap_fetch requires buffer pointer, must be released; heap_getnextBruce Momjian1998-08-191-14/+13
| | | | | | | | | | | | | no longer returns buffer pointer, can be gotten from scan; descriptor; bootstrap can create multi-key indexes; pg_procname index now is multi-key index; oidint2, oidint4, oidname are gone (must be removed from regression tests); use System Cache rather than sequential scan in many places; heap_modifytuple no longer takes buffer parameter; remove unused buffer parameter in a few other functions; oid8 is not index-able; remove some use of single-character variable names; cleanup Buffer variables usage and scan descriptor looping; cleaned up allocation and freeing of tuples; 18k lines of diff;
* Use Snapshot in heap access methods.Vadim B. Mikheev1998-07-271-1/+1
|
* Cleanup use of 16 that should be NAMEDATALEN.Bruce Momjian1998-07-201-1/+1
|
* Cleanup Name usage.Bruce Momjian1998-07-201-1/+1
|
* Remove un-needed braces around single statements.Bruce Momjian1998-06-151-4/+0
|
* Thank god for searchable mail archives.PostgreSQL Daemon1998-01-151-22/+13
| | | | | | | | | 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.
* Goodbye ABORT. Hello ERROR for all errors.Bruce Momjian1998-01-071-3/+3
|
* Change elog(WARN) to elog(ERROR) and elog(ABORT).Bruce Momjian1998-01-051-3/+3
|
* Remove tqual.h includes not needed.Bruce Momjian1997-11-241-0/+1
|
* Remove all time travel stuff. Small parser cleanup.Bruce Momjian1997-11-201-1/+1
|
* Inline memset() as MemSet().Bruce Momjian1997-09-181-2/+2
|
* Used modified version of indent that understands over 100 typedefs.Bruce Momjian1997-09-081-52/+52
|