aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Code review for CREATE OR REPLACE VIEW patch. Do things in a saner order toTom Lane2008-12-15
| | | | | result in hopefully-less-confusing error messages when the new definition isn't compatible with the old; minor other cleanup.
* Fix cast-away-const problem as well as bogus calculation of required buffer ↵Tom Lane2008-12-15
| | | | size.
* Arrange for the pg_foo_is_visible and has_foo_privilege families of functionsTom Lane2008-12-15
| | | | | | | | | | | to return NULL, instead of erroring out, if the target object is specified by OID and we can't find that OID in the catalogs. Since these functions operate internally on SnapshotNow rules, there is a race condition when using them in user queries: the query's MVCC snapshot might "see" a catalog row that's already committed dead, leading to a failure when the inquiry function is applied. Returning NULL should generally provide more convenient behavior. This issue has been complained of before, and in particular we are now seeing it in the regression tests due to another recent patch.
* Do not try to change a const variable.Michael Meskes2008-12-15
|
* Reduce the scaling factor for attstattarget to number-of-lexemes from 100Tom Lane2008-12-15
| | | | | | | to 10, to compensate for the recent change in default statistics target. The original number was pulled out of the air anyway :-(, but it was picked in the context of the old default, so holding the default size of the MCELEM array constant seems the best thing. Per discussion.
* Remove our dependencies on MB_CUR_MAX in favor of believing thatTom Lane2008-12-15
| | | | | | | | | | pg_database_encoding_max_length() predicts the maximum character length returned by wchar2char(). Per Hiroshi Inoue, MB_CUR_MAX isn't usable on Windows because we allow encoding = UTF8 when the locale says differently; and getting rid of it seems a good idea on general principles because it narrows our dependence on libc's locale API just a little bit more. Also install a check for overflow of the buffer size computation.
* Support specifying filename for SSL certificate, key, root certificate storeMagnus Hagander2008-12-15
| | | | | | | | and certificate revokation list by using connection parameters or environment variables. Original patch by Mark Woodward, heavily reworked by Alvaro Herrera and Magnus Hagander.
* Restore enforce_generic_type_consistency's pre-8.3 behavior of allowing anTom Lane2008-12-14
| | | | | | | actual argument type of ANYARRAY to match an argument declared ANYARRAY, so long as ANYELEMENT etc aren't used. I had overlooked the fact that this is a possible case while fixing bug #3852; but it is possible because pg_statistic contains columns declared ANYARRAY. Per gripe from Corey Horton.
* Replace both send and receive BIO routines in the SSL code with our own,Magnus Hagander2008-12-14
| | | | | calling recv() and send(). This makes the calls go through the socket emulation code on Win32, making them for example properly interruptible.
* Increase the default value of default_statistics_target from 10 to 100,Tom Lane2008-12-13
| | | | | and its maximum value from 1000 to 10000. ALTER TABLE SET STATISTICS similarly now allows a value up to 10000. Per discussion.
* Remove pg_plan_queries()'s now-useless needSnapshot parameter. It's uselessTom Lane2008-12-13
| | | | | in 8.3, too, but I'm not back-patching this change since it would break any extension modules that might be calling that function.
* Fix failure to ensure that a snapshot is available to datatype input functionsTom Lane2008-12-13
| | | | | | | | | | | | | | | | | | | when they are invoked by the parser. We had been setting up a snapshot at plan time but really it needs to be done earlier, before parse analysis. Per report from Dmitry Koterov. Also fix two related problems discovered while poking at this one: exec_bind_message called datatype input functions without establishing a snapshot, and SET CONSTRAINTS IMMEDIATE could call trigger functions without establishing a snapshot. Backpatch to 8.2. The underlying problem goes much further back, but it is masked in 8.1 and before because we didn't attempt to invoke domain check constraints within datatype input. It would only be exposed if a C-language datatype input function used the snapshot; which evidently none do, or we'd have heard complaints sooner. Since this code has changed a lot over time, a back-patch is hardly risk-free, and so I'm disinclined to patch further than absolutely necessary.
* Reduce some rel.h inclusions, and add pg_list.h to pg_proc_fn.h.Alvaro Herrera2008-12-12
|
* Using clause has to accept signed numeric constants too.Michael Meskes2008-12-12
|
* To reduce confusion over whether VACUUM FULL is needed for anti-wraparoundTom Lane2008-12-11
| | | | | | vacuuming (it's not), say "database-wide VACUUM" instead of "full-database VACUUM" in the relevant hint messages. Also, document the permissions needed to do this. Per today's discussion.
* The macros NULL_DEV and DEVNULL were both used to work aroundPeter Eisentraut2008-12-11
| | | | | platform-specific spellings of /dev/null. But one should be enough, so settle on DEVNULL.
* Move carefully obscured SunOS 4 specific #include out of c.h into portPeter Eisentraut2008-12-11
| | | | | header file. SunOS 4 is probably broken anyway, but this item stuck out as completely weird.
* Append major version number and for libraries soname major version numberPeter Eisentraut2008-12-11
| | | | | | | to the gettext domain name, to simplify parallel installations. Also, rename set_text_domain() to pg_bindtextdomain(), because that is what it does.
* Tweak the tree descent loop in fsm_search_avail to not look at theTom Lane2008-12-10
| | | | | | right child if it doesn't need to. This saves some miniscule number of cycles, but the ulterior motive is to avoid an optimization bug known to exist in SCO's C compiler (and perhaps others?)
* Revert SIGUSR1 multiplexing patch, per Tom's objection.Heikki Linnakangas2008-12-09
|
* Provide support for multiplexing SIGUSR1 signal. The upcoming synchronousHeikki Linnakangas2008-12-09
| | | | | | replication patch needs a signal, but we've already used SIGUSR1 and SIGUSR2 in normal backends. This patch allows reusing SIGUSR1 for that, and for other purposes too if the need arises.
* Teach pgstat_vacuum_stat to not bother scanning pg_proc in the common caseTom Lane2008-12-08
| | | | | | where no function stats entries exist. Partial response to Pavel's observation that small VACUUM operations are noticeably slower in CVS HEAD than 8.3.
* Don't try to optimize EXISTS subqueries with empty FROM-lists: we need toTom Lane2008-12-08
| | | | | | form a join and that case doesn't have anything to join to. (We could probably make it work if we didn't pull up the subquery, but it seems to me that the case isn't worth extra code.) Per report from Greg Stark.
* Set up ar, dlltool, dllwrap, and windres for cross-compiling if necessary.Peter Eisentraut2008-12-07
| | | | | | Plus some makefile cleanup. part of a patch from Richard Evans
* Allow CREATE OR REPLACE VIEW to add columns to the _end_ of the view.Bruce Momjian2008-12-06
| | | | Robert Haas
* MAPSIZE macro needs to use MAXALIGN(SizeOfPageHeaderData) instead ofHeikki Linnakangas2008-12-06
| | | | | SizeOfPageHeaderData, like PageGetContents does. Per report by Pavan Deolasee.
* Better descriptions in pg_get_keywords(), consistent with the documentationPeter Eisentraut2008-12-05
| | | | | appendix on key words. catdesc was originally intended as computer-readable, but since we ended up adding catcode, we can have more elaborate descriptions.
* Default values for function argumentsPeter Eisentraut2008-12-04
| | | | Pavel Stehule, with some tweaks by Peter Eisentraut
* 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.