aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Fix a couple of snapshot management bugs in the new ResourceOwner world:Alvaro Herrera2008-12-04
| | | | | | | | | | | non-writable large objects need to have their snapshots registered on the transaction resowner, not the current portal's, because it must persist until the large object is closed (which the portal does not). Also, ensure that the serializable snapshot is recorded by the transaction resource owner too, even when a subtransaction has changed the current resource owner before serializable is taken. Per bug reports from Pavan Deolasee.
* Comment said we don't free the lockarray, and why. The proper fix is toMagnus Hagander2008-12-04
| | | | make the code do what the comment says...
* Utilize the visibility map in autovacuum, too. There was an oversight inHeikki Linnakangas2008-12-04
| | | | | | | | | the visibility map patch that because autovacuum always sets VacuumStmt->freeze_min_age, visibility map was never used for autovacuum, only for manually launched vacuums. This patch introduces a new scan_all field to VacuumStmt, indicating explicitly whether the visibility map should be used, or the whole relation should be scanned, to advance relfrozenxid. Anti-wraparound vacuums still need to scan all pages.
* Initialize GISTScanOpaque->qual_ok even if there is no conditions.Teodor Sigaev2008-12-04
|
* Fix typo in recent SSL unload patch.Bruce Momjian2008-12-04
| | | | Kris Jurka
* Properly unregister OpenSSL callbacks when libpq is done withMagnus Hagander2008-12-03
| | | | | | | | | | | | | | it's connection. This is required for applications that unload the libpq library (such as PHP) in which case we'd otherwise have pointers to these functions when they no longer exist. This needs a bit more testing before we can consider a backpatch, so not doing that yet. In passing, remove unused functions in backend/libpq. Bruce Momjian and Magnus Hagander, per report and analysis by Russell Smith.
* Forgot to bump catalog version in the visibility map patch.Heikki Linnakangas2008-12-03
|
* Introduce visibility map. The visibility map is a bitmap with one bit perHeikki Linnakangas2008-12-03
| | | | | | | | | | | | | | | | | | heap page, where a set bit indicates that all tuples on the page are visible to all transactions, and the page therefore doesn't need vacuuming. It is stored in a new relation fork. Lazy vacuum uses the visibility map to skip pages that don't need vacuuming. Vacuum is also responsible for setting the bits in the map. In the future, this can hopefully be used to implement index-only-scans, but we can't currently guarantee that the visibility map is always 100% up-to-date. In addition to the visibility map, there's a new PD_ALL_VISIBLE flag on each heap page, also indicating that all tuples on the page are visible to all transactions. It's important that this flag is kept up-to-date. It is also used to skip visibility tests in sequential scans, which gives a small performance gain on seqscans.
* Small comment fixes.Heikki Linnakangas2008-12-03
|
* If pg_stop_backup() is called just after switching to a new xlog file,Heikki Linnakangas2008-12-03
| | | | | | wait for the previous instead of the new file to be archived. Based on patch by Simon Riggs.
* Use PG_GETARG_TEXT_PP instead of PG_GETARG_TEXT_P in the newHeikki Linnakangas2008-12-02
| | | | | gin_cmp_tslexeme and gin_cmp_prefix functions. Should shave off a few cycles from GIN operations.
* Change wildcard cerfificate mapping to be much simler - we now only matchMagnus Hagander2008-12-02
| | | | | | | | the * character at the beginning of a pattern, and it does not match subdomains. Since this means we no longer need fnmatch, remove the imported implementation from port, along with the autoconf check for it.
* Minor code embellishments.Alvaro Herrera2008-12-02
|
* Fix an oversight in the code that makes transitive-equality deductions fromTom Lane2008-12-01
| | | | | | | | | | | | | | | | | | | | outer join clauses. Given, say, ... from a left join b on a.a1 = b.b1 where a.a1 = 42; we'll deduce a clause b.b1 = 42 and then mark the original join clause redundant (we can't remove it completely for reasons I don't feel like squeezing into this log entry). However the original implementation of that wasn't bulletproof, because clause_selectivity() wouldn't honor this_selec if given nonzero varRelid --- which in practice meant that it worked as desired *except* when considering index scan quals. Which resulted in bogus underestimation of the size of the indexscan result for an inner indexscan in an outer join, and consequently a possibly bad choice of indexscan vs. bitmap scan. Fix by introducing an explicit test into clause_selectivity(). Also, to make sure we don't trigger that test in corner cases, change the convention to be that this_selec > 1, not this_selec = 1, means it's been marked redundant. Per trouble report from Scara Maccai. Back-patch to 8.2, where the problem was introduced.
* Modify the new to_timestamp implementation so that end-of-format-stringHeikki Linnakangas2008-12-01
| | | | | | | | | | | is treated like a non-digit separator. This fixes the inconsistency in examples like: to_timestamp('2008-01-2', 'YYYY-MM-DD') -- didn't work and to_timestamp('2008-1-02', 'YYYY-MM-DD') -- did work
* Ensure that the contents of a holdable cursor don't depend on out-of-lineTom Lane2008-12-01
| | | | | | | | | | | toasted values, since those could get dropped once the cursor's transaction is over. Per bug #4553 from Andrew Gierth. Back-patch as far as 8.1. The bug actually exists back to 7.4 when holdable cursors were introduced, but this patch won't work before 8.1 without significant adjustments. Given the lack of field complaints, it doesn't seem worth the work (and risk of introducing new bugs) to try to make a patch for the older branches.
* Remove the last traces of --temp-port.Tom Lane2008-12-01
|
* Removed port testing.Michael Meskes2008-12-01
|
* Clean up the API for DestReceiver objects by eliminating the assumptionTom Lane2008-11-30
| | | | | | | | | | | | that a Portal is a useful and sufficient additional argument for CreateDestReceiver --- it just isn't, in most cases. Instead formalize the approach of passing any needed parameters to the receiver separately. One unexpected benefit of this change is that we can declare typedef Portal in a less surprising location. This patch is just code rearrangement and doesn't change any functionality. I'll tackle the HOLD-cursor-vs-toast problem in a follow-on patch.
* Add a "LIKE = typename" clause to CREATE TYPE for base types. This allowsTom Lane2008-11-30
| | | | | | | | | | | the basic representational details (typlen, typalign, typbyval, typstorage) to be copied from an existing type rather than listed explicitly in the CREATE TYPE command. The immediate reason for this is to provide a simple solution for add-on modules that want to define types represented as int8, float4, or float8: as of 8.4 the appropriate PASSEDBYVALUE setting is platform-specific and so it's hard for a SQL script to know what to do. This patch fixes the contrib/isn breakage reported by Rushabh Lathia.
* Remove inappropriate memory context switch in shutdown_MultiFuncCall().Tom Lane2008-11-30
| | | | | | | This was a thinko introduced in a patch from last February; it results in memory leakage if an SRF is shut down before the actual end of query, because subsequent code will be running in a longer-lived context than it's expecting to be.
* Fix recently-added array_agg tests to ensure they produce stable resultsTom Lane2008-11-29
| | | | | regardless of plan changes. Per intermittent buildfarm failures on "pigeon" and others.
* Make sure we give an appropriate user-facing error when attemptingTom Lane2008-11-29
| | | | | to drop a table that is referenced by an open cursor. Fix unstable ecpg regression test result that was produced by this oversight.
* Partial fix for fallout from temp-port changes. ecpg still needs more work,Tom Lane2008-11-28
| | | | but I think this is enough to turn the buildfarm green again.
* My recent fix for semijoin planning didn't actually work for a semijoin with aTom Lane2008-11-28
| | | | | | RHS that can't be unique-ified --- join_is_legal has to check that before deciding to build a join, else we'll have an unimplementable joinrel. Per report from Greg Stark.
* Support regular expressions in pg_ident.conf.Magnus Hagander2008-11-28
|
* Reduce risk of accidentally running temp-install regression tests againstPeter Eisentraut2008-11-28
| | | | | | | | | a mismatching installation. Pick a default port number calculated from the version number, and try a few times with other numbers if that one doesn't work. Check if we can connect to the port before starting our own postmaster, to detect some other server already running there. To simplify the code, drop --temp-port option and use --port for both temp-install and pre-installed case.
* Fix bug in the tsvector stats collection function, which caused a crash ifHeikki Linnakangas2008-11-27
| | | | the sample contains just a one tsvector, containing only one lexeme.
* Fix obsolete comment regarding FSM truncation.Heikki Linnakangas2008-11-27
|
* Don't force creation of the FSM on searches. It will still be createdHeikki Linnakangas2008-11-27
| | | | | as soon as the first page fills up, and is marked as (almost) full, though.
* Drop CLI related features from the list, since we don't track the ODBCPeter Eisentraut2008-11-27
| | | | business in core.
* Mark features related to WITH/SELECT as supported.Peter Eisentraut2008-11-27
|
* Fix #ifdeffed debugging code to work with relation forks.Heikki Linnakangas2008-11-27
|
* Fix minor memory leak introduced in recent SQL-functions hacking: theTom Lane2008-11-27
| | | | | | DestReceiver created during postquel_start needs to be destroyed during postquel_end. In a moment of brain fade I had assumed this would be taken care of by FreeQueryDesc, but it's not (and shouldn't be).
* Rely on relcache invalidation to update the cached size of the FSM.Heikki Linnakangas2008-11-26
|
* interval.c needs limits.hMichael Meskes2008-11-26
|
* Applied patch by Ron Mayer <rm_pg@cheapcomplexdevices.com> to merge the newMichael Meskes2008-11-26
| | | | interval style into ecpg.
* Tweak new PQExpBufferBroken macro to suppress warnings from pickierTom Lane2008-11-26
| | | | versions of gcc.
* Removed strchrnulMichael Meskes2008-11-26
|
* Let's see if using -c instead of -- style fixes the PGOPTIONS issue.Tom Lane2008-11-26
|
* When creating a varchar struct name braces must be discarded.Michael Meskes2008-11-26
|
* configure check for docbook2man program, used in the new XML-based manPeter Eisentraut2008-11-26
| | | | | page build target. This covers from-source, Debian, and Fedora installation variants.
* Feature F442 "Mixed column references in set functions" is supported.Peter Eisentraut2008-11-26
|
* Add %expect 0 to all parser input files to prevent conflicts slipping by.Peter Eisentraut2008-11-26
|
* Make DISCARD ALL discard advisory locks, too. Marko KreenTom Lane2008-11-26
|
* Adjust the behavior of the PQExpBuffer code to make it have well-definedTom Lane2008-11-26
| | | | | | | | | results (ie, an empty "broken" buffer) if memory overrun occurs anywhere along the way to filling the buffer. The previous coding would just silently discard portions of the intended buffer contents, as exhibited in trouble report from Sam Mason. Also, tweak psql's main loop to correctly detect and report such overruns. There's probably much more that should be done in this line, but this is a start.
* Use ResourceOwners in the snapshot manager, instead of attempting to track themAlvaro Herrera2008-11-25
| | | | | | | | by hand. As an added bonus, the new code is smaller and more understandable, and the ugly loops are gone. This had been discussed all along but never implemented. It became clear that it really needed to be fixed after a bug report by Pavan Deolasee.
* Remove PGINTERVALSTYLE from the set of special environment variables forTom Lane2008-11-25
| | | | | | | | | libpq. As noted by Peter, adding this variable created a risk of unexpected connection failures when talking to older server versions, and since it doesn't do anything you can't do with PGOPTIONS, it doesn't seem really necessary. Removing it does occasion a few extra lines in pg_regress.c, but saving a getenv() call per libpq connection attempt is perhaps worth that anyway.
* Omit src/port/pipe.c on non-Windows platforms. It's useless and drawsTom Lane2008-11-25
| | | | complaints about empty object files on some platforms, eg Darwin.
* If pg_ctl stop fails, print an error message and exit (instead of going outPeter Eisentraut2008-11-25
| | | | | of our way to ignore the exit status). If this ever really happens, worst case you will not see the "score" at the bottom of the test run.