aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* As noted by Andrew Gierth, there's really no need any more to force a junkTom Lane2008-07-26
| | | | | | | | | | | | | | | | filter to be used when INSERT or SELECT INTO has a plan that returns raw disk tuples. The virtual-tuple-slot optimizations that were put in place awhile ago mean that ExecInsert has to do ExecMaterializeSlot, and that already copies the tuple if it's raw (and does so more efficiently than a junk filter, too). So get rid of that logic. This in turn means that we can throw away ExecMayReturnRawTuples, which wasn't used for any other purpose, and was always a kluge anyway. In passing, move a couple of SELECT-INTO-specific fields out of EState and into the private state of the SELECT INTO DestReceiver, as was foreseen in an old comment there. Also make intorel_receive use ExecMaterializeSlot not ExecCopySlotTuple, for consistency with ExecInsert and to possibly save a tuple copy step in some cases.
* Fix parsing of LDAP URLs so it doesn't reject spaces in the "suffix" part.Tom Lane2008-07-24
| | | | Per report from César Miguel Oliveira Alves.
* Remove some redundant tests and improve comments in next_token().Tom Lane2008-07-24
| | | | Cosmetic, but it might make this a bit less confusing to the next reader.
* Ratchet up patch to improve autovacuum wraparound messages.Alvaro Herrera2008-07-23
| | | | Simon Riggs
* Use guc.c's parse_int() instead of pg_atoi() to parse fillfactor inTom Lane2008-07-23
| | | | | | | | | | default_reloptions(). The previous coding was really a bug because pg_atoi() will always throw elog on bad input data, whereas default_reloptions is not supposed to complain about bad input unless its validate parameter is true. Right now you could only expose the problem by hand-modifying pg_class.reloptions into an invalid state, so it doesn't seem worth back-patching; but we should get it right in HEAD because there might be other situations in future. Noted while studying GIN fast-update patch.
* Publish more openly the fact that autovacuum is working for wraparoundAlvaro Herrera2008-07-21
| | | | | | protection. Simon Riggs
* Add comment about the two different query strings that ExecuteQuery()Tom Lane2008-07-21
| | | | has to deal with.
* Code review for array_fill patch: fix inadequate check for array size overflowTom Lane2008-07-21
| | | | | | and bogus documentation (dimension arrays are int[] not anyarray). Also the errhint() messages seem to be really errdetail(), since there is nothing heuristic about them. Some other trivial cosmetic improvements.
* Add a pg_dump option --lock-wait-timeout to allow failing the dump if unableTom Lane2008-07-20
| | | | | | to acquire shared table locks within a specified amount of time. David Gould
* Revert patch so .psqlrc can suppress startup banner:Bruce Momjian2008-07-20
| | | | In psql, run .psqlrc _after_ printing warnings and banner.
* Avoid substituting NAMEDATALEN, FLOAT4PASSBYVAL, and FLOAT8PASSBYVAL intoTom Lane2008-07-19
| | | | | | | | | the postgres.bki file during build, because we want that file to be entirely platform- and configuration-independent; else it can't safely be put into /usr/share on multiarch machines. We can do the substitution during initdb, instead. FLOAT4PASSBYVAL and FLOAT8PASSBYVAL are new breakage as of 8.4, while the NAMEDATALEN hazard has been there all along but I guess no one tripped over it. Noticed while trying to build "universal" OS X binaries.
* Adjust things so that the query_string of a cached plan and the sourceText ofTom Lane2008-07-18
| | | | | | | | | | | | | | | | | | | | | | | | a portal are never NULL, but reliably provide the source text of the query. It turns out that there was only one place that was really taking a short-cut, which was the 'EXECUTE' utility statement. That doesn't seem like a sufficiently critical performance hotspot to justify not offering a guarantee of validity of the portal source text. Fix it to copy the source text over from the cached plan. Add Asserts in the places that set up cached plans and portals to reject null source strings, and simplify a bunch of places that formerly needed to guard against nulls. There may be a few places that cons up statements for execution without having any source text at all; I found one such in ConvertTriggerToFK(). It seems sufficient to inject a phony source string in such a case, for instance ProcessUtility((Node *) atstmt, "(generated ALTER TABLE ADD FOREIGN KEY command)", NULL, false, None_Receiver, NULL); We should take a second look at the usage of debug_query_string, particularly the recently added current_query() SQL function. ITAGAKI Takahiro and Tom Lane
* Provide a function hook to let plug-ins get control around ExecutorRun.Tom Lane2008-07-18
| | | | ITAGAKI Takahiro
* In psql, run .psqlrc _after_ printing warnings and banner.Bruce Momjian2008-07-18
|
* Fix a race condition that I introduced into sinvaladt.c during the recentTom Lane2008-07-18
| | | | | | | | | rewrite. When called from SIInsertDataEntries, SICleanupQueue releases the write lock if it has to issue a kill() to signal some laggard backend. That still seems like a good idea --- but it's possible that by the time we get the lock back, there are no longer enough free message slots to satisfy SIInsertDataEntries' requirement. Must recheck, and repeat the whole SICleanupQueue process if not. Noted while reading code.
* Suppress compiler warning, and not incidentally make the code moreTom Lane2008-07-18
| | | | | robust. The previous coding was quite risky because it was testing conditions different from 'is the array really allocated?'.
* Implement SQL-spec RETURNS TABLE syntax for functions.Tom Lane2008-07-18
| | | | | | | (Unlike the original submission, this patch treats TABLE output parameters as being entirely equivalent to OUT parameters -- tgl) Pavel Stehule
* Add MSVC++ debug libraries to .cvsignore.Alvaro Herrera2008-07-17
|
* Avoid crashing when a table is deleted while we're on the process of checkingAlvaro Herrera2008-07-17
| | | | | | it. Per report from Tom Lane based on buildfarm evidence.
* Add dump support for SortBy nodes. Needed this while debugging a reportedTom Lane2008-07-17
| | | | problem with DISTINCT, so might as well commit it.
* Fix previous patch so that it actually works --- consider TRUNCATE foo, ↵Tom Lane2008-07-16
| | | | public.foo
* Add a "provariadic" column to pg_proc to eliminate the remarkably expensiveTom Lane2008-07-16
| | | | | | | | | | need to deconstruct proargmodes for each pg_proc entry inspected by FuncnameGetCandidates(). Fixes function lookup performance regression caused by yesterday's variadic-functions patch. In passing, make pg_proc.probin be NULL, rather than a dummy value '-', in cases where it is not actually used for the particular type of function. This should buy back some of the space cost of the extra column.
* Allow TRUNCATE foo, foo to succeed, per report from Nikhils.Bruce Momjian2008-07-16
|
* Support "variadic" functions, which can accept a variable number of argumentsTom Lane2008-07-16
| | | | | | | | | | | | | | so long as all the trailing arguments are of the same (non-array) type. The function receives them as a single array argument (which is why they have to all be the same type). It might be useful to extend this facility to aggregates, but this patch doesn't do that. This patch imposes a noticeable slowdown on function lookup --- a follow-on patch will fix that by adding a redundant column to pg_proc. Pavel Stehule
* Add array_fill() to create arrays initialized with a value.Bruce Momjian2008-07-16
| | | | Pavel Stehule
* Addendum: psql sequence value display patch was originally written byBruce Momjian2008-07-15
| | | | Euler Taveira de Oliveira.
* Have psql \d show the value of sequence columns.Bruce Momjian2008-07-15
| | | | Dickson S. Guedes
* Add comment about literal strings in our syntax not being translated inBruce Momjian2008-07-14
| | | | psql.
* Add column storage type to psql \d+ display.Bruce Momjian2008-07-14
| | | | Gregory Stark
* In psql, rename trans_* variables to translate_*, for clarity.Bruce Momjian2008-07-14
|
* Clean up buildfarm failures arising from the seemingly straightforward pageTom Lane2008-07-14
| | | | | | | macros patch :-(. Results from both baiji and mastodon imply that MSVC fails to perceive offsetof(PageHeaderData, pd_linp[0]) as a constant expression in some contexts where offsetof(PageHeaderData, pd_linp) works fine. Sloth, thy name is Micro.
* Create a type-specific typanalyze routine for tsvector, which collects statsTom Lane2008-07-14
| | | | | | | | | | | | on the most common individual lexemes in place of the mostly-useless default behavior of counting duplicate tsvectors. Future work: create selectivity estimation functions that actually do something with these stats. (Some other things we ought to look at doing: using the Lossy Counting algorithm in compute_minimal_stats, and using the element-counting idea for stats on regular arrays.) Jan Urbanski
* Change the PageGetContents() macro to guarantee its result is maxalign'd,Tom Lane2008-07-13
| | | | | | | | | thereby forestalling any problems with alignment of the data structure placed there. Since SizeOfPageHeaderData is maxalign'd anyway in 8.3 and HEAD, this does not actually change anything right now, but it is foreseeable that the header size will change again someday. I had to fix a couple of places that were assuming that the content offset is just SizeOfPageHeaderData rather than MAXALIGN(SizeOfPageHeaderData). Per discussion of Zdenek's page-macros patch.
* Clean up the use of some page-header-access macros: principally, useTom Lane2008-07-13
| | | | | | | | | | SizeOfPageHeaderData instead of sizeof(PageHeaderData) in places where that makes the code clearer, and avoid casting between Page and PageHeader where possible. Zdenek Kotala, with some additional cleanup by Heikki Linnakangas. I did not apply the parts of the proposed patch that would have resulted in slightly changing the on-disk format of hash indexes; it seems to me that's not a win as long as there's any chance of having in-place upgrade for 8.4.
* More replacements of binary compatible to binary coercible.Peter Eisentraut2008-07-12
|
* Don't make --enable-cassert turn on RANDOMIZE_ALLOCATED_MEMORY automatically;Tom Lane2008-07-12
| | | | | it's just too dang expensive. Per recent discussion, but I just got my nose rubbed in it again while doing some performance checking.
* Const-ify the arguments of str_tolower() and friends to suppress compileTom Lane2008-07-12
| | | | | | | | warnings. Clean up various unneeded cruft that was left behind after creating those routines. Introduce some convenience functions str_tolower_z etc to eliminate tedious and error-prone double arguments in formatting.c. (Currently there seems no need to export the latter, but maybe reconsider this later.)
* Multi-column GIN indexes. Teodor SigaevTom Lane2008-07-11
|
* Allow binary-coercible types for cast function arguments and return types.Peter Eisentraut2008-07-11
| | | | | | | Document return type of cast functions. Also change documentation to prefer the term "binary coercible" in its present sense instead of the previous term "binary compatible".
* Make sure we only try to free snapshots that have been passed throughAlvaro Herrera2008-07-11
| | | | | | | CopySnapshot, per Neil Conway. Also add a comment about the assumption in GetSnapshotData that the argument is statically allocated. Also, fix some more typos in comments in snapmgr.c.
* Fix a few typos in comments in snapmgr.c, and sort header inclusionsNeil Conway2008-07-11
| | | | alphabetically.
* Add unchangeable GUC "variables" segment_size, wal_block_size, andTom Lane2008-07-10
| | | | | | wal_segment_size to make those configuration parameters available to clients, in the same way that block_size was previously exposed. Bernd Helmle, with comments from Abhijit Menon-Sen and some further tweaking by me.
* Tighten up SS_finalize_plan's computation of valid_params to exclude Params ofTom Lane2008-07-10
| | | | | | | | | | | the current query level that aren't in fact output parameters of the current initPlans. (This means, for example, output parameters of regular subplans.) To make this work correctly for output parameters coming from sibling initplans requires rejiggering the API of SS_finalize_plan just a bit: we need the siblings to be visible to it, rather than hidden as SS_make_initplan_from_plan had been doing. This is really part of my response to bug #4290, but I concluded this part probably shouldn't be back-patched, since all that it's doing is to make a debugging cross-check tighter.
* Fix mis-calculation of extParam/allParam sets for plan nodes, as seen inTom Lane2008-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug #4290. The fundamental bug is that masking extParam by outer_params, as finalize_plan had been doing, caused us to lose the information that an initPlan depended on the output of a sibling initPlan. On reflection the best thing to do seemed to be not to try to adjust outer_params for this case but get rid of it entirely. The only thing it was really doing for us was to filter out param IDs associated with SubPlan nodes, and that can be done (with greater accuracy) while processing individual SubPlan nodes in finalize_primnode. This approach was vindicated by the discovery that the masking method was hiding a second bug: SS_finalize_plan failed to remove extParam bits for initPlan output params that were referenced in the main plan tree (it only got rid of those referenced by other initPlans). It's not clear that this caused any real problems, given the limited use of extParam by the executor, but it's certainly not what was intended. I originally thought that there was also a problem with needing to include indirect dependencies on external params in initPlans' param sets, but it turns out that the executor handles this correctly so long as the depended-on initPlan is earlier in the initPlans list than the one using its output. That seems a bit of a fragile assumption, but it is true at the moment, so I just documented it in some code comments rather than making what would be rather invasive changes to remove the assumption. Back-patch to 8.1. Previous versions don't have the case of initPlans referring to other initPlans' outputs, so while the existing logic is still questionable for them, there are not any known bugs to be fixed. So I'll refrain from changing them for now.
* Increase PG_SYSLOG_LIMIT (the max line length sent to syslog()) from 128 toTom Lane2008-07-09
| | | | | | | | 1024 to improve performance when sending large elog messages. Also add a comment about why we use that number. Since this represents an externally visible behavior change, and might possibly result in portability issues, it seems best not to back-patch it.
* Fix performance bug in write_syslog(): the code to preferentially break theTom Lane2008-07-08
| | | | | | | | | | log message at newlines cost O(N^2) for very long messages with few or no newlines. For messages in the megabyte range this became the dominant cost. Per gripe from Achilleas Mantzios. Patch all the way back, since this is a safe change with no portability risks. I am also thinking of increasing PG_SYSLOG_LIMIT, but that should be done separately.
* Minor improvements to the Gin internal documentation.Neil Conway2008-07-08
|
* Add comment for deadlock_timeout:Bruce Momjian2008-07-08
| | | | /* This is PGC_SIGHUP so all backends have the same value. */
* Fix estimate_num_groups() to assume that GROUP BY expressions yielding booleanTom Lane2008-07-07
| | | | | | | | | results always contribute two groups, regardless of the expression contents. This is very substantially more accurate than the regular heuristic for certain boolean tests like "col IS NULL". Per gripe from Sam Mason. Back-patch to all supported releases, since the behavior of estimate_num_groups() hasn't changed all that much since 7.4.
* Fix AT TIME ZONE (in all three variants) so that we first try to interpretTom Lane2008-07-07
| | | | | | | | | | | | | | | | the timezone argument as a timezone abbreviation, and only try it as a full timezone name if that fails. The zic database has four zones (CET, EET, MET, WET) that are full daylight-savings zones and yet have names that are the same as their abbreviations for standard time, resulting in ambiguity. In the timestamp input functions we resolve the ambiguity by preferring the abbreviation, and AT TIME ZONE should work the same way. (No functionality is lost because the zic database also has other names for these zones, eg Europe/Zurich.) Per gripe from Jaromir Talir. Backpatch to 8.1. Older releases did not have the issue because AT TIME ZONE only accepted abbreviations not zone names. (Thus, this patch also arguably fixes a compatibility botch introduced at 8.1: in ambiguous cases we now behave the same as 8.0 did.)