aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Fix oversight in previous error-reporting patch; mustn't pfree path stringHeikki Linnakangas2008-11-14
| | | | before passing it to elog.
* Actually, instead of whining about how type internal might not safely storeTom Lane2008-11-14
| | | | | a pointer, why don't we just fix that. Every known use of "internal" really means a pointer anyway.
* Replace the usage of heap_addheader to create pg_attribute tuples with regularAlvaro Herrera2008-11-14
| | | | | | | | heap_form_tuple. Since this removes the last remaining caller of heap_addheader, remove it. Extracted from the column privileges patch from Stephen Frost, with further code cleanups by me.
* Implement the basic form of UNNEST, ie unnest(anyarray) returns setofTom Lane2008-11-14
| | | | | | | anyelement. This lacks the WITH ORDINALITY option, as well as the multiple input arrays option added in the most recent SQL specs. But it's still a pretty useful subset of the spec's functionality, and it is enough to allow obsoleting contrib/intagg.
* Minor code clarity improvements in array_agg functions, and add a commentTom Lane2008-11-14
| | | | about how this is playing fast and loose with the type system.
* Prevent synchronous scan during GIN index build, because GIN is optimizedTom Lane2008-11-13
| | | | | | | | | for inserting tuples in increasing TID order. It's not clear whether this fully explains Ivan Sergio Borgonovo's complaint, but simple testing confirms that a scan that doesn't start at block 0 can slow GIN build by a factor of three or four. Backpatch to 8.3. Sync scan didn't exist before that.
* array_agg aggregate function, as per SQL:2008, but without ORDER BY clausePeter Eisentraut2008-11-13
| | | | | | | Rearrange the documentation a bit now that array_agg and xmlagg have similar semantics and issues. best of Robert Haas, Jeff Davis, Peter Eisentraut
* Removed two non-terminals:Michael Meskes2008-11-13
| | | | | - FloatOnly: only used by NumericOnly, instead put the FloatOnly production into NumericOnly - IntegerOnly: only used by NumericOnly and one ALTER TABLE rule, replacement SignedIconst is already used in several other places
* Arrange to cache the results of looking up a btree predicate proof comparisonTom Lane2008-11-13
| | | | | | | | | | | operator. The result depends only on the two input operators and the proof direction (imply or refute), so it's easy to cache. This provides a very large savings in cases such as Sergey Konoplev's long NOT-IN-list example, where predtest spends all its time repeatedly figuring out that the same pair of operators cannot be used to prove anything. (But of course the O(N^2) behavior still catches up with you eventually.) I'm not convinced it buys a whole lot when constraint_exclusion isn't turned on, but it's not a lot of added code so we might as well cache all the time.
* In predtest.c, install a limit on the number of branches we will process inTom Lane2008-11-12
| | | | | | | | | | | | | | | | | AND, OR, or equivalent clauses: if there are too many (more than 100) just exit without proving anything. This ensures that we don't spend O(N^2) time trying (and most likely failing) to prove anything about very long IN lists and similar cases. Also, install a couple of CHECK_FOR_INTERRUPTS calls to ensure that a long proof attempt can be interrupted. Per gripe from Sergey Konoplev. Back-patch the whole patch to 8.2 and just the CHECK_FOR_INTERRUPTS addition to 8.1. (The rest of the patch doesn't apply cleanly, and since 8.1 doesn't show the complained-of behavior anyway, it doesn't seem necessary to work hard on it.)
* Do not use ICONST/SCONST in rules other than Iconst/Sconst.Michael Meskes2008-11-12
|
* array_length() function, and for SQL compatibility also cardinality()Peter Eisentraut2008-11-12
| | | | | | | | | | function as a special case. This version still has the suspicious behavior of returning null for an empty array (rather than zero), but this may need a wholesale revision of empty array behavior, currently under discussion. Jim Nasby, Robert Haas, Peter Eisentraut
* Fix off-by-one error in autovacuum shmem struct sizing. This could lead toHeikki Linnakangas2008-11-12
| | | | | | | autovacuum worker sending SIGUSR1 signal to wrong process, per Zou Yong's report. Backpatch to 8.3.
* Clean up the ancient decision to show only two fractional-seconds digitsTom Lane2008-11-12
| | | | | | | | | | | | | in "postgres_verbose" intervalstyle, and the equally arbitrary decision to show at least two fractional-seconds digits in most other datetime display styles. This results in some minor changes in the expected regression test outputs. Also, coalesce a lot of repetitive code in datetime.c into subroutines, for clarity and ease of maintenance. In particular this roughly halves the number of #ifdef HAVE_INT64_TIMESTAMP segments. Ron Mayer, with some additional kibitzing from Tom Lane
* Ensure that the phrels sets of PlaceHolderVars appearing in an AppendRelInfo'sTom Lane2008-11-11
| | | | | | | translated_vars list get updated when pulling up an appendrel member. It's not clear that this really matters at present, since relatively little gets done with the outputs of an appendrel child relation; but it probably will come back to bite us sometime if we leave them with the wrong values.
* Get rid of adjust_appendrel_attr_needed(), which has been broken ever sinceTom Lane2008-11-11
| | | | | | | | | | | we extended the appendrel mechanism to support UNION ALL optimization. The reason nobody noticed was that we are not actually using attr_needed data for appendrel children; hence it seems more reasonable to rip it out than fix it. Back-patch to 8.2 because an Assert failure is possible in corner cases. Per examination of an example from Jim Nasby. In HEAD, also get rid of AppendRelInfo.col_mappings, which is quite inadequate to represent UNION ALL situations; depend entirely on translated_vars instead.
* Fix sloppy omission of now-required #include's.Tom Lane2008-11-11
|
* Change error messages to print the physical path, likeHeikki Linnakangas2008-11-11
| | | | | | "base/11517/3767_fsm", instead of symbolic names like "1663/11517/3767/1", per Alvaro's suggestion. I didn't change the messages in the higher-level index, heap and FSM routines, though, where the fork is implicit.
* Add an explicit caution about how to use pg_do_encoding_conversion withTom Lane2008-11-11
| | | | non-null-terminated input. Per discussion with ITAGAKI Takahiro.
* Add support for input and output of interval values formatted per ISO 8601;Tom Lane2008-11-11
| | | | | | | | specifically, we can input either the "format with designators" or the "alternative format", and we can output the former when IntervalStyle is set to iso_8601. Ron Mayer
* Fix a case of string building.Alvaro Herrera2008-11-10
|
* Fix bugs in sqlchar_to_unicode and unicode_to_sqlchar: both were measuringTom Lane2008-11-10
| | | | | | the length of a UTF8 character with pg_mblen (wrong if DB encoding isn't UTF8), and the latter was blithely assuming that a static buffer would somehow revert to all zeroes for each use.
* Fix 'Q' format char parsing in the new to_timestamp() code. Used to crash.Heikki Linnakangas2008-11-10
|
* pg_do_encoding_conversion cannot return NULL (at least not unless the inputTom Lane2008-11-10
| | | | is NULL), so remove some useless tests for the case.
* Make relhasrules and relhastriggers work like relhasindex, namely we letTom Lane2008-11-10
| | | | VACUUM reset them to false rather than trying to clean 'em up during DROP.
* Replace pg_class.reltriggers with relhastriggers, which is just a boolean hintTom Lane2008-11-09
| | | | | | | | | | | | | ("there might be triggers") rather than an exact count. This is necessary catalog infrastructure for the upcoming patch to reduce the strength of locking needed for trigger addition/removal. Split out and committed separately for ease of reviewing/testing. In passing, also get rid of the unused pg_class columns relukeys, relfkeys, and relrefs, which haven't been maintained in many years and now have no chance of ever being maintained (because of wishing to avoid locking). Simon Riggs
* Add a startup check that pg_xlog and pg_xlog/archive_status exist.Tom Lane2008-11-09
| | | | | | | If the latter doesn't exist, automatically recreate it. (We don't do this for pg_xlog, though, per discussion.) Jonah Harris
* Add a new GUC variable called "IntervalStyle" that decouples interval outputTom Lane2008-11-09
| | | | | | | | | | from DateStyle, and create a new interval style that produces output matching the SQL standard (at least for interval values that fall within the standard's restrictions). IntervalStyle is also used to resolve the conflict between the standard and traditional Postgres rules for interpreting negative interval input. Ron Mayer
* Fix recently added code for SQL years-months interval syntax so thatTom Lane2008-11-08
| | | | | it behaves correctly for a leading minus sign, zero year value, and nonzero month value. Per discussion with Ron Mayer.
* Implement ALTER DATABASE SET TABLESPACE to move a whole database (or at leastTom Lane2008-11-07
| | | | | | as much of it as lives in its default tablespace) to a new tablespace. Guillaume Lelarge, with some help from Bernd Helmle and Tom Lane
* Improve bulk-insert performance by keeping the current target buffer pinnedTom Lane2008-11-06
| | | | | | | (but not locked, as that would risk deadlocks). Also, make it work in a small ring of buffers to avoid having bulk inserts trash the whole buffer arena. Robert Haas, after an idea of Simon Riggs'.
* The logic in systable_beginscan to translate heap attribute numbers toHeikki Linnakangas2008-11-06
| | | | | index column numbers needs to handle the case where you have more than one scankey on the same index column. toast_fetch_datum_slice() needs it.
* This maneuver really requires a comment ...Tom Lane2008-11-05
|
* change fix for suppress_redundant_updates_trigger() where relation has Oids, ↵Andrew Dunstan2008-11-05
| | | | to only apply if present Oid is invalid, per second thought from TGL
* fix suppress_redundant_updates_trigger() where relation has Oids, per gripe ↵Andrew Dunstan2008-11-05
| | | | from KaiGai Kohei
* ADD array_ndims functionPeter Eisentraut2008-11-04
| | | | Author: Robert Haas <robertmhaas@gmail.com>
* Fix compiler warning about uninitialized variablePeter Eisentraut2008-11-04
|
* Disallow LOCK TABLE outside a transaction block (or function), since this caseTom Lane2008-11-04
| | | | | almost certainly represents user error. Per a gripe from Sebastian Böhm and subsequent discussion.
* Fix compiler warnings (including a seriously bogus elog call); minorTom Lane2008-11-04
| | | | code beautification.
* Use bool for a boolean flag.Tom Lane2008-11-03
|
* Allow uuid_in() to parse a wider variety of variant input formats for the UUIDPeter Eisentraut2008-11-03
| | | | | | | data type. This patch takes the approach of allowing an optional hyphen after each group of four hex digits. Author: Robert Haas <robertmhaas@gmail.com>
* Clean up the messy semantics (not to mention inefficiency) of PageGetTempPageTom Lane2008-11-03
| | | | | | by splitting it into three functions with better-defined behaviors. Zdenek Kotala
* suppress_redundant_updates_trigger function.Andrew Dunstan2008-11-03
|
* Fix silly typo in previous commit.Alvaro Herrera2008-11-03
|
* Fix TransactionIdSetStatusBit so that it doesn't try to change a transactionAlvaro Herrera2008-11-03
| | | | | | | | from COMMITTED to SUBCOMMITTED during recovery. This wasn't previously possible, but it is now due to the recent changes on clog commit protocol for subtransactions. Simon Riggs
* Reduce the acceptable staleness of pgstat data for autovacuum, per theAlvaro Herrera2008-11-03
| | | | longstanding note in the source that this patch removes.
* Add pg_typeof() function.Tom Lane2008-11-03
| | | | Brendan Jurd
* Fix mistakes in comment headersAlvaro Herrera2008-11-03
|
* Change the pgstat logic so that the stats collector writes the stats file onlyTom Lane2008-11-03
| | | | | | | | | | | | | | | | | | upon requests from backends, rather than on a fixed 500msec cycle. (There's still throttling logic to ensure it writes no more often than once per 500msec, though.) This should result in a significant reduction in stats file write traffic in typical scenarios where the stats are demanded only infrequently. This approach also means that the former difficulty with changing stats_temp_directory on-the-fly has gone away, so remove the caution about that as well as the thrashing we did to minimize the trouble window. In passing, also fix pgstat_report_stat() so that we will send a stats message if we have function call stats but not table stats to report; this fixes a bug in the recent patch to support function-call stats. Martin Pihlak
* Remove the last vestiges of the MAKE_PTR/MAKE_OFFSET mechanism. We haven'tTom Lane2008-11-02
| | | | | | | | | allowed different processes to have different addresses for the shmem segment in quite a long time, but there were still a few places left that used the old coding convention. Clean them up to reduce confusion and improve the compiler's ability to detect pointer type mismatches. Kris Jurka