aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* In pg_resetxlog.c, uint -> uint32, for Win32 port.Bruce Momjian2006-04-26
|
* Add missing ControlFile.checkPointCopy.ThisTimeLineID line for 'guess'Bruce Momjian2006-04-26
| | | | | | pg_resetxlog. Simon
* Update catalog version for ltree changes.Bruce Momjian2006-04-26
|
* Enhanced containment selectivity function for /contrib/ltreeBruce Momjian2006-04-26
| | | | Matteo Beccati
* Allow pg_resetxlog -f to reset pg_control counters using xlogBruce Momjian2006-04-26
| | | | | | | information, and add a -r option to reset pg_control without affecting xlog. yuanjia lee
* Revise large-object access routines to avoid running with CurrentMemoryContextTom Lane2006-04-26
| | | | | | | | | | | | | set to the large object context ("fscxt"), as this is inevitably a source of transaction-duration memory leaks. Not sure why we'd not noticed it before; maybe people weren't touching a whole lot of LOs in the same transaction before the 8.1 pg_dump changes. Per report from Wayne Conrad. Backpatched as far as 8.1, but the problem doubtless goes all the way back. I'm disinclined to spend the time to try to verify that the older branches would still work if patched, seeing that this code was significantly modified for 8.0 and again for 8.1, and that we don't have any trouble reports before 8.1. (Maybe the leaks were smaller before?)
* Arrange to cache btree metapage data in the relcache entry for the index,Tom Lane2006-04-25
| | | | | | | thereby saving a visit to the metapage in most index searches/updates. This wouldn't actually save any I/O (since in the old regime the metapage generally stayed in cache anyway), but it does provide a useful decrease in bufmgr traffic in high-contention scenarios. Per my recent proposal.
* The 8.1 planner removes WHERE quals from the plan when the quals areTom Lane2006-04-25
| | | | | | | implied by the predicate of a partial index being used to scan a table. However, this optimization is unsafe in an UPDATE, DELETE, or SELECT FOR UPDATE query, because the quals need to be rechecked by EvalPlanQual if there's an update conflict. Per example from Jean-Samuel Reynaud.
* Back out RESET CONNECTION until there is more discussion.Bruce Momjian2006-04-25
|
* Add RESET CONNECTION, to reset all aspects of a session.Bruce Momjian2006-04-25
| | | | Hans-J?rgen Sch?nig
* Add statement_timestamp(), clock_timestamp(), andBruce Momjian2006-04-25
| | | | | | | | | transaction_timestamp() (just like now()). Also update statement_timeout() to mention it is statement arrival time that is measured. Catalog version updated.
* Back out patch, unintended.Bruce Momjian2006-04-24
|
* Done:Bruce Momjian2006-04-24
| | | | | o -Add support for day-time syntax, INTERVAL '1 2:03:04' DAY TO SECOND
* Suppress more compiler warnings caused by macro tests.Bruce Momjian2006-04-24
|
* Add one more paren to macro.Bruce Momjian2006-04-24
|
* Suprress compiler warning in gcc 4.2.Bruce Momjian2006-04-24
| | | | Report by Kris Jurka
* Improve our private implementation of cbrt() to give results of theTom Lane2006-04-24
| | | | | accuracy expected by the regression tests. Per suggestion from Martijn van Oosterhout.
* Remove compiler warning by casting SNPRINTF() call to void.Bruce Momjian2006-04-24
| | | | Report from Gevik Babakhani.
* Fixed memory leak bugs found by Martijn Oosterhout.Michael Meskes2006-04-24
|
* Fixes for BCC 5.5 compile of libpq. Backpatch to 8.1.X.Bruce Momjian2006-04-24
| | | | Mark Morgan Lloyd
* Don't add a shared dependency on the owner of a composite type in pg_class.Alvaro Herrera2006-04-24
| | | | | We track the owner in pg_type instead, as that is the place where the owner is changed on ALTER TYPE ... OWNER TO.
* Simplify ParamListInfo data structure to support only numbered parameters,Tom Lane2006-04-22
| | | | | | | not named ones, and replace linear searches of the list with array indexing. The named-parameter support has been dead code for many years anyway, and recent profiling suggests that the searching was costing a noticeable amount of performance for complex queries.
* Add some optional code (conditionally compiled under #ifdef LWLOCK_STATS)Tom Lane2006-04-21
| | | | | | to track the number of LWLock acquisitions and the number of times we block waiting for an LWLock, on a per-process basis. After having needed this twice in the past few months, seems like it should go into CVS.
* Eliminate some no-longer-needed workarounds for palloc's old behaviorTom Lane2006-04-20
| | | | | | | | of rejecting palloc(0). Also, tweak like_selectivity() to avoid assuming the presented pattern is nonempty; although that assumption is valid, it doesn't really help much, and the new coding is more correct anyway since it properly handles redundant wildcards. In combination these changes should eliminate a Coverity warning noted by Martijn.
* Add "retry another address" log message on statistics collector socketBruce Momjian2006-04-20
| | | | failure, to reduce confusion in the log file.
* Ensure that we validate the page header of the first page of a WAL fileTom Lane2006-04-20
| | | | | | | | | whenever we start to read within that file. The first page carries extra identification information that really ought to be checked, but as the code stood, this was only checked when we switched sequentially into a new WAL file, or if by chance the starting checkpoint record was within the first page. This patch ensures that we will detect bogus 'long header' information before we start replaying the WAL sequence.
* Recognize __ppc64__, which seems to be Apple's spelling of the predefinedTom Lane2006-04-19
| | | | | | symbol for PPC64 hardware. I hadn't known that Apple supported PPC64 at all, but darn if there aren't 64-bit variant libraries in OS X as well as support in their gcc.
* Fix problem that sscanf(buf, "%d", &val) eats leading white space, butBruce Momjian2006-04-19
| | | | our to_* functions were not handling that.
* Remove use of lorder and tsort while building static libraries. There'sTom Lane2006-04-19
| | | | | | | | no evidence that any currently-supported platform needs this, and good reason to think that any platform that did need it couldn't use the static libraries anyway --- libpq, at least, has circular references. Removing the code shuts up tsort warnings about the circular references on some platforms.
* Fix ancient memory leak in PQprintTuples(); our code no longer uses thisTom Lane2006-04-19
| | | | | routine, but perhaps some applications do. Found by Martijn van Oosterhout using Coverity.
* Fix a couple of rather-pointless-but-easily-fixed Coverity warnings.Tom Lane2006-04-19
| | | | Per Martijn van Oosterhout.
* C code whitespace inprovement for formatting.c.Bruce Momjian2006-04-19
|
* Document that errors are not output by log_statement (was they were inBruce Momjian2006-04-18
| | | | | | | | | 8.0), and add as suggestion to use log_min_error_statement for this purpose. I also fixed the code so the first EXECUTE has it's prepare, rather than the last which is what was in the current code. Also remove "protocol" prefix for SQL EXECUTE output because it is not accurate. Backpatch to 8.1.X.
* Fix the torn-page hazard for PITR base backups by forcing full page writesTom Lane2006-04-17
| | | | | | | | | to occur between pg_start_backup() and pg_stop_backup(), even if the GUC setting full_page_writes is OFF. Per discussion, doing this in combination with the already-existing checkpoint during pg_start_backup() should ensure safety against partial page updates being included in the backup. We do not have to force full page writes to occur during normal PITR operation, as I had first feared.
* Support the syntaxTom Lane2006-04-15
| | | | | | | | | | | | | | CREATE AGGREGATE aggname (input_type) (parameter_list) along with the old syntax where the input type was named in the parameter list. This fits more naturally with the way that the aggregate is identified in DROP AGGREGATE and other utility commands; furthermore it has a natural extension to handle multiple-input aggregates, where the basetype-parameter method would get ugly. In fact, this commit fixes the grammar and all the utility commands to support multiple-input aggregates; but DefineAggregate rejects it because the executor isn't fixed yet. I didn't do anything about treating agg(*) as a zero-input aggregate instead of artificially making it a one-input aggregate, but that should be considered in combination with supporting multi-input aggregates.
* Make the world safe for full_page_writes. Allow XLOG records that try toTom Lane2006-04-14
| | | | | | | | | update no-longer-existing pages to fall through as no-ops, but make a note of each page number referenced by such records. If we don't see a later XLOG entry dropping the table or truncating away the page, complain at the end of XLOG replay. Since this fixes the known failure mode for full_page_writes = off, revert my previous band-aid patch that disabled that GUC variable.
* Repair a low-probability race condition identified by Qingqing Zhou.Tom Lane2006-04-14
| | | | | | | | | | | | If a process abandons a wait in LockBufferForCleanup (in practice, only happens if someone cancels a VACUUM) just before someone else sends it a signal indicating the buffer is available, it was possible for the wakeup to remain in the process' semaphore, causing misbehavior next time the process waited for an lmgr lock. Rather than try to prevent the race condition directly, it seems best to make the lock manager robust against leftover wakeups, by having it repeat waiting on the semaphore if the lock has not actually been granted or denied yet.
* Fix similar_escape() so that SIMILAR TO works properly for patterns involvingTom Lane2006-04-13
| | | | | | | | | | | | | | alternatives ("|" symbol). The original coding allowed the added ^ and $ constraints to be absorbed into the first and last alternatives, producing a pattern that would match more than it should. Per report from Eric Noriega. I also changed the pattern to add an ARE director ("***:"), ensuring that SIMILAR TO patterns do not change behavior if regex_flavor is changed. This is necessary to make the non-capturing parentheses work, and seems like a good idea on general principles. Back-patched as far as 7.4. 7.3 also has the bug, but a fix seems impractical because that version's regex engine doesn't have non-capturing parens.
* Fix an ancient oversight in btree xlog replay. When trying to determine if anTom Lane2006-04-13
| | | | | | | | | | | | | | | | | upper-level insertion completes a previously-seen split, we cannot simply grab the downlink block number out of the buffer, because the buffer could contain a later state of the page --- or perhaps the page doesn't even exist at all any more, due to relation truncation. These possibilities have been masked up to now because the use of full_page_writes effectively ensured that no xlog replay routine ever actually saw a page state newer than its own change. Since we're deprecating full_page_writes in 8.1.*, there's no need to fix this in existing release branches, but we need a fix in HEAD if we want to have any hope of re-allowing full_page_writes. Accordingly, adjust the contents of btree WAL records so that we can always get the downlink block number from the WAL record rather than having to depend on buffer contents. Per report from Kevin Grittner and Peter Brant. Improve a few comments in related code while at it.
* Fix pg_restore -n option to do what the man page says it does. TheTom Lane2006-04-12
| | | | | original coding only worked if one of the selTypes restriction options was also given. Per report from Nick Johnson.
* Fix typo.Neil Conway2006-04-11
|
* Suppress unused-variable warning on platforms without HAVE_SYSLOG.Tom Lane2006-04-10
| | | | Magnus
* Fix another const-decoration mismatch, per Magnus.Tom Lane2006-04-09
|
* Add comment for why we recompile pgport C files.Bruce Momjian2006-04-09
| | | | | | | # Need to recomple any libpgport object files because we need these # object files to use the same compile flags as libpq. If we used # the object files from libpgport, this would not be true on all # platforms.
* Suppress a couple of minor compiler warnings, per Magnus.Tom Lane2006-04-09
|
* Revert my best_inner_indexscan patch of yesterday, which turns out to haveTom Lane2006-04-09
| | | | | | | had a bad side-effect: it stopped finding plans that involved BitmapAnd combinations of indexscans using both join and non-join conditions. Instead, make choose_bitmap_and more aggressive about detecting redundancies between BitmapOr subplans.
* Fix best_inner_indexscan to actually enforce that an "inner indexscan" useTom Lane2006-04-08
| | | | | | | at least one join condition as an indexqual. Before bitmap indexscans, this oversight didn't really cost much except for redundantly considering the same join paths twice; but as of 8.1 it could result in silly bitmap scans that would do the same BitmapOr twice and then BitmapAnd these together :-(
* Fix EXPLAIN so that it can drill down through multiple levels of subplanTom Lane2006-04-08
| | | | | | | | | when trying to locate the referent of a RECORD variable. This fixes the 'record type has not been registered' failure reported by Stefan Kaltenbrunner about a month ago. A side effect of the way I chose to fix it is that most variable references in join conditions will now be properly labeled with the variable's source table name, instead of the not-too-helpful 'outer' or 'inner' we used to use.
* Fix pg_dumpall to do something sane when a pre-8.1 installation hasTom Lane2006-04-07
| | | | | | identically named user and group: we merge these into a single entity with LOGIN permission. Also, add ORDER BY commands to ensure consistent dump ordering, for ease of comparing outputs from different installations.
* Fix make_restrictinfo_from_bitmapqual() to preserve AND/OR flatness of itsTom Lane2006-04-07
| | | | | | | | | output, ie, no OR immediately below an OR. Otherwise we get Asserts or wrong answers for cases such as select * from tenk1 a, tenk1 b where (a.ten = b.ten and (a.unique1 = 100 or a.unique1 = 101)) or (a.hundred = b.hundred and a.unique1 = 42); Per report from Rafael Martinez Guerrero.