summaryrefslogtreecommitdiff
path: root/src/backend/access
Commit message (Collapse)AuthorAgeFilesLines
* _hash_checkpage: cleanup for CASSERTVadim B. Mikheev1997-08-141-5/+5
|
* These changes allow the module to compile quietly when assert checking isBruce Momjian1997-08-121-6/+5
| | | | not being done.
* Remove more (void) and fix -Wall warnings.Bruce Momjian1997-08-1214-63/+63
|
* Catch non-functional delete attempts.Vadim B. Mikheev1997-08-061-1/+14
|
* Cleanup for NAMEDATALEN use.Bruce Momjian1997-08-031-2/+2
|
* _hash_first: release buf & metabuf if no tuples found for a key.Vadim B. Mikheev1997-06-281-1/+5
|
* Someone forgot about aligning in fastgetiattr()...Vadim B. Mikheev1997-06-121-34/+63
|
* Compare 'char' and 'text' lexicographically.Vadim B. Mikheev1997-06-111-6/+5
|
* From: Robert Bruccoleri <bruc@bms.com>Marc G. Fournier1997-06-111-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Subject: [PORTS] Patches for Irix 6.4 I have worked out how to compile PostgreSQL on Irix 6.4 using the -n32 compiler mode and version 7.1 of the C compiler. (The n32 compiler use 32 bits addressing, but allows access to all the instructions in the MIPS4 instruction set.) There were several problems: 1) The ld command is not referenced as a macro in all the Makefiles. On this platform, you have to include -n32 on all the ld commands. Makefiles were changed as needed. 3) Lots of warnings are generated from the compiler. Since the regression tests worked OK, I didn't attempt to fix them. If anyone wants the compilation log, please let me know, and I'll email it to you. The version of postgresql was 970602. Here is Makefile.custom: CUSTOM_COPT = -O2 -n32 MK_NO_LORDER = 1 LD = ld -n32 CC += -n32
* Duplicates handling...Vadim B. Mikheev1997-06-102-124/+303
|
* Added check is new item successfuly inserted to a page or not.Vadim B. Mikheev1997-06-062-17/+29
|
* If we have to split leaf page in the chain of duplicatesVadim B. Mikheev1997-05-311-41/+24
| | | | | then we try to look at our right sibling first, but not farther, as it was in yesterday fix.
* Fix duplicates handling.Vadim B. Mikheev1997-05-304-109/+531
|
* 1. Pass GISTENTRYs to giststate->penaltyFn by pointers, not by vals.Vadim B. Mikheev1997-05-222-1/+8
| | | | 2. Re-initialize keys in gistrescan (if gist used in inner scan).
* From: Darren King <aixssd!darrenk@abs.net>Marc G. Fournier1997-05-221-2/+3
| | | | | | | | | | Subject: [PATCHES] Re: [PORTS] AIX 6.1 fixes... Here are the patches for the two things that wouldn't make it thru the AIX compiler. The geo_ops.c change is harmless I believe. The nbtcompare.c patch fixes me, but I don't know about any other ports. Maybe wait on that one until Vadim decides what to do about the unsigned vs signed chars varlena issue.
* Initialize internal keys if rtree used in inner scan.Vadim B. Mikheev1997-05-201-1/+5
|
* Bug: backend crashes in btbeginscan()->btrescan()->_bt_orderkeys()Vadim B. Mikheev1997-05-052-24/+31
| | | | | | | | | when btree used in innerscan with run-time key which value passed by pointer. Fix: keys ordering stuff moved to _bt_first(). Pointed by Thomas Lockhart.
* Fix old bug in _hash_first() for scan without keys:Vadim B. Mikheev1997-04-301-2/+8
| | | | if 1st bucket chain is empty then need to continue scan in the rest buckets.
* _bt_endpoint fixed: set currentItemData to Invalid if no result.Vadim B. Mikheev1997-04-241-1/+3
|
* Major patch from Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>Marc G. Fournier1997-04-221-25/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OK, here are a passel of patches for the geometric data types. These add a "circle" data type, new operators and functions for the existing data types, and change the default formats for some of the existing types to make them consistant with each other. Current formatting conventions (e.g. compatible with v6.0 to allow dump/reload) are supported, but the new conventions should be an improvement and we can eventually drop the old conventions entirely. For example, there are two kinds of paths (connected line segments), open and closed, and the old format was '(1,2,1,2,3,4)' for a closed path with two points (1,2) and (3,4) '(0,2,1,2,3,4)' for an open path with two points (1,2) and (3,4) Pretty arcane, huh? The new format for paths is '((1,2),(3,4))' for a closed path with two points (1,2) and (3,4) '[(1,2),(3,4)]' for an open path with two points (1,2) and (3,4) For polygons, the old convention is '(0,4,2,0,4,3)' for a triangle with points at (0,0),(4,4), and (2,3) and the new convention is '((0,0),(4,4),(2,3))' for a triangle with points at (0,0),(4,4), and (2,3) Other data types which are also represented as lists of points (e.g. boxes, line segments, and polygons) have similar representations (they surround each point with parens). For v6.1, any format which can be interpreted as the old style format is decoded as such; we can remove that backwards compatibility but ugly convention for v7.0. This will allow dump/reloads from v6.0. These include some updates to the regression test files to change the test for creating a data type from "circle" to "widget" to keep the test from trashing the new builtin circle type.
* #ifdef BTREE_BUILD_STATS enables to get executor stats for btreeVadim B. Mikheev1997-04-182-17/+37
| | | | building.
* Fix bttextcmp() to use unsigned char*.Vadim B. Mikheev1997-04-181-9/+29
| | | | #ifdef USE_LOCALE added.
* 1. BTREE_VERSION_1: using bti_itup->t_tid as unique identifier for a givenVadim B. Mikheev1997-04-165-99/+167
| | | | | | | | | | | | index tuple (logical position within A LEVEL). bti_oid & bti_dummy taken off from BTItemData. 2. Fix for multi-column indices (nbtsearch.c): _bt_binsrch() - for searches on internal pages having keysize < number of attrs we point at the last item < the scankey, not at the first item = the scankey; _bt_moveright() - if keysize < number of attrs we compare scankey with _last_ item on current page to decide should we move right or not.
* Fix btabstimecmp ().Vadim B. Mikheev1997-04-071-3/+3
|
* CloseSequences () at xact commit/abort.Vadim B. Mikheev1997-04-021-2/+5
|
* From: Dan McGuirk <mcguirk@indirect.com>Marc G. Fournier1997-03-282-13/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reply-To: hackers@hub.org, Dan McGuirk <mcguirk@indirect.com> To: hackers@hub.org Subject: [HACKERS] tmin writeback optimization I was doing some profiling of the backend, and noticed that during a certain benchmark I was running somewhere between 30% and 75% of the backend's CPU time was being spent in calls to TransactionIdDidCommit() from HeapTupleSatisfiesNow() or HeapTupleSatisfiesItself() to determine that changed rows' transactions had in fact been committed even though the rows' tmin values had not yet been set. When a query looks at a given row, it needs to figure out whether the transaction that changed the row has been committed and hence it should pay attention to the row, or whether on the other hand the transaction is still in progress or has been aborted and hence the row should be ignored. If a tmin value is set, it is known definitively that the row's transaction has been committed. However, if tmin is not set, the transaction referred to in xmin must be looked up in pg_log, and this is what the backend was spending a lot of time doing during my benchmark. So, implementing a method suggested by Vadim, I created the following patch that, the first time a query finds a committed row whose tmin value is not set, sets it, and marks the buffer where the row is stored as dirty. (It works for tmax, too.) This doesn't result in the boost in real time performance I was hoping for, however it does decrease backend CPU usage by up to two-thirds in certain situations, so it could be rather beneficial in high-concurrency settings.
* Someone forgot about 'case sizeof(int32)' forVadim B. Mikheev1997-03-261-1/+4
| | | | tupleDesc->attrs[i]->attlen in fastgetiattr.
* Free memory allocated by command in the BlankPortal' HeapMemory contextVadim B. Mikheev1997-03-251-1/+9
| | | | (#ifdef-ed).
* + NULLs handlingVadim B. Mikheev1997-03-245-107/+432
| | | | | | | | | | | Actually required by multi-column indices support. We still don't use btree for 'A is (not) null', but now btree keep items with NULL attrs using single rule for placing/finding items on pages: NULLs greater NOT_NULLs and NULL = NULL. + Bulkload code (nbtsort.c) support for multi-column indices building and NULLs. + Fix for btendscan()->pfree(scanopaque) from Chris Dunlop.
* Patches for Vadim's multikey indexing...Marc G. Fournier1997-03-184-146/+192
|
* Date/Time updates from Thomas...Marc G. Fournier1997-03-143-7/+14
|
* From: Dan McGuirk <mcguirk@indirect.com>Marc G. Fournier1997-03-122-9/+9
| | | | | | | | | | Subject: [HACKERS] linux/alpha patches These patches lay the groundwork for a Linux/Alpha port. The port doesn't actually work unless you tweak the linker to put all the pointers in the first 32 bits of the address space, but it's at least a start. It implements the test-and-set instruction in Alpha assembly, and also fixes a lot of pointer-to-integer conversions, which is probably good anyway.
* From: Dan McGuirk <mcguirk@indirect.com>Marc G. Fournier1997-03-121-4/+15
| | | | | | | | | Subject: [HACKERS] abort failed transaction patch This patch allows you to end a transaction that has failed on an error using the 'ABORT' statement without generating another error message. (By default you get an error unless you use 'END' to terminate the transaction, which has already been aborted anyway.)
* Change "WARN" message generated if a unique index is attempted on a table/keyMarc G. Fournier1997-02-251-2/+2
| | | | containing non-unique data
* Added: UNIQUE feature to bulkload code.Vadim B. Mikheev1997-02-222-45/+54
|
* Update btree patches that were missed.Bruce Momjian1997-02-183-12/+64
|
* Add prototypes and remove unused variables from btree Fastbuild patch.Bruce Momjian1997-02-141-17/+2
|
* What looks like some *major* improvements to btree indexing...Marc G. Fournier1997-02-122-221/+371
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-251-2/+2
| | | | | 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-231-9/+1
|
* VariableRelationPutNextXid () now flushes variable relationVadim B. Mikheev1997-01-161-2/+5
| | | | after writing next free XID.
* include sem.h added, include string.h neede, from Erik Bertelsen for UltrixBruce Momjian1997-01-101-1/+2
|
* Fixed (I hope) unique btree index implementation.Vadim B. Mikheev1997-01-101-26/+88
|
* index_insert has now HeapRelation as last param (for unique indexVadim B. Mikheev1997-01-101-2/+2
| | | | implementation).
* index_insert has now HeapRelation as last param (forVadim B. Mikheev1997-01-104-10/+10
| | | | unique index implementation).
* Releasing empty root page in _bt_endpoint () to avoidVadim B. Mikheev1997-01-051-2/+10
| | | | buffer leak.
* Fix for SELECT INTO ... GROUP/ORDER BY where table already exists unlink error.Bruce Momjian1997-01-011-1/+9
|
* Removal of CppConcat from indexam.c.Bruce Momjian1996-12-261-3/+3
| | | | | | | | | | 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-151-9/+17
|
* AvoidingVadim B. Mikheev1996-12-141-4/+4
| | | | | | | | 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 ...