aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access
Commit message (Collapse)AuthorAge
* What looks like some *major* improvements to btree indexing...Marc G. Fournier1997-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patches from: aoki@CS.Berkeley.EDU (Paul M. Aoki) i gave jolly my btree bulkload code a long, long time ago but never gave him a bunch of my bugfixes. here's a diff against the 6.0 baseline. for some reason, this code has slowed down somewhat relative to the insertion-build code on very small tables. don't know why -- it used to be within about 10%. anyway, here are some (highly unscientific!) timings on a dec 3000/300 for synthetic tables with 10k, 100k and 1000k tuples (basically, 1mb, 10mb and 100mb heaps). 'c' means clustered (pre-sorted) inputs and 'u' means unclustered (randomly ordered) inputs. the 10k table basically fits in the buffer pool, but the 100k and 1000k tables don't. as you can see, insertion build is fine if you've sorted your heaps on your index key or if your heap fits in core, but is absolutely horrible on unordered data (yes, that's 7.5 hours to index 100mb of data...) because of the zillions of random i/os. if it doesn't work for you for whatever reason, you can always turn it back off by flipping the FastBuild flag in nbtree.c. i don't have time to maintain it. good luck! baseline code: time psql -c 'create index c10 on k10 using btree (c int4_ops)' bttest real 8.6 time psql -c 'create index u10 on k10 using btree (b int4_ops)' bttest real 9.1 time psql -c 'create index c100 on k100 using btree (c int4_ops)' bttest real 59.2 time psql -c 'create index u100 on k100 using btree (b int4_ops)' bttest real 652.4 time psql -c 'create index c1000 on k1000 using btree (c int4_ops)' bttest real 636.1 time psql -c 'create index u1000 on k1000 using btree (b int4_ops)' bttest real 26772.9 bulkloading code: time psql -c 'create index c10 on k10 using btree (c int4_ops)' bttest real 11.3 time psql -c 'create index u10 on k10 using btree (b int4_ops)' bttest real 10.4 time psql -c 'create index c100 on k100 using btree (c int4_ops)' bttest real 59.5 time psql -c 'create index u100 on k100 using btree (b int4_ops)' bttest real 63.5 time psql -c 'create index c1000 on k1000 using btree (c int4_ops)' bttest real 636.9 time psql -c 'create index u1000 on k1000 using btree (b int4_ops)' bttest real 701.0
* would you mind committing the following changes for me? (the firstBruce Momjian1997-01-25
| | | | | bug causes compilation to fail on alpha, the second causes a compiler in this environment
* Removed unlinked patch that is not neede now that Vadim has properly fixed it.Bruce Momjian1997-01-23
|
* VariableRelationPutNextXid () now flushes variable relationVadim B. Mikheev1997-01-16
| | | | after writing next free XID.
* include sem.h added, include string.h neede, from Erik Bertelsen for UltrixBruce Momjian1997-01-10
|
* Fixed (I hope) unique btree index implementation.Vadim B. Mikheev1997-01-10
|
* index_insert has now HeapRelation as last param (for unique indexVadim B. Mikheev1997-01-10
| | | | implementation).
* index_insert has now HeapRelation as last param (forVadim B. Mikheev1997-01-10
| | | | unique index implementation).
* Releasing empty root page in _bt_endpoint () to avoidVadim B. Mikheev1997-01-05
| | | | buffer leak.
* Fix for SELECT INTO ... GROUP/ORDER BY where table already exists unlink error.Bruce Momjian1997-01-01
|
* Removal of CppConcat from indexam.c.Bruce Momjian1996-12-26
| | | | | | | | | | As an example I sent a bug-report on 26 Nov to tell that the fix included below is necessary to compile pg95-current on Ultrix with Digital's standard C compiler c89. In fact I think that this fix is needed for any C compiler sticking very close the standard, see my discussion in the original bug report. Erik Bertelsen
* Make compile on AIX, Alpha OSF. Thanks Darren King, Igor Notanzon.Bryan Henderson1996-12-15
|
* AvoidingVadim B. Mikheev1996-12-14
| | | | | | | | cc1: warnings being treated as errors transsup.c: In function `TransBlockGetLastTransactionIdStatus': transsup.c:122: warning: unsigned value >= 0 is always 1 gmake[3]: *** [transsup.o] Error 1 ...
* Add comments describing interface to heap_getattr().Bryan Henderson1996-12-09
|
* _bt_updateitem is returned in code, but works only if sizes of keysVadim B. Mikheev1996-12-06
| | | | are equal.
* 1. _bt_compare fixed to work properly with new code in _bt_insertonpgVadim B. Mikheev1996-12-06
| | | | | | | | (old _bt_compare always returned >= 0 while comparing with P_HIKEY on root page - it breaks root page when _bt_insertonpg tries insert new minimal key into root page). 2. Fixed bug concerns "empty" pages: non-rightmost pages with only P_HIKEY present on it. Such pages appear after vacuum.
* Change portname "sparc" to "sunos4" and change some portname dependencies toBryan Henderson1996-12-04
| | | | feature dependencies. Thanks Kurt J. Lidl.
* TransactionIdIsInProgress is commented outVadim B. Mikheev1996-11-27
|
* Setting MyProc->xid to current transaction' id in StartTransactionVadim B. Mikheev1996-11-27
| | | | | and to InvalidTransactionId in CommitTransaction & AbortTransaction (it's for new TransactionIdIsInProgress func).
* TransactionIdIsInProgress moved to shmem.cVadim B. Mikheev1996-11-27
|
* Fix memory overhelding while forming index' result:Vadim B. Mikheev1996-11-21
| | | | | memory allocation for ItemPointerData of heap' tuple is useless because of FormRetrieveIndexResult makes neccessary palloc.
* Fix memory overhelding while forming index' result:Vadim B. Mikheev1996-11-21
| | | | | | memory allocation for ItemPointerData of heap' tuple is useless because of FormRetrieveIndexResult makes neccessary palloc.
* Fix memory overhelding while forming index' result:Vadim B. Mikheev1996-11-21
| | | | | memory allocation for ItemPointerData of heap' tuple is useless because of FormRetrieveIndexResult makes neccessary palloc.
* Remove PERFECT_MEMBruce Momjian1996-11-15
| | | | Unallocate opaque.
* Unallocate opaque.Bruce Momjian1996-11-15
|
* Commit of a *MAJOR* patch from Dan McGuirk <djm@indirect.com>Marc G. Fournier1996-11-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes: * Unique index capability works using the syntax 'create unique index'. * Duplicate OID's in the system tables are removed. I put little scripts called 'duplicate_oids' and 'find_oid' in include/catalog that help to find and remove duplicate OID's. I also moved 'unused_oids' from backend/catalog to include/catalog, since it has to be in the same directory as the include files in order to work. * The backend tries converting the name of a function or aggregate to all lowercase if the original name given doesn't work (mostly for compatibility with ODBC). * You can 'SELECT NULL' to your heart's content. * I put my _bt_updateitem fix in instead, which uses _bt_insertonpg so that even if the new key is so big that the page has to be split, everything still works. * All literal references to system catalog OID's have been replaced with references to define'd constants from the catalog header files. * I added a couple of node copy functions. I think this was a preliminary attempt to get rules to work.
* Recognize dependencies more reliably.Bryan Henderson1996-11-10
|
* All external function definitions now have prototypes that are checked.Bruce Momjian1996-11-10
|
* Makefile cleanup after reorganizationBruce Momjian1996-11-09
|
* Missed a file...Marc G. Fournier1996-11-05
| | | | access now compile with -Wall -Werror
* There, that cleans *that* outMarc G. Fournier1996-11-05
|
* One more to goMarc G. Fournier1996-11-05
|
* Almost done access...Marc G. Fournier1996-11-05
|
* More cleanupsMarc G. Fournier1996-11-05
|
* More cleanupsMarc G. Fournier1996-11-05
|
* another directory cleaned of extraneous #includesMarc G. Fournier1996-11-05
| | | | makefile fixed for fmgr.h
* More cleaned out #include filesMarc G. Fournier1996-11-05
| | | | Makefile fixed for fmgr.h
* Re-add -I../.. for fmgr.hMarc G. Fournier1996-11-05
| | | | | | | | Change #include "" to #include <> Remove a few unused #includes Make sure it compiles with -Wall -Werror
* Clean up a few of the #include filesMarc G. Fournier1996-11-05
|
* Added missing #includes pointed out by Keith ParksMarc G. Fournier1996-11-05
|
* More include file cleanupsMarc G. Fournier1996-11-03
|
* Changes required so that access/* compiles cleanly...Marc G. Fournier1996-11-03
| | | | cleaning up behind myself before *yawn* bed :)
* More include file cleanupsMarc G. Fournier1996-11-03
|
* That pretty much totally cleans up the includes files here.Marc G. Fournier1996-11-03
|
* Finish cleaning up -I linesMarc G. Fournier1996-11-03
|
* More include file cleanupsMarc G. Fournier1996-11-03
|
* More intelligent #include cleanups, as pointed out by Bryan...Marc G. Fournier1996-11-01
| | | | Compiled with -Wall -Werror
* Okay, so I was going backwards on my include cleanup...Marc G. Fournier1996-11-01
| | | | Pointed out by Bryan (in a subtle way *grin*)
* More of the same...clean Makefile, add include filesMarc G. Fournier1996-10-31
|
* Same clean up of Makefile, and addition of include filesMarc G. Fournier1996-10-31
|