aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Rename the new CREATE DATABASE options to set collation and ctype intoHeikki Linnakangas2009-04-06
| | | | LC_COLLATE and LC_CTYPE, per discussion on pgsql-hackers.
* Change cardinality() into a C-code function, instead of a SQL-languageTom Lane2009-04-05
| | | | | | | alias for array_length(v,1). The efficiency gain here is doubtless negligible --- what I'm interested in is making sure that if we have second thoughts about the definition, we will not have to force a post-beta initdb to change the implementation.
* Make ExecInitExpr build the list of SubPlans found in a plan tree in orderTom Lane2009-04-05
| | | | | | | | of discovery, rather than reverse order. This doesn't matter functionally (I suppose the previous coding dates from the time when lcons was markedly cheaper than lappend). However now that EXPLAIN is labeling subplans with IDs that are based on order of creation, this may help produce a slightly less surprising printout.
* Change EXPLAIN output so that subplans and initplans (particularly CTEs)Tom Lane2009-04-05
| | | | | | | | | | | are individually labeled, rather than just grouped under an "InitPlan" or "SubPlan" heading. This in turn makes it possible for decompilation of a subplan reference to usefully identify which subplan it's referencing. I also made InitPlans identify which parameter symbol(s) they compute, so that references to those parameters elsewhere in the plan tree can be connected to the initplan that will be executed. Per a gripe from Robert Haas about EXPLAIN output of a WITH query being inadequate, plus some longstanding pet peeves of my own.
* Fix infinite loop while checking of partial match in pending list.Teodor Sigaev2009-04-05
| | | | | Improve comments. Now GIN-indexable operators should be strict. Per Tom's questions/suggestions.
* Remove a boatload of useless definitions of 'int optreset'. If weTom Lane2009-04-05
| | | | | | are using our own ports of getopt or getopt_long, those will define the variable for themselves; and if not, we don't need these, because we never touch the variable anyway.
* I had always wondered why pg_config.h.win32 claimed that WindowsTom Lane2009-04-05
| | | | | | provides optreset. Current mastodon results prove that in fact it does not; it was only because getopt.c defined the variable anyway that things failed to fall over.
* Hmm, baiji thinks we need explicit 'extern' here.Tom Lane2009-04-04
|
* Make an attempt at fixing our current Solaris 11 breakage: add a configureTom Lane2009-04-04
| | | | | probe for opterr (exactly like the one for optreset) and have getopt.c define the variables only if configure doesn't find them in libc.
* Remove the recently added node types ReloptElem and OptionDefElem in favorTom Lane2009-04-04
| | | | | | of adding optional namespace and action fields to DefElem. Having three node types that do essentially the same thing bloats the code and leads to errors of confusion, such as in yesterday's bug report from Khee Chin.
* A session that does not have any live snapshots does not have to be waited forTom Lane2009-04-04
| | | | | | | | | | | | | when we are waiting for old snapshots to go away during a concurrent index build. In particular, this rule lets us avoid waiting for idle-in-transaction sessions. This logic could be improved further if we had some way to wake up when the session we are currently waiting for goes idle-in-transaction. However that would be a significantly more complex/invasive patch, so it'll have to wait for some other day. Simon Riggs, with some improvements by Tom.
* Rewrite interval_hash() so that the hashcodes are equal for values thatTom Lane2009-04-04
| | | | | | | | | | | | | | | interval_eq() considers equal. I'm not sure how that fundamental requirement escaped us through multiple revisions of this hash function, but there it is; it's been wrong since interval_hash was first written for PG 7.1. Per bug #4748 from Roman Kononov. Backpatch to all supported releases. This patch changes the contents of hash indexes for interval columns. That's no particular problem for PG 8.4, since we've broken on-disk compatibility of hash indexes already; but it will require a migration warning note in the next minor releases of all existing branches: "if you have any hash indexes on columns of type interval, REINDEX them after updating".
* Disallow setting fillfactor for TOAST tables.Alvaro Herrera2009-04-04
| | | | | | | | | | | | | | To implement this without almost duplicating the reloption table, treat relopt_kind as a bitmask instead of an integer value. This decreases the range of allowed values, but it's not clear that there's need for that much values anyway. This patch also makes heap_reloptions explicitly a no-op for relation kinds other than heap and TOAST tables. Patch by ITAGAKI Takahiro with minor edits from me. (In particular I removed the bit about adding relation kind to an error message, which I intend to commit separately.)
* Improve obsolete comment.Tom Lane2009-04-04
|
* Make \dt \di and friends more consistent about the treatment ofTom Lane2009-04-04
| | | | | TOAST tables and indexes; to wit, never show either. (You can examine them with plain \d if you're really so inclined.)
* Add missing help output for \ef option. Andrew GierthTom Lane2009-04-03
|
* Use (unsigned char) cast in argument of pg_tolower(). Maybe it works onTom Lane2009-04-03
| | | | | | Windows without that, but we shouldn't put bad examples where people might copy them. Also, reformat slightly to improve the odds that pgindent won't go nuts on this.
* Add a comment documenting the question of whether PrefetchBuffer shouldTom Lane2009-04-03
| | | | | | | try to protect an already-existing buffer from being evicted. This was left as an open issue when the posix_fadvise patch was committed. I'm not sure there's any evidence to justify more work in this area, but we should have some record about it in the source code.
* Defend against possible crash if a plpython function does not specify namesTom Lane2009-04-03
| | | | | | | | for its arguments. Also add a regression test, since someone apparently changed every single plpython test case to use only named parameters; else we'd have noticed this sooner. Euler Taveira de Oliveira, per a report from Alvaro
* Make directory name comparisons on Win32 case insensitive.Magnus Hagander2009-04-03
| | | | | | | | | This method will not catch all different ways since the locale handling in NTFS doesn't provide an easy way to do that, but it will hopefully solve the most common cases causing startup problems when the backend is found in the system PATH. Attempts to fix bug #4694.
* Refactor ExecProject and associated routines so that fast-path code is usedTom Lane2009-04-02
| | | | | | | | | for simple Var targetlist entries all the time, even when there are other entries that are not simple Vars. Also, ensure that we prefetch attributes (with slot_getsomeattrs) for all Vars in the targetlist, even those buried within expressions. In combination these changes seem to significantly reduce the runtime for cases where tlists are mostly but not exclusively Vars. Per my proposal of yesterday.
* Revert DTrace patch from Robert LorBruce Momjian2009-04-02
|
* Minor code beautification/consolidation.Tom Lane2009-04-02
|
* Give a better error message when trying to changeBruce Momjian2009-04-02
| | | | "effective_io_concurrency" on systems without posix_fadvise().
* Have PL/pgSQL FETCH set DIAGNOSTICS ROW_COUNT.Bruce Momjian2009-04-02
| | | | Andrew Gierth
* Add support for additional DTrace probes.Bruce Momjian2009-04-02
| | | | Robert Lor
* Do not show information_schema in \d* commands, unless 'S' or pattern isBruce Momjian2009-04-02
| | | | | | specified. Martin Pihlak
* Fix SetClientEncoding() to maintain a cache of previously selected encodingTom Lane2009-04-02
| | | | | | | | | | | | 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.
* Change psql \d* display so 'S' _or_ a pattern include system objects.Bruce Momjian2009-04-02
|
* Fix GUC's reports of assign_hook failure to always include the parameter valueTom Lane2009-04-02
| | | | | | 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.
* plpgsql's exec_simple_cast_value() mistakenly supposed that it could bypassTom Lane2009-04-02
| | | | | | | | | | | 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.
* Improve pg_dump's query for retrieving BLOB comments to be more efficientTom Lane2009-04-01
| | | | when there are many blobs and not so many comments. Tamas Vincze
* Update comment to reflect that LC_COLLATE and LC_CTYPE are nowHeikki Linnakangas2009-04-01
| | | | per-database settings.
* Remove last references to the crypt auth method, per Andreas Scherbaum.Tom Lane2009-04-01
|
* Modify the relcache to record the temp status of both local and nonlocalTom Lane2009-03-31
| | | | | | | | | | 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.
* Don't crash initdb when we fail to get the current username.Magnus Hagander2009-03-31
| | | | | | Give an error message and exit instead, like we do elsewhere... Per report from Wez Furlong and Robert Treat.
* Add a "relistemp" boolean column to pg_class, which is true for temporaryTom Lane2009-03-31
| | | | | | | 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.
* Fix a rare race condition when commit_siblings > 0 and a transaction commitsHeikki Linnakangas2009-03-31
| | | | | | | | | | | 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.
* Add PQinitOpenSSL() function to support applications that use libcryptoTom Lane2009-03-31
| | | | | | but not OpenSSL (or perhaps vice versa, if that's possible). Andrew Chernow, with minor editorialization by me.
* Fix window function plan generation to cope with volatile sort expressions.Tom Lane2009-03-30
| | | | | (Not clear how useful these really are, but failing is no good...) Per report from David Fetter and Robert Treat.
* Fix an oversight in the support for storing/retrieving "minimal tuples" inTom Lane2009-03-30
| | | | | | | | | | | | | | | | | | | | | 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.
* Clarify variable naming: pq_initssllib -> pq_init_ssl_libBruce Momjian2009-03-28
|
* Better document PQinitSSL(0) behavior in regards to libcrypto.Bruce Momjian2009-03-28
|
* Add an errdetail explaining why we reject infinite dates and timestampsTom Lane2009-03-27
| | | | while converting to XML. Bernd Helmle
* Fix possible failures when a tuplestore switches from in-memory to on-diskTom Lane2009-03-27
| | | | | | | | | 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.
* Teach reindex_index() to clear pg_index.indcheckxmin when possible.Tom Lane2009-03-27
| | | | Greg Stark, slightly modified by me.
* Fix tab completion of ANALYZE VERBOSE <tab>. It was previously confusedHeikki Linnakangas2009-03-27
| | | | | | | with EXPLAIN ANALYZE VERBOSE. Greg Sabino Mullane, reformatted by myself. Backpatch to 8.1, where the bug was introduced.
* Gettext plural supportPeter Eisentraut2009-03-26
| | | | | | 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.
* Adjust phrasing of complaints about multi-byte COPY delimiter strings.Tom Lane2009-03-26
| | | | Per pgsql-hackers discussion of 2009-02-17.
* If we expect a hash join to be performed in multiple batches, suppressTom Lane2009-03-26
| | | | | | | | "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.