aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access
Commit message (Collapse)AuthorAge
* Re-use free space on index pages with duplicates.Vadim B. Mikheev1999-08-09
|
* Fix nbtree's failure to clear BTScans list during xact abort.Tom Lane1999-08-08
| | | | | | Also, move responsibility for calling vc_abort into main xact.c list of things-to-call-at-abort. What in the world was it doing down inside of TransactionIdAbort()?
* Install new alignment code to use MAXALIGN rather than DOUBLEALIGN whereBruce Momjian1999-07-19
| | | | approproate.
* Clean up gcc warning about unused static decl.Tom Lane1999-07-19
|
* Move some system includes into c.h, and remove duplicates.Bruce Momjian1999-07-17
|
* Fix silly typo in commentary...Tom Lane1999-07-17
|
* Revise _bt_binsrch() so that its binary search loop takesTom Lane1999-07-16
| | | | | | care of equal-key cases, eliminating bt_firsteq(). The linear search formerly done by bt_firsteq() took a lot of time in the case where many equal keys appear on the same page.
* Final cleanup.Bruce Momjian1999-07-16
|
* Change #include's to use <> and "" as appropriate.Bruce Momjian1999-07-15
|
* Remove unused #includes in *.c files.Bruce Momjian1999-07-15
|
* Clean up #include in /include directory. Add scripts for checking includes.Bruce Momjian1999-07-15
|
* Cleanup of /include #include's, for 6.6 only.Bruce Momjian1999-07-14
|
* cleanupBruce Momjian1999-07-09
|
* Update tuple size check.Bruce Momjian1999-07-03
|
* Fix for insertion of tuple too large.Bruce Momjian1999-07-03
|
* Fix to prevent too large tuple from being created.Bruce Momjian1999-07-03
|
* typo fix.Bruce Momjian1999-07-02
|
* Avoid disk writes for read-only transactions.Vadim B. Mikheev1999-06-29
|
* Change form() to varargform() to prevent portability problems.Bruce Momjian1999-06-19
|
* Reversed out Massimo patch.Bruce Momjian1999-06-12
|
* I don't like last minute patches before the final freeze, but I believe thatBruce Momjian1999-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this one could be useful for people experiencing out-of-memory crashes while executing queries which retrieve or use a very large number of tuples. The problem happens when storage is allocated for functions results used in a large query, for example: select upper(name) from big_table; select big_table.array[1] from big_table; select count(upper(name)) from big_table; This patch is a dirty hack that fixes the out-of-memory problem for the most common cases, like the above ones. It is not the final solution for the problem but it can work for some people, so I'm posting it. The patch should be safe because all changes are under #ifdef. Furthermore the feature can be enabled or disabled at runtime by the `free_tuple_memory' options in the pg_options file. The option is disabled by default and must be explicitly enabled at runtime to have any effect. To enable the patch add the follwing line to Makefile.custom: CUSTOM_COPT += -DFREE_TUPLE_MEMORY To enable the option at runtime add the following line to pg_option: free_tuple_memory=1 Massimo
* 1. Fix for elog(ERROR, "EvalPlanQual: t_xmin is uncommitted ?!")Vadim B. Mikheev1999-06-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and possibly for other cases too: DO NOT cache status of transaction in unknown state (i.e. non-committed and non-aborted ones) Example: T1 reads row updated/inserted by running T2 and cache T2 status. T2 commits. Now T1 reads a row updated by T2 and with HEAP_XMAX_COMMITTED in t_infomask (so cached T2 status is not changed). Now T1 EvalPlanQual gets updated row version without HEAP_XMIN_COMMITTED -> TransactionIdDidCommit(t_xmin) and TransactionIdDidAbort(t_xmin) return FALSE and T2 decides that t_xmin is not committed and gets ERROR above. It's too late to find more smart way to handle such cases and so I just changed xact status caching and got rid TransactionIdFlushCache() from code. Changed: transam.c, xact.c, lmgr.c and transam.h - last three just because of TransactionIdFlushCache() is removed. 2. heapam.c: T1 marked a row for update. T2 waits for T1 commit/abort. T1 commits. T3 updates the row before T2 locks row page. Now T2 sees that new row t_xmax is different from xact id (T1) T2 was waiting for. Old code did Assert here. New one goes to HeapTupleSatisfiesUpdate. Obvious changes too. 3. Added Assert to vacuum.c 4. bufmgr.c: break Assert(buf->r_locks == 0 && !buf->ri_lock) into two Asserts.
* Concurrency... Highest one...Vadim B. Mikheev1999-06-07
| | | | | | DO NOT EVEN TRY TO DO PageGetMaxOffsetNumber BEFORE LockBuffer! -:)
* Have to release meta page before reading root one!Vadim B. Mikheev1999-06-07
| | | | < 6.5 versions were just not affected by this bug due to locking.
* 1. xact.c: update comments about changing MyProc->xid and MyProc->xmin.Vadim B. Mikheev1999-06-06
| | | | | | | | | | | 2. varsup.c:ReadNewTransactionId(): don't read nextXid from disk - this func doesn't allocate next xid, so ShmemVariableCache->nextXid may be used (but GetNewTransactionId() must be called first). 3. vacuum.c: change elog(ERROR, "Child item....") to elog(NOTICE) - this is not ERROR, proper handling is just not implemented, yet. 4. s_lock.c: increase S_MAX_BUSY by 2 times. 5. shmem.c:GetSnapshotData(): have to call ReadNewTransactionId() _after_ SpinAcquire(ShmemIndexLock).
* 1. Additional fix against ERROR: Child itemid marked as unusedVadim B. Mikheev1999-06-03
| | | | | in CommitTransaction(). 2. Changes in GetSnapshotData().
* 1. MyProc->xid assignment is moved to GetNewTransactionId so newerVadim B. Mikheev1999-06-03
| | | | | | | | | | | | | | transactions will not assume that MyProc transaction was committed before snapshot calculations. With old MyProc->xid assignment (in xact.c:StartTransaction()) there was ability to see the same row twice (I used gdb for this)!... 2. Assignments of InvalidTransactionId to MyProc->xid and MyProc->xmin are moved from xact.c:CommitTransaction() to xact.c:RecordTransactionCommit() - this invalidation must be done before releasing transaction locks or bad (too high) XmaxRecent value might be used by vacuum ("ERROR: Child itemid marked as unused" reported by "Hiroshi Inoue" <Inoue@tpf.co.jp>; once again, gdb allowed me reproduce this error).
* Clean up memory leaks in LO operations by freeing LO's privateTom Lane1999-05-31
| | | | memory context at transaction commit or abort.
* Make functions static or NOT_USED as appropriate.Bruce Momjian1999-05-26
|
* Another pgindent run. Sorry folks.Bruce Momjian1999-05-25
|
* Make 0x007f -> (unsigned)0x7f to make pgindent happy.Bruce Momjian1999-05-25
|
* Get rid of page-level locking in btree-s.Vadim B. Mikheev1999-05-25
| | | | | | LockBuffer is used to acquire read/write access to index pages. Pages are released before leaving index internals.
* pgindent run over code.Bruce Momjian1999-05-25
|
* Release allocated memory during AtAbort_Memory.Tom Lane1999-05-13
|
* Change error messages to oids come out as %u and not %d. Change has noBruce Momjian1999-05-10
| | | | real affect now.
* Update hash and join routines to use fd.c's new temp-fileTom Lane1999-05-09
| | | | code, instead of not-very-bulletproof stuff they had before.
* Add 'temporary file' facility to fd.c, and arrange for tempTom Lane1999-05-09
| | | | | | | | | files to be closed automatically at transaction abort or commit, should they still be open. Also close any still-open stdio files allocated with AllocateFile at abort/commit. This should eliminate problems with leakage of file descriptors after an error. Also, put in some primitive buffered-IO support so that psort.c can use virtual files without severe performance penalties.
* Fix LMGR for MVCC.Vadim B. Mikheev1999-05-07
| | | | Get rid of Extend lock mode.
* Patch from "Hiroshi Inoue" <Inoue@tpf.co.jp> forVadim B. Mikheev1999-05-01
| | | | FATAL 1:btree: BTP_CHAIN flag was expected
* Use page-level ExtendLock lock instead of table-level -Vadim B. Mikheev1999-05-01
| | | | should be faster.
* My first cut at libpq revision didn't handle MULTIBYTE correctly,Tom Lane1999-04-25
| | | | but I think it's OK now...
* Revise backend libpq interfaces so that messages to the frontendTom Lane1999-04-25
| | | | | | can be generated in a buffer and then sent to the frontend in a single libpq call. This solves problems with NOTICE and ERROR messages generated in the middle of a data message or COPY OUT operation.
* Fix duplicating ROOT page in concurrent updates.Vadim B. Mikheev1999-04-22
|
* There are some bugs about backward scanning usingBruce Momjian1999-04-13
| | | | | | | | | | | | | | | indexes. 1. Index Scan using plural indexids never scan backward as to the order of indexids. 2. The cursor using Index scan is not usable after moving past the end. This patch solves above bugs. Moreover the change of _bt_first() would be useful to extend ORDER BY patch by Jan Wieck for all descending order cases. Hiroshi Inoue
* Unique btree-s:Vadim B. Mikheev1999-04-12
| | | | | | | /* * Have to check is inserted heap tuple deleted one * (i.e. just moved to another place by vacuum)! */
* Small cleanups.Bruce Momjian1999-03-30
|
* 1. Vacuum is updated for MVCC.Vadim B. Mikheev1999-03-28
| | | | | | | 2. Much faster btree tuples deletion in the case when first on page index tuple is deleted (no movement to the left page(s)). 3. Remember blkno of new root page in BTPageOpaque of left/right siblings when root page is splitted.
* cleanupBruce Momjian1999-03-14
|
* compile cleanupBruce Momjian1999-03-14
|
* Compile cleanupBruce Momjian1999-03-14
|