summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2009-04-02Do not show information_schema in \d* commands, unless 'S' or pattern isBruce Momjian
specified. Martin Pihlak
2009-04-02Fix SetClientEncoding() to maintain a cache of previously selected encodingTom Lane
conversion functions. This allows transaction rollback to revert to a previous client_encoding setting without doing fresh catalog lookups. I believe that this explains and fixes the recent report of "failed to commit client_encoding" failures. This bug is present in 8.3.x, but it doesn't seem prudent to back-patch the fix, at least not till it's had some time for field testing in HEAD. In passing, remove SetDefaultClientEncoding(), which was used nowhere.
2009-04-02Change psql \d* display so 'S' _or_ a pattern include system objects.Bruce Momjian
2009-04-02Fix GUC's reports of assign_hook failure to always include the parameter valueTom Lane
we failed to assign, even in "can't happen" cases. Motivated by wondering what's going on in a recent trouble report where "failed to commit" did happen.
2009-04-02plpgsql's exec_simple_cast_value() mistakenly supposed that it could bypassTom Lane
casting effort whenever the input value was NULL. However this prevents application of not-null domain constraints in the cases that use this function, as illustrated in bug #4741. Since this function isn't meant for use in performance-critical paths anyway, this certainly seems like another case of "premature optimization is the root of all evil". Back-patch as far as 8.2; older versions made no effort to enforce domain constraints here anyway.
2009-04-01Improve pg_dump's query for retrieving BLOB comments to be more efficientTom Lane
when there are many blobs and not so many comments. Tamas Vincze
2009-04-01Update comment to reflect that LC_COLLATE and LC_CTYPE are nowHeikki Linnakangas
per-database settings.
2009-04-01Remove last references to the crypt auth method, per Andreas Scherbaum.Tom Lane
2009-03-31Modify the relcache to record the temp status of both local and nonlocalTom Lane
temp relations; this is no more expensive than before, now that we have pg_class.relistemp. Insert tests into bufmgr.c to prevent attempting to fetch pages from nonlocal temp relations. This provides a low-level defense against bugs-of-omission allowing temp pages to be loaded into shared buffers, as in the contrib/pgstattuple problem reported by Stuart Bishop. While at it, tweak a bunch of places to use new relcache tests (instead of expensive probes into pg_namespace) to detect local or nonlocal temp tables.
2009-03-31Don't crash initdb when we fail to get the current username.Magnus Hagander
Give an error message and exit instead, like we do elsewhere... Per report from Wez Furlong and Robert Treat.
2009-03-31Add a "relistemp" boolean column to pg_class, which is true for temporaryTom Lane
relations (including a temp table's indexes and toast table/index), and false for normal relations. For ease of checking, this commit just adds the column and fills it correctly --- revising the relation access machinery to use it will come separately.
2009-03-31Fix a rare race condition when commit_siblings > 0 and a transaction commitsHeikki Linnakangas
at the same instant as a new backend is spawned. Since CountActiveBackends() doesn't hold ProcArrayLock, it needs to be prepared for the case that a pointer at the end of the proc array is still NULL even though numProcs says it should be valid, since it doesn't hold ProcArrayLock. Backpatch to 8.1. 8.0 and earlier had this right, but it was broken in the split of PGPROC and sinval shared memory arrays. Per report and proposal by Marko Kreen.
2009-03-31Add PQinitOpenSSL() function to support applications that use libcryptoTom Lane
but not OpenSSL (or perhaps vice versa, if that's possible). Andrew Chernow, with minor editorialization by me.
2009-03-30Fix window function plan generation to cope with volatile sort expressions.Tom Lane
(Not clear how useful these really are, but failing is no good...) Per report from David Fetter and Robert Treat.
2009-03-30Fix an oversight in the support for storing/retrieving "minimal tuples" inTom Lane
TupleTableSlots. We have functions for retrieving a minimal tuple from a slot after storing a regular tuple in it, or vice versa; but these were implemented by converting the internal storage from one format to the other. The problem with that is it invalidates any pass-by-reference Datums that were already fetched from the slot, since they'll be pointing into the just-freed version of the tuple. The known problem cases involve fetching both a whole-row variable and a pass-by-reference value from a slot that is fed from a tuplestore or tuplesort object. The added regression tests illustrate some simple cases, but there may be other failure scenarios traceable to the same bug. Note that the added tests probably only fail on unpatched code if it's built with --enable-cassert; otherwise the bug leads to fetching from freed memory, which will not have been overwritten without additional conditions. Fix by allowing a slot to contain both formats simultaneously; which turns out not to complicate the logic much at all, if anything it seems less contorted than before. Back-patch to 8.2, where minimal tuples were introduced.
2009-03-28Clarify variable naming: pq_initssllib -> pq_init_ssl_libBruce Momjian
2009-03-28Better document PQinitSSL(0) behavior in regards to libcrypto.Bruce Momjian
2009-03-27Add an errdetail explaining why we reject infinite dates and timestampsTom Lane
while converting to XML. Bernd Helmle
2009-03-27Fix possible failures when a tuplestore switches from in-memory to on-diskTom Lane
mode while callers hold pointers to in-memory tuples. I reported this for the case of nodeWindowAgg's primary scan tuple, but inspection of the code shows that all of the calls in nodeWindowAgg and nodeCtescan are at risk. For the moment, fix it with a rather brute-force approach of copying whenever one of the at-risk callers requests a tuple. Later we might think of some sort of reference-count approach to reduce tuple copying.
2009-03-27Teach reindex_index() to clear pg_index.indcheckxmin when possible.Tom Lane
Greg Stark, slightly modified by me.
2009-03-27Fix tab completion of ANALYZE VERBOSE <tab>. It was previously confusedHeikki Linnakangas
with EXPLAIN ANALYZE VERBOSE. Greg Sabino Mullane, reformatted by myself. Backpatch to 8.1, where the bug was introduced.
2009-03-26Gettext plural supportPeter Eisentraut
In the backend, I changed only a handful of exemplary or important-looking instances to make use of the plural support; there is probably more work there. For the rest of the source, this should cover all relevant cases.
2009-03-26Adjust phrasing of complaints about multi-byte COPY delimiter strings.Tom Lane
Per pgsql-hackers discussion of 2009-02-17.
2009-03-26If we expect a hash join to be performed in multiple batches, suppressTom Lane
"physical tlist" optimization on the outer relation (ie, force a projection step to occur in its scan). This avoids storing useless column values when the outer relation's tuples are written to temporary batch files. Modified version of a patch by Michael Henderson and Ramon Lawrence.
2009-03-25Adjust the APIs for GIN opclass support functions to allow the extractQuery()Tom Lane
method to pass extra data to the consistent() and comparePartial() methods. This is the core infrastructure needed to support the soon-to-appear contrib/btree_gin module. The APIs are still upward compatible with the definitions used in 8.3 and before, although *not* with the previous 8.4devel function definitions. catversion bump for changes in pg_proc entries (although these are just cosmetic, since GIN doesn't actually look at the function signature before calling it...) Teodor Sigaev and Oleg Bartunov
2009-03-25Use double quotes instead of single quotes.Peter Eisentraut
2009-03-25Complete list of valid fork names, and use double quotes.Peter Eisentraut
2009-03-25Update line count for \? output (obtained from wc -l)Peter Eisentraut
2009-03-25In the \? output, align the columns consistently.Peter Eisentraut
2009-03-25Polish SQL/MED terminologyPeter Eisentraut
2009-03-25No period if it's not a sentencePeter Eisentraut
2009-03-24Install a search tree depth limit in GIN bulk-insert operations, to preventTom Lane
them from degrading badly when the input is sorted or nearly so. In this scenario the tree is unbalanced to the point of becoming a mere linked list, so insertions become O(N^2). The easiest and most safely back-patchable solution is to stop growing the tree sooner, ie limit the growth of N. We might later consider a rebalancing tree algorithm, but it's not clear that the benefit would be worth the cost and complexity. Per report from Sergey Burladyan and an earlier complaint from Heikki. Back-patch to 8.2; older versions didn't have GIN indexes.
2009-03-24Fix stupid parenthesization mistake. Per bug #4728 from Bruce Toll.Tom Lane
2009-03-24Implement "fastupdate" support for GIN indexes, in which we try to accumulateTom Lane
multiple index entries in a holding area before adding them to the main index structure. This helps because bulk insert is (usually) significantly faster than retail insert for GIN. This patch also removes GIN support for amgettuple-style index scans. The API defined for amgettuple is difficult to support with fastupdate, and the previously committed partial-match feature didn't really work with it either. We might eventually figure a way to put back amgettuple support, but it won't happen for 8.4. catversion bumped because of change in GIN's pg_am entry, and because the format of GIN indexes changed on-disk (there's a metapage now, and possibly a pending list). Teodor Sigaev
2009-03-24Fix my typoPeter Eisentraut
2009-03-23Remove munging of xml and xpath params to xpath(). The XML must now be a ↵Andrew Dunstan
well formed XML document.
2009-03-23Const-ify the parse table passed to fillRelOptions. The previous codingTom Lane
meant it had to be built on-the-fly at each entry to default_reloptions.
2009-03-23Add expected file for locale-enabled installations.Peter Eisentraut
2009-03-23More fixes for 8.4 DTrace probes. Remove useless BUFFER_HIT/BUFFER_MISSTom Lane
probes --- the BUFFER_READ_DONE probe provides the same information and more besides. Expand the LOCK_WAIT_START/DONE probe arguments so that there's actually some chance of telling what is being waited for. Update and clean up the documentation.
2009-03-22Add isExtend to the parameters of the buffer_read_start and buffer_read_doneTom Lane
DTrace probes, so that ordinary reads can be distinguished from relation extension operations. Move buffer_read_start probe to before the smgrnblocks() call that's needed in the isExtend case, since really that step should be charged as part of the time needed for the extension operation. (This makes it slightly harder to match the read_start with the associated read_done, since now you can't match them on blockNumber, but it should still be possible since isExtend operations on the same relation can never be interleaved.) Per recent discussion. In passing, add the page identity (forkNum/blockNum) to the parameters of the buffer_flush_start/buffer_flush_done probes, which were unaccountably lacking the info.
2009-03-22Clean up pg_SSPI_error() coding a little bit: make the messages moreTom Lane
consistent, translate where intended, const-ify declarations. Resolves a gripe from Alvaro as well as some stuff I didn't like.
2009-03-22Remove the -d and -D options of pg_dump and pg_dumpall. The functionalityTom Lane
is still available, but you must now write the long equivalent --inserts or --column-inserts. This change is made to eliminate confusion with the use of -d to specify a database name in most other Postgres client programs. Original patch by Greg Mullane, modified per subsequent discussion.
2009-03-22Remove the datetime keywords ABSTIME and RELTIME, which we'd been treating asTom Lane
noise words for the last twelve years, for compatibility with Berkeley-era output formatting of the special INVALID values for those datatypes. Considering that the datatypes themselves have been deprecated for awhile, this is taking backwards compatibility a little far. Per gripe from Josh Berkus.
2009-03-21Optimize multi-batch hash joins when the outer relation has a nonuniformTom Lane
distribution, by creating a special fast path for the (first few) most common values of the outer relation. Tuples having hashvalues matching the MCVs are effectively forced to be in the first batch, so that we never write them out to the batch temp files. Bryce Cutt and Ramon Lawrence, with some editorialization by me.
2009-03-20Rename pg_restore -m to -j, and add documentation about what good numbersPeter Eisentraut
are. per discussion on hackers
2009-03-18Fix case of the just resurrected UCS_to_BIG5.pl script, and updateHeikki Linnakangas
Makefile to use it.
2009-03-18Add seven kanji characters defined in the Windows 950 codepage to ourHeikki Linnakangas
big5/win950 <-> UTF8 conversion tables. Per report by Roger Chang.
2009-03-18Fix Windows-specific race condition in syslogger. This could've beenHeikki Linnakangas
the cause of the "could not write to log file: Bad file descriptor" errors reported at http://archives.postgresql.org//pgsql-general/2008-06/msg00193.php Backpatch to 8.3, the race condition was introduced by the CSV logging patch. Analysis and patch by Gurjeet Singh.
2009-03-17Improve zero-year comments.Bruce Momjian
2009-03-17Document that datetime year '0' is considered in a recent century, notBruce Momjian
just '00'.