aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Implement sharable row-level locks, and use them for foreign key referencesTom Lane2005-04-28
| | | | | | | | | | | | | | | to eliminate unnecessary deadlocks. This commit adds SELECT ... FOR SHARE paralleling SELECT ... FOR UPDATE. The implementation uses a new SLRU data structure (managed much like pg_subtrans) to represent multiple- transaction-ID sets. When more than one transaction is holding a shared lock on a particular row, we create a MultiXactId representing that set of transactions and store its ID in the row's XMAX. This scheme allows an effectively unlimited number of row locks, just as we did before, while not costing any extra overhead except when a shared lock actually has to be shared. Still TODO: use the regular lock manager to control the grant order when multiple backends are waiting for a row lock. Alvaro Herrera and Tom Lane.
* Fix a whitespace problem. From Alvaro Herrera.Dennis Bjorklund2005-04-28
|
* Add WAL compression item to TODO.detail.Bruce Momjian2005-04-28
|
* Add psql \set ON_ERROR_ROLLBACK to allow statements in a transaction toBruce Momjian2005-04-28
| | | | | error without affecting the entire transaction. Valid values are "on|interactive|off".
* Wording improvement.Bruce Momjian2005-04-27
|
* Update PAM documentation, per Alvaro.Bruce Momjian2005-04-27
|
* Mention that PAM requires the user already exist in the database, perBruce Momjian2005-04-26
| | | | Dick Davies.
* On further experimentation, there were still a couple of bugs inTom Lane2005-04-25
| | | | ExpandIndirectionStar() ... and in markTargetListOrigin() too.
* Fix ExpandIndirectionStar to handle cases where the expression to beTom Lane2005-04-25
| | | | | | expanded is of RECORD type, eg 'select (foo).* from (select foo(f1) from t1) ss' where foo() is a function declared with multiple OUT parameters.
* get_expr_result_type probably needs to be able to handle OpExpr as wellTom Lane2005-04-25
| | | | | as FuncExpr, to cover cases where a function returning tuple is invoked via an operator.
* Update description:Bruce Momjian2005-04-25
| | | | | | | | | | < * Allow ORDER BY ... LIMIT 1 to select high/low value without sort or > * Allow ORDER BY ... LIMIT # to select high/low value without sort or 868c868 < Right now, if no index exists, ORDER BY ... LIMIT 1 requires we sort > Right now, if no index exists, ORDER BY ... LIMIT # requires we sort 870a871 > MIN/MAX already does this, but not for LIMIT > 1.
* Re-add item with better description:Bruce Momjian2005-04-25
| | | | | | | | | | > * Allow ORDER BY ... LIMIT 1 to select high/low value without sort or > index using a sequential scan for highest/lowest values > > Right now, if no index exists, ORDER BY ... LIMIT 1 requires we sort > all values to return the high/low value. Instead The idea is to do a > sequential scan to find the high/low value, thus avoiding the sort. >
* Fix btree_gist to handle timetz zone correctly per recent changes.Tom Lane2005-04-25
|
* Avoid rechecking lossy operators twice in a bitmap scan plan.Tom Lane2005-04-25
|
* While determining the filter clauses for an index scan (either plainTom Lane2005-04-25
| | | | | | or bitmap), use pred_test to be a little smarter about cases where a filter clause is logically unnecessary. This may be overkill for the plain indexscan case, but it's definitely useful for OR'd bitmap scans.
* Replace slightly klugy create_bitmap_restriction() function with aTom Lane2005-04-25
| | | | | more efficient routine in restrictinfo.c (which can make use of make_restrictinfo_internal).
* Add description for concurrent sequential scans:Bruce Momjian2005-04-25
| | | | | | | > One possible implementation is to start sequential scans from the lowest > numbered buffer in the shared cache, and when reaching the end wrap > around to the beginning, rather than always starting sequential scans > at the start of the table.
* Remove support for OR'd indexscans internal to a single IndexScan planTom Lane2005-04-25
| | | | | | | | node, as this behavior is now better done as a bitmap OR indexscan. This allows considerable simplification in nodeIndexscan.c itself as well as several planner modules concerned with indexscan plan generation. Also we can improve the sharing of code between regular and bitmap indexscans, since they are now working with nigh-identical Plan nodes.
* Adjust nodeBitmapIndexscan.c to not keep the index open across calls,Tom Lane2005-04-24
| | | | | | | | but just to open and close it during MultiExecBitmapIndexScan. This avoids acquiring duplicate resources (eg, multiple locks on the same relation) in a tree with many bitmap scans. Also, don't bother to lock the parent heap at all here, since we must be underneath a BitmapHeapScan node that will be holding a suitable lock.
* Actually, nodeBitmapIndexscan.c doesn't need to create a standardTom Lane2005-04-24
| | | | ExprContext at all, since it never evaluates any qual or tlist expressions.
* Put back example of using Result node to execute an INSERT.Tom Lane2005-04-24
|
* Update wording:Bruce Momjian2005-04-24
| | | | | | | < This allows vacuum to reclaim free space without requiring < a sequential scan > This allows vacuum to target specific pages for possible free space > without requiring a sequential scan.
* Update wording.Bruce Momjian2005-04-24
|
* Clean up HTML.Bruce Momjian2005-04-24
|
* Add replication FAQ item.Bruce Momjian2005-04-24
|
* Update some comments to use SQL examples rather than QUEL. From SimonNeil Conway2005-04-24
| | | | Riggs.
* Add line break.Bruce Momjian2005-04-24
|
* Update book items.Bruce Momjian2005-04-24
|
* Update VACUUM VERBOSE FSM message, per Tom.Bruce Momjian2005-04-24
|
* Repair two TIME WITH TIME ZONE bugs found by Dennis Vshivkov. ComparisonTom Lane2005-04-23
| | | | | | | of timetz values misbehaved in --enable-integer-datetime cases, and EXTRACT(EPOCH) subtracted the zone instead of adding it in all cases. Backpatch to all supported releases (except --enable-integer-datetime code does not exist in 7.2).
* Remove useless argtype_inherit() code, and make consequent simplifications.Tom Lane2005-04-23
| | | | | | | | | As I pointed out a few days ago, this code has failed to do anything useful for some time ... and if we did want to revive the capability to select functions by nearness of inheritance ancestry, this is the wrong place and way to do it anyway. The knowledge would need to go into func_select_candidate() instead. Perhaps someday someone will be motivated to do that, but I am not today.
* Turns out our existing page size is already optimal in most cases:Bruce Momjian2005-04-23
| | | | < * Research the use of larger page sizes
* Item already added to existing 'thread' item:Bruce Momjian2005-04-23
| | | | | | | | | | < * Consider parallel processing a single query < < This would involve using multiple threads or processes to do optimization, < sorting, or execution of single query. The major advantage of such a < feature would be to allow multiple CPUs to work together to process a < single query. <
* Remove item, not sure what it refers to:Bruce Momjian2005-04-23
| | | | | | | | | < * Allow ORDER BY ... LIMIT 1 to select high/low value without sort or < index using a sequential scan for highest/lowest values < < If only one value is needed, there is no need to sort the entire < table. Instead a sequential scan could get the matching value. <
* New item:Bruce Momjian2005-04-23
| | | | > * Change WAL to use 32-bit CRC, for performance reasons
* Update threading item:Bruce Momjian2005-04-23
| | | | | | < Solaris) might benefit from threading. > Solaris) might benefit from threading. Also explore the idea of > a single session using multiple threads to execute a query faster.
* Done:Bruce Momjian2005-04-23
| | | | | < * Improve SMP performance on i386 machines > * -Improve SMP performance on i386 machines
* Remove explicit FreeExprContext calls during plan node shutdown. TheTom Lane2005-04-23
| | | | | | | | | | | | ExprContexts will be freed anyway when FreeExecutorState() is reached, and letting that routine do the work is more efficient because it will automatically free the ExprContexts in reverse creation order. The existing coding was effectively freeing them in exactly the worst possible order, resulting in O(N^2) behavior inside list_delete_ptr, which becomes highly visible in cases with a few thousand plan nodes. ExecFreeExprContext is now effectively a no-op and could be removed, but I left it in place in case we ever want to put it back to use.
* Done:Bruce Momjian2005-04-23
| | | | < * Optimize locale to have minimal performance impact when not used
* Fix typo:Bruce Momjian2005-04-23
| | | | | < * Add ISo INTERVAL handling > * Add ISO INTERVAL handling
* Update VACUUM VERBOSE update, per Alvaro.Bruce Momjian2005-04-23
|
* Update working of VACUUM VERBOSE.Bruce Momjian2005-04-23
|
* Make VACUUM VERBOSE FSM output all output in a single INFO outputBruce Momjian2005-04-23
| | | | statement.
* Move info about lack of depencency checking in Makefiles to developer's faq.qBruce Momjian2005-04-23
|
* Update FAQ by eliminating non-frequent items like large objects andBruce Momjian2005-04-23
| | | | extending questions. Update wording of various entries.
* Done:Bruce Momjian2005-04-23
| | | | > * -Allow non-bitmap indexes to be combined by creating bitmaps in memory
* Update H4 tag to H3 to be consistent with heading levels.Bruce Momjian2005-04-23
|
* Add item about server-side debugging.Bruce Momjian2005-04-23
|
* Update FAQ items to point to existing web pages rather than duplicationBruce Momjian2005-04-23
| | | | | such information. Remove MySQL mention. Move server-side debug item to developer's FAQ. Update URLs.
* Add comment about checkpoint panic behavior during shutdown, perTom Lane2005-04-23
| | | | suggestion from Qingqing Zhou.