aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Make plpgsql support FOR over a query specified by a cursor declaration,Tom Lane2008-04-06
| | | | | | for improved compatibility with Oracle. Pavel Stehule, with some fixes by me.
* Improve hash_any() to use word-wide fetches when hashing suitably alignedTom Lane2008-04-06
| | | | | | | | | | | | | data. This makes for a significant speedup at the cost that the results now vary between little-endian and big-endian machines; which forces us to add explicit ORDER BYs in a couple of regression tests to preserve machine-independent comparison results. Also, force initdb by bumping catversion, since the contents of hash indexes will change (at least on big-endian machines). Kenneth Marshall and Tom Lane, based on work from Bob Jenkins. This commit does not adopt Bob's new faster mix() algorithm, however, since we still need to convince ourselves that that doesn't degrade the quality of the hashing.
* A small visit from the portability and localization police.Tom Lane2008-04-05
|
* Make dblink_current_query() reference pg_catalog.current_query(), per Tom.Bruce Momjian2008-04-05
|
* Re-add dblink_current_query() for backward compatibility.Bruce Momjian2008-04-05
|
* Defend against JOINs having more than 32K columns altogether. We cannotTom Lane2008-04-05
| | | | | | | | | | | | currently support this because we must be able to build Vars referencing join columns, and varattno is only 16 bits wide. Perhaps this should be improved in future, but considering that it never came up before, I'm not sure the problem is worth much effort. Per bug #4070 from Marcello Ceschia. The problem seems largely academic in 8.0 and 7.4, because they have (different) O(N^2) performance issues with such wide joins, but back-patch all the way anyway.
* Have pg_stop_backup() wait for all archive files to be sent, rather thanBruce Momjian2008-04-05
| | | | | | | returing right away. This guarantees that when pg_stop_backup() returns, you have a valid backup. Simon Riggs
* Re-implement division for numeric values using the traditional "schoolbook"Tom Lane2008-04-04
| | | | | | | | | | | | algorithm. This is a good deal slower than our old roundoff-error-prone code for long inputs, so we keep the old code for use in the transcendental functions, where everything is approximate anyway. Also create a user-accessible function div(numeric, numeric) to provide access to the exact result of trunc(x/y) --- since the regular numeric / operator will round off its result, simply computing that expression in SQL doesn't reliably give the desired answer. This fixes bug #3387 and various related corner cases, and improves the usefulness of PG for high-precision integer arithmetic.
* Have psql command 'help' suggest the use of \?, updated version.Bruce Momjian2008-04-04
| | | | Greg Sabino Mullane
* Allow 'help' in psql to show \? help, for novice assistance.Bruce Momjian2008-04-04
| | | | Greg Sabino Mullane
* Remove no-longer-used function assign_backslash_quote()Tom Lane2008-04-04
|
* Remove unneed #include now that current_query() has moved to the backend.Bruce Momjian2008-04-04
|
* Implement current_query(), that shows the currently executing query.Bruce Momjian2008-04-04
| | | | | | | | At the same time remove dblink/dblink_current_query() as it is no longer necessary *BACKWARD COMPATIBILITY ISSUE* for dblink Tomas Doran
* Oops, change should go in scan.l to survive a clean checkout and not justMagnus Hagander2008-04-04
| | | | a make clean...
* Convert backslash_quote guc to use enum.Magnus Hagander2008-04-04
|
* Turn xmlbinary and xmloption GUC variables into enumsTurn xmlbinary andMagnus Hagander2008-04-04
| | | | xmloption GUC variables into enums..
* Add a variant of the Levenshtein string-distance function that lets the userTom Lane2008-04-03
| | | | | | | | specify the cost values to use, instead of always using 1's. Volkan Yazici In passing, remove fuzzystrmatch.h, which contained a bunch of stuff that had no business being in a .h file; fold it into its only user, fuzzystrmatch.c.
* Add Wiki URLs for:Bruce Momjian2008-04-03
| | | | | | | < * Allow encoding on a per-column basis optionally using the ICU library > http://wiki.postgresql.org/wiki/Todo:Collate > http://wiki.postgresql.org/wiki/Todo:ICU
* Remove heap_release_fetch, which is no longer used anywhere; this simplifiesTom Lane2008-04-03
| | | | heap_fetch a little.
* Add to TODO:Bruce Momjian2008-04-03
| | | | | | | > * Improve how ANALYZE computes in-doubt tuples > > http://archives.postgresql.org/pgsql-hackers/2007-11/msg00771.php >
* Teach ANALYZE to distinguish dead and in-doubt tuples, which it formerlyTom Lane2008-04-03
| | | | | | | | | | | | | | | classed all as "dead"; also get it to count DEAD item pointers as dead rows, instead of ignoring them as before. Also improve matters so that tuples previously inserted or deleted by our own transaction are handled nicely: the stats collector's live-tuple and dead-tuple counts will end up correct after our transaction ends, regardless of whether we end in commit or abort. While there's more work that could be done to improve the counting of in-doubt tuples in both VACUUM and ANALYZE, this commit is enough to alleviate some known bad behaviors in 8.3; and the other stuff that's been discussed seems like research projects anyway. Pavan Deolasee and Tom Lane
* Oops, add proper #ifdef for systems without support for syslog.Magnus Hagander2008-04-03
| | | | Per buildfarm member mastodon.
* Remove -C from rsync call, because it omits directories named "core".Peter Eisentraut2008-04-03
|
* Convert syslog_facility guc to enum type.Magnus Hagander2008-04-03
|
* Add URLs for:Bruce Momjian2008-04-03
| | | | | | | * Add SQL:2003 WITH RECURSIVE (hierarchical) queries to SELECT > http://archives.postgresql.org/pgsql-patches/2008-01/msg00105.php > http://archives.postgresql.org/pgsql-patches/2008-03/msg00327.php
* Revert my bad decision of about a year ago to make PortalDefineQueryTom Lane2008-04-02
| | | | | | | | | | | | | | responsible for copying the query string into the new Portal. Such copying is unnecessary in the common code path through exec_simple_query, and in this case it can be enormously expensive because the string might contain a large number of individual commands; we were copying the entire, long string for each command, resulting in O(N^2) behavior for N commands. (This is the cause of bug #4079.) A second problem with it is that PortalDefineQuery really can't risk error, because if it elog's before having set up the Portal, we will leak the plancache refcount that the caller is trying to hand off to the portal. So go back to the design in which the caller is responsible for making sure everything is copied into the portal if necessary.
* Convert three more guc settings to enum type:Magnus Hagander2008-04-02
| | | | default_transaction_isolation, session_replication_role and regex_flavor.
* Remove due to survey/discussion:Bruce Momjian2008-04-02
| | | | | | | | < < * Prefix command-line utilities like createuser with 'pg_' < < http://archives.postgresql.org/pgsql-hackers/2007-06/msg00025.php <
* Support EXECUTE USING in plpgsql.Tom Lane2008-04-01
| | | | Pavel Stehule, with some improvements by myself.
* Add SPI-level support for executing SQL commands with one-time-use plans,Tom Lane2008-04-01
| | | | | | | | | | | that is commands that have out-of-line parameters but the plan is prepared assuming that the parameter values are constants. This is needed for the plpgsql EXECUTE USING patch, but will probably have use elsewhere. This commit includes the SPI functions and documentation, but no callers nor regression tests. The upcoming EXECUTE USING patch will provide regression-test coverage. I thought committing this separately made sense since it's logically a distinct feature.
* Fix an oversight I made in a cleanup patch over a year ago:Tom Lane2008-04-01
| | | | | | | | | | eval_const_expressions needs to be passed the PlannerInfo ("root") structure, because in some cases we want it to substitute values for Param nodes. (So "constant" is not so constant as all that ...) This mistake partially disabled optimization of unnamed extended-Query statements in 8.3: in particular the LIKE-to-indexscan optimization would never be applied if the LIKE pattern was passed as a parameter, and constraint exclusion depending on a parameter value didn't work either.
* Apply my original fix for Taiki Yamaguchi's bug report about DISTINCT MAX().Tom Lane2008-03-31
| | | | Add some regression tests for plausible failures in this area.
* Fix my brain fade in TRUNCATE triggers patch: can't release relcache refcountsTom Lane2008-03-31
| | | | | | while EState still contains pointers to those relations. Exposed by the CLOBBER_CACHE_ALWAYS tests that buildfarm member jaguar is running (I knew those cycles would pay off...)
* Use error message wordings for permissions checks on .pgpass and SSL privateTom Lane2008-03-31
| | | | | | | | | | | | key files that are similar to the one for the postmaster's data directory permissions check. (I chose to standardize on that one since it's the most heavily used and presumably best-wordsmithed by now.) Also eliminate explicit tests on file ownership in these places, since the ensuing read attempt must fail anyway if it's wrong, and there seems no value in issuing the same error message for distinct problems. (But I left in the explicit ownership test in postmaster.c, since it had its own error message anyway.) Also be more specific in the documentation's descriptions of these checks. Per a gripe from Kevin Hunter.
* Fix a number of places that were making file-type tests infelicitously.Tom Lane2008-03-31
| | | | | | | | | | | | | | | | | The places that did, eg, (statbuf.st_mode & S_IFMT) == S_IFDIR were correct, but there is no good reason not to use S_ISDIR() instead, especially when that's what the other 90% of our code does. The places that did, eg, (statbuf.st_mode & S_IFDIR) were flat out *wrong* and would fail in various platform-specific ways, eg a symlink could be mistaken for a regular file on most Unixen. The actual impact of this is probably small, since the problem cases seem to always involve symlinks or sockets, which are unlikely to be found in the directories that PG code might be scanning. But it's clearly trouble waiting to happen, so patch all the way back anyway. (There seem to be no occurrences of the mistake in 7.4.)
* Show database access privileges in psql's \l command. For \l+, also showTom Lane2008-03-30
| | | | | | database size, when available to the current user. Andrew Gilligan
* Display incoming as well as outgoing foreign-key constraints in psql'sTom Lane2008-03-30
| | | | | | \d output for a table. Kenneth D'Souza, some changes by myself.
* Enable 64-bit integer datetimes by default, per previous discussion.Neil Conway2008-03-30
| | | | | | This requires a working 64-bit integer type. If such a type cannot be found, "--disable-integer-datetimes" can be used to switch back to the previous floating point-based datetime implementation.
* Improve description of \du and \dg, per suggestion fromTom Lane2008-03-29
| | | | Harald Armin Massa.
* Improve psql's tab completion to handle completing attribute names in casesTom Lane2008-03-29
| | | | | | | | | | where the relation name was schema-qualified, for example UPDATE foo.bar SET <tab> Also support cases where the relation name was quoted unnecessarily, for example UPDATE "foo" SET <tab> Greg Sabino Mullane, slightly simplified by myself.
* Revert my erroneous fix for Taiki Yamaguchi's DISTINCT MAX() bug.Tom Lane2008-03-29
| | | | Whatever we do about that, this isn't the path to the solution.
* Done:Bruce Momjian2008-03-28
| | | | > * -Add ability to trigger on TRUNCATE
* Clarify documentation on PITR and warm standby on the fact that the standbyHeikki Linnakangas2008-03-28
| | | | | | | restore_command should report failure on non-existent .backup and .history files. Tidy up some related text along the way. Patch by Markus Bertheau, with some editing by Simon Riggs and myself.
* Add to TODO:Bruce Momjian2008-03-28
| | | | | | | | | > > o Add CASE capability to language (already in SQL) > > http://archives.postgresql.org/pgsql-hackers/2008-01/msg00696.php > >
* Add:Bruce Momjian2008-03-28
| | | | | | | | > * Allow one transaction to see tuples using the snapshot of another > transaction > > This would assist multiple backends in working together. > http://archives.postgresql.org/pgsql-hackers/2008-01/msg00400.php
* Department of second thoughts: the rule that ORDER BY and DISTINCT areTom Lane2008-03-28
| | | | | | | | | useless for an ungrouped-aggregate query holds regardless of whether optimize_minmax_aggregates succeeds. So we might as well apply the optimization in any case. I'll leave 8.3 as it was, since this version is a tad more invasive than my earlier patch.
* Support statement-level ON TRUNCATE triggers. Simon RiggsTom Lane2008-03-28
|
* Add to TODO:Bruce Momjian2008-03-27
| | | | | | | | | > > * Consider being smarter about memory and external files used during > sorts > > http://archives.postgresql.org/pgsql-hackers/2007-11/msg01101.php > http://archives.postgresql.org/pgsql-hackers/2007-12/msg00045.php
* Add URL for:Bruce Momjian2008-03-27
| | | | | | | * Consider allowing control of upper/lower case folding of unquoted identifiers > http://archives.postgresql.org/pgsql-hackers/2008-03/msg00849.php
* When we have successfully optimized a MIN or MAX aggregate into an indexscan,Tom Lane2008-03-27
| | | | | | | | | | the query result must be exactly one row (since we don't do this when there's any GROUP BY). Therefore any ORDER BY or DISTINCT attached to the query is useless and can be dropped. Aside from saving useless cycles, this protects us against problems with matching the hacked-up tlist entries to sort clauses, as seen in a bug report from Taiki Yamaguchi. We might need to work harder if we ever try to optimize grouped queries with this approach, but this solution will do for now.