aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Sync regex code with Tcl 8.5.11.Tom Lane2012-02-17
| | | | | | | | | Sync our regex code with upstream changes since last time we did this, which was Tcl 8.5.0 (see commit df1e965e12cdd48c11057ee6e15346ee2b8b02f5). There are no functional changes here; the main point is just to lay down a commit-log marker that somebody has looked at this recently, and to do what we can to keep the two codebases comparable.
* Fix longstanding error in contrib/intarray's int[] & int[] operator.Tom Lane2012-02-16
| | | | | | | | | | The array intersection code would give wrong results if the first entry of the correct output array would be "1". (I think only this value could be at risk, since the previous word would always be a lower-bound entry with that fixed value.) Problem spotted by Julien Rouhaud, initial patch by Guillaume Lelarge, cosmetic improvements by me.
* Improve statistics estimation to make some use of DISTINCT in sub-queries.Tom Lane2012-02-16
| | | | | | | | | | | | | | | | Formerly, we just punted when trying to estimate stats for variables coming out of sub-queries using DISTINCT, on the grounds that whatever stats we might have for underlying table columns would be inapplicable. But if the sub-query has only one DISTINCT column, we can consider its output variable as being unique, which is useful information all by itself. The scope of this improvement is pretty narrow, but it costs nearly nothing, so we might as well do it. Per discussion with Andres Freund. This patch differs from the draft I submitted yesterday in updating various comments about vardata.isunique (to reflect its extended meaning) and in tweaking the interaction with security_barrier views. There does not seem to be a reason why we can't use this sort of knowledge even when the sub-query is such a view.
* pg_dump: Miscellaneous tightening based on recent refactorings.Robert Haas2012-02-16
| | | | | | | Use exit_horribly() and ExecuteSqlQueryForSingleRow() in various places where it's equivalent, or nearly equivalent, to the prior coding. Apart from being more compact, this also makes the error messages for the wrong-number-of-tuples case more consistent.
* pg_dump: Remove global connection pointer.Robert Haas2012-02-16
| | | | | | | Parallel pg_dump wants to have multiple ArchiveHandle objects, and therefore multiple PGconns, in play at the same time. This should be just about the end of the refactoring that we need in order to make that workable.
* Refactor pg_dump.c to avoid duplicating returns-one-row check.Robert Haas2012-02-16
| | | | | | Any patches apt to get broken have probably already been broken by the error-handling cleanups I just did, so we might as well clean this up at the same time.
* Invent on_exit_nicely for pg_dump.Robert Haas2012-02-16
| | | | Per recent discussions on pgsql-hackers regarding parallel pg_dump.
* Run a portal's cleanup hook immediately when pushing it to FAILED state.Tom Lane2012-02-15
| | | | | | | | | | | | | | | | This extends the changes of commit 6252c4f9e201f619e5eebda12fa867acd4e4200e so that we run the cleanup hook earlier for failure cases as well as success cases. As before, the point is to avoid an assertion failure from an Assert I added in commit a874fe7b4c890d1fe3455215a83ca777867beadd, which was meant to check that no user-written code can be called during portal cleanup. This fixes a case reported by Pavan Deolasee in which the Assert could be triggered during backend exit (see the new regression test case), and also prevents the possibility that the cleanup hook is run after portions of the portal's state have already been recycled. That doesn't really matter in current usage, but it foreseeably could matter in the future. Back-patch to 9.1 where the Assert in question was added.
* Fix VPATH builds, broken by my recent commit to speed up tuplesorting.Robert Haas2012-02-15
| | | | The relevant commit is 337b6f5ecf05b21b5e997986884d097d60e4e3d0.
* Have pg_upgrade output 'link' or 'copy' when reporting its status.Bruce Momjian2012-02-15
| | | | Idea from Peter.
* sepgsql: Move some code from hooks.c to label.cRobert Haas2012-02-15
| | | | | | | | | This is some preliminary refactoring related to a pending patch to allow sepgsql-enable sessions to make dynamic label transitions. But this commit doesn't involve any functional change: it just puts some bits of code in more logical places. KaiGai Kohei
* Speed up in-memory tuplesorting.Robert Haas2012-02-15
| | | | | | | | | | | | | Per recent work by Peter Geoghegan, it's significantly faster to tuplesort on a single sortkey if ApplySortComparator is inlined into quicksort rather reached via a function pointer. It's also faster in general to have a version of quicksort which is specialized for sorting SortTuple objects rather than objects of arbitrary size and type. This requires a couple of additional copies of the quicksort logic, which in this patch are generate using a Perl script. There might be some benefit in adding further specializations here too, but thus far it's not clear that those gains are worth their weight in code footprint.
* More regression tests for LEAKPROOF/NOT LEAKPROOF stuff.Robert Haas2012-02-15
| | | | | | Along the way, move create_function_3 into a parallel schedule. KaiGai Kohei
* Make CREATE/ALTER FUNCTION support NOT LEAKPROOF.Robert Haas2012-02-15
| | | | Because it isn't good to be able to turn things on, and not off again.
* sepgsql: Reword and fix typo in docs on DML permissions.Robert Haas2012-02-15
| | | | Per report from Christoph Berg.
* Fix pg_test_fsync Win32 problems reported by the build farm; addBruce Momjian2012-02-15
| | | | comments about the alarm method used on Win32.
* Try to get pg_test_thread to compile on Windows by using a sleeperBruce Momjian2012-02-14
| | | | thread.
* Improve fsync documentation by stating that -W _0_ turns of writeBruce Momjian2012-02-14
| | | | caching.
* Preserve column names in the execution-time tupledesc for a RowExpr.Tom Lane2012-02-14
| | | | | | | | | | | | | | | The hstore and json datatypes both have record-conversion functions that pay attention to column names in the composite values they're handed. We used to not worry about inserting correct field names into tuple descriptors generated at runtime, but given these examples it seems useful to do so. Observe the nicer-looking results in the regression tests whose results changed. catversion bump because there is a subtle change in requirements for stored rule parsetrees: RowExprs from ROW() constructs now have to include field names. Andrew Dunstan and Tom Lane
* Document random page cost is only 4x seqeuntial, and not 40x.Bruce Momjian2012-02-14
|
* Document that the pg_test_fsync defaults allow the program to completeBruce Momjian2012-02-14
| | | | in about 30 seconds.
* Change contrib/pg_test_fsync to control tests in terms of seconds perBruce Momjian2012-02-14
| | | | | test, rather than a number of test cycles. Changes -o/cycles option to -s/seconds.
* Remove new, intermittently failing regression test.Robert Haas2012-02-13
| | | | Per buildfarm.
* Fix new create_function_3 regression tests not to rely on tuple order.Robert Haas2012-02-13
| | | | Per buildfarm.
* Allow LEAKPROOF functions for better performance of security views.Robert Haas2012-02-13
| | | | | | | | | | | | | | | | We don't normally allow quals to be pushed down into a view created with the security_barrier option, but functions without side effects are an exception: they're OK. This allows much better performance in common cases, such as when using an equality operator (that might even be indexable). There is an outstanding issue here with the CREATE FUNCTION / ALTER FUNCTION syntax: there's no way to use ALTER FUNCTION to unset the leakproof flag. But I'm committing this as-is so that it doesn't have to be rebased again; we can fix up the grammar in a future commit. KaiGai Kohei, with some wordsmithing by me.
* Improve labeling of pg_test_fsync open_sync test output.Bruce Momjian2012-02-13
|
* Do not use the variable name when defining a varchar structure in ecpg.Michael Meskes2012-02-13
| | | | With a unique counter being added anyway, there is no need anymore to have the variable name listed, too.
* Fix auto-explain JSON output to be valid JSON.Andrew Dunstan2012-02-13
| | | | | | Problem reported by Peter Eisentraut. Backpatched to release 9.0.
* Fix heap_multi_insert to set t_self field in the caller's tuples.Heikki Linnakangas2012-02-13
| | | | | | | | If tuples were toasted, heap_multi_insert didn't update the ctid on the original tuples. This caused a failure if there was an after trigger (including a foreign key), on the table, and a tuple got toasted. Per off-list report and test case from Ted Phelps
* Silence warning about deprecated assignment to $[ in check_keywords.plHeikki Linnakangas2012-02-13
| | | | Alex Hunsaker
* Fix I/O-conversion-related memory leaks in plpgsql.Tom Lane2012-02-11
| | | | | | | | | | | | | Datatype I/O functions are allowed to leak memory in CurrentMemoryContext, since they are generally called in short-lived contexts. However, plpgsql calls such functions for purposes of type conversion, and was calling them in its procedure context. Therefore, any leaked memory would not be recovered until the end of the plpgsql function. If such a conversion was done within a loop, quite a bit of memory could get consumed. Fix by calling such functions in the transient "eval_econtext", and adjust other logic to match. Back-patch to all supported versions. Andres Freund, Jan UrbaƄski, Tom Lane
* Fix oversight in pg_dump's handling of extension configuration tables.Tom Lane2012-02-10
| | | | | | | If an extension has not been selected to be dumped (perhaps because of a --schema or --table switch), the contents of its configuration tables surely should not get dumped either. Per gripe from Hubert Depesz Lubaczewski.
* Fix brain fade in previous pg_dump patch.Tom Lane2012-02-10
| | | | | | | | | | | | | | In pre-7.3 databases, pg_attribute.attislocal doesn't exist. The easiest way to make sure the new inheritance logic behaves sanely is to assume it's TRUE, not FALSE. This will result in printing child columns even when they're not really needed. We could work harder at trying to reconstruct a value for attislocal, but there is little evidence that anyone still cares about dumping from such old versions, so just do the minimum necessary to have a valid dump. I had this correct in the original draft of the patch, but for some unaccountable reason decided it wasn't necessary to change the value. Testing against an old server shows otherwise...
* Fix pg_dump for better handling of inherited columns.Tom Lane2012-02-10
| | | | | | | | | | | | | | | | | | Revise pg_dump's handling of inherited columns, which was last looked at seriously in 2001, to eliminate several misbehaviors associated with inherited default expressions and NOT NULL flags. In particular make sure that a column is printed in a child table's CREATE TABLE command if and only if it has attislocal = true; the former behavior would sometimes cause a column to become marked attislocal when it was not so marked in the source database. Also, stop relying on textual comparison of default expressions to decide if they're inherited; instead, don't use default-expression inheritance at all, but just install the default explicitly at each level of the hierarchy. This fixes the search-path-related misbehavior recently exhibited by Chester Young, and also removes some dubious assumptions about the order in which ALTER TABLE SET DEFAULT commands would be executed. Back-patch to all supported branches.
* Add ORDER BY to a query to prevent occasional regression test failures.Tom Lane2012-02-10
| | | | | | Per buildfarm, we sometimes get row-ordering variations in the output. This also makes this query look more like numerous other ones in the same test file.
* psql: Support zero byte field and record separatorsPeter Eisentraut2012-02-09
| | | | | | | | Add new psql settings and command-line options to support setting the field and record separators for unaligned output to a zero byte, for easier interfacing with other shell tools. reviewed by Abhijit Menon-Sen
* Attempt to fix MSVC builds and other fls-related breakage.Robert Haas2012-02-09
| | | | Thanks to Andrew Dunstan for bringing this to my attention.
* Add a comment to AdjustIntervalForTypmod to reduce chance of future bugs.Robert Haas2012-02-09
| | | | | | It's not entirely evident how the logic here relates to the interval_transform function, so let's clue people in that they need to check that if the rules change.
* Improve interval_transform function to detect a few more cases.Robert Haas2012-02-09
| | | | Noah Misch, per a review comment from me.
* Have pg_receivexlog always send an invalid log position in status messagesMagnus Hagander2012-02-09
| | | | | | | This prevents pg_basebackup and pg_receivexlog from becoming a synchronous standby in case 'write' is used for synchronous_commit. Fujii Masao
* Add new keywords SNAPSHOT and TYPES to the keyword list in gram.yHeikki Linnakangas2012-02-09
| | | | | | | | These were added to kwlist.h as unreserved keywords in separate patches, but authors forgot to add them to the corresponding list in gram.y. Because of that, even though they were supposed to be unreserved keywords, they could not be used as identifiers. src/tools/check_keywords.pl is your friend.
* Throw error sooner for unlogged GiST indexes.Tom Lane2012-02-08
| | | | | | Throwing an error only after we've built the main index fork is pretty unfriendly when the table already contains data. Per gripe from Jay Levitt.
* Fix up dumping conditions for extension configuration tables.Tom Lane2012-02-08
| | | | | | | | | | | | | | | | Various filters that were meant to prevent dumping of table data were not being applied to extension config tables, notably --exclude-table-data and --no-unlogged-table-data. We also would bogusly try to dump data from views, sequences, or foreign tables, should an extension try to claim they were config tables. Fix all that, and refactor/redocument to try to make this a bit less fragile. This reverts the implementation, though not the feature, of commit 7b070e896ca835318c90b02c830a5c4844413b64, which had broken config-table dumping altogether :-(. It is still the case that the code will dump config-table data even if --schema is specified. That behavior was intentional, as per the comments in getExtensionMembership, so I think it requires some more discussion before we change it.
* Check misplaced window functions before checking aggregate/group by sanity.Tom Lane2012-02-08
| | | | | | | | | | | If somebody puts a window function in WHERE, we should complain about that in so many words. The previous coding tended to complain about the window function's arguments instead, which is likely to be misleading to users who are unclear on the semantics of window functions; as seen for example in bug #6440 from Matyas Novak. Just another example of how "add new code at the end" is frequently a bad heuristic.
* Support min/max index optimizations on boolean columns.Tom Lane2012-02-08
| | | | | | | | | | | | Since bool_and() is equivalent to min(), and bool_or() to max(), we might as well let them be index-optimized in the same way. The practical value of this is debatable at best, but it seems nearly cost-free to enable it. Code-wise, we need only adjust the entries in pg_aggregate. There is a measurable planning speed penalty for a query involving one of these aggregates, but it is only a few percent in simple cases, so that seems acceptable. Marti Raudsepp, reviewed by Abhijit Menon-Sen
* Mark some more I/O-conversion-invoking functions as stable not volatile.Tom Lane2012-02-08
| | | | | | | | | | | | | | | | | | | | | When written, textanycat, anytextcat, quote_literal, and quote_nullable were marked volatile, because they could invoke arbitrary type-specific output functions as part of casting their anyelement arguments to text. Since then, we have defined a project policy that I/O functions must not be volatile, as per commit aab353a60b95aadc00f81da0c6d99bde696c4b75. So these functions can safely be downgraded to stable. Most of the time this makes no difference since they'll get inlined anyway, but as noted by Andrew Dunstan, there are cases where the volatile marking prevents optimizations that the planner does before function inlining. (I think I might have overlooked these functions in the earlier commit on the grounds that inlining would make it moot, but not so --- tgl) This change results in a change in the expected output of the json regression tests, because the planner can now flatten a sub-select that it failed to before. The old output is preferable, but getting that back will require some as-yet-unfinished work on RowExpr handling. Marti Raudsepp
* Add transform functions for various temporal typmod coercisions.Robert Haas2012-02-08
| | | | | | This enables ALTER TABLE to skip table and index rebuilds in some cases. Noah Misch, with trivial changes by me.
* Rename LWLockWaitUntilFree to LWLockAcquireOrWait.Heikki Linnakangas2012-02-08
| | | | | LWLockAcquireOrWait makes it more clear that the lock is acquired if it's free.
* Fix typos pointed out by Noah Misch.Robert Haas2012-02-07
|
* Add opensp as a requirement for building the docs on Debian --- testedBruce Momjian2012-02-07
| | | | on Debian Squeeze.