summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2007-03-22Add xmlpath() to evaluate XPath expressions, with namespaces support.Bruce Momjian
Nikolay Samokhvalov
2007-03-22Arrange for PreventTransactionChain to reject commands submitted as partTom Lane
of a multi-statement simple-Query message. This bug goes all the way back, but unfortunately is not nearly so easy to fix in existing releases; it is only the recent ProcessUtility API change that makes it fixable in HEAD. Per report from William Garrison.
2007-03-22Allow the pgstat process to restart immediately after a receivingBruce Momjian
SIGQUIT signal, rather than waiting for PGSTAT_RESTART_INTERVAL.
2007-03-22Allow DROP TABLESPACE to succeed (with a warning) if the pg_tblspc symlinkTom Lane
doesn't exist. This allows DROP to be used to clean out the pg_tablespace catalog entry in a situation where a previous DROP attempt failed before committing but after having removed the directories and symlink. Per report from William Garrison. Even though his test case depends on an unrelated bug in PreventTransactionChain, it's certainly possible for this situation to arise due to other problems, eg a system crash at just the right time.
2007-03-22Properly enforce pg_dump -F formation options; only single letter orBruce Momjian
full words support, per report from Mark Stosberg.
2007-03-22Remove the currently unused FRONTEND case in dllist.c. This allows the usageAlvaro Herrera
of palloc instead of malloc, which means a list can be freed simply by deleting the memory context that contains it.
2007-03-22Forgot to add file needed for PL regression testsMagnus Hagander
2007-03-21Fix some problems with selectivity estimation for partial indexes.Tom Lane
First, genericcostestimate() was being way too liberal about including partial-index conditions in its selectivity estimate, resulting in substantial underestimates for situations such as an indexqual "x = 42" used with an index on x "WHERE x >= 40 AND x < 50". While the code is intentionally set up to favor selecting partial indexes when available, this was too much... Second, choose_bitmap_and() was likewise easily fooled by cases of this type, since it would similarly think that the partial index had selectivity independent of the indexqual. Fixed by using predicate_implied_by() rather than simple equality checks to determine redundancy. This is a good deal more expensive but I don't see much alternative. At least the extra cost is only paid when there's actually a partial index under consideration. Per report from Jeff Davis. I'm not going to risk back-patching this, though.
2007-03-21Add support for running regression tests on procedural languagesMagnus Hagander
2007-03-21Properly return exitcode when regression tests fails.Magnus Hagander
2007-03-21Native shared memory implementation for win32.Magnus Hagander
Uses same underlying tech as before, but not the sysv emulation layer.
2007-03-20Add three new regexp functions: regexp_matches, regexp_split_to_array,Neil Conway
and regexp_split_to_table. These functions provide access to the capture groups resulting from a POSIX regular expression match, and provide the ability to split a string on a POSIX regular expression, respectively. Patch from Jeremy Drake; code review by Neil Conway, additional comments and suggestions from Tom and Peter E. This patch bumps the catversion, adds some regression tests, and updates the docs.
2007-03-20Bumping catversion due to changes to pg_trigger and pg_rewrite.Jan Wieck
BTW, the comment in this file says that we hope we never have more than 10 catversion changes per day, but to even make this possible we should start counting at zero, shouldn't we? Jan
2007-03-19Changes pg_trigger and extend pg_rewrite in order to allow triggers andJan Wieck
rules to be defined with different, per session controllable, behaviors for replication purposes. This will allow replication systems like Slony-I and, as has been stated on pgsql-hackers, other products to control the firing mechanism of triggers and rewrite rules without modifying the system catalog directly. The firing mechanisms are controlled by a new superuser-only GUC variable, session_replication_role, together with a change to pg_trigger.tgenabled and a new column pg_rewrite.ev_enabled. Both columns are a single char data type now (tgenabled was a bool before). The possible values in these attributes are: 'O' - Trigger/Rule fires when session_replication_role is "origin" (default) or "local". This is the default behavior. 'D' - Trigger/Rule is disabled and fires never 'A' - Trigger/Rule fires always regardless of the setting of session_replication_role 'R' - Trigger/Rule fires when session_replication_role is "replica" The GUC variable can only be changed as long as the system does not have any cached query plans. This will prevent changing the session role and accidentally executing stored procedures or functions that have plans cached that expand to the wrong query set due to differences in the rule firing semantics. The SQL syntax for changing a triggers/rules firing semantics is ALTER TABLE <tabname> <when> TRIGGER|RULE <name>; <when> ::= ENABLE | ENABLE ALWAYS | ENABLE REPLICA | DISABLE psql's \d command as well as pg_dump are extended in a backward compatible fashion. Jan
2007-03-19Further buildfarm experience shows that actually we can't run the plancacheTom Lane
test in parallel with the rules test at all, because the former wants to create a couple of temp views, which can sometimes show up in the latter's output. Let's try it in the next parallel group instead.
2007-03-19Fix 8.2 breakage of domains over array types, and add a regression test caseTom Lane
to cover it. Per report from Anton Pikhteryev.
2007-03-19ecpglib requires libpgport, per Andrew DunstanMagnus Hagander
2007-03-18Fix ecpg/preproc makefile for parallel builds: parser.o must dependTom Lane
on preproc.h, else make may try to build it before preproc.h is ready. Per failures seen here and in buildfarm.
2007-03-18Code cleanup: mark some variables with the "const" modifier, when theyNeil Conway
are initialized with a string literal. Patch from Stefan Huehner.
2007-03-18Code cleanup for function prototypes: change two K&R-style prototypesNeil Conway
to ANSI-style, and change "()" -> "(void)". Patch from Stefan Huehner.
2007-03-17Simplified sortby ruleMichael Meskes
2007-03-17- Changed some whitespacing in connect statement.Michael Meskes
- Made some chars const as proposed by Stefan Huehner <stefan@huehner.org>. - Synced parser and keyword lists. - Copied two token parsing from backend parser to ecpg parser. - Also added a test case for this.
2007-03-17msvc build actually needs Bison 2.2 or later, not 2.1. Or 1.875 as before.Magnus Hagander
2007-03-17Add cvs tags to msvc build files, along with a (very short) comment aboutMagnus Hagander
what each script does.
2007-03-17Oops, forgot to remove the old genbki script.Magnus Hagander
2007-03-17Turn most vc build scripts into modules instead of scripts, and just haveMagnus Hagander
skeleton scripts calling them. To make it easier for the buildfarm (or other "outside callers") to use these modules directly. Per suggestion from Andrew Dunstan.
2007-03-17SPI_cursor_open failed to enforce that only read-only queries could beTom Lane
executed in read_only mode. This could lead to various relatively-subtle failures, such as an allegedly stable function returning non-stable results. Bug goes all the way back to the introduction of read-only mode in 8.0. Per report from Gaetano Mendola.
2007-03-17Ooops, got only one of the two ArrayExpr variants correct in firstTom Lane
cut at exprTypmod support. Also, experimentation shows that we need to label the type of Const nodes that are numeric with a specific typmod.
2007-03-17Fix up the remaining places where the expression node structure would loseTom Lane
available information about the typmod of an expression; namely, Const, ArrayRef, ArrayExpr, and EXPR and ARRAY SubLinks. In the ArrayExpr and SubLink cases it wasn't really the data structure's fault, but exprTypmod() being lazy. This seems like a good idea in view of the expected increase in typmod usage from Teodor's work to allow user-defined types to have typmods. In particular this responds to the concerns we had about eliminating the special-purpose hack that exprTypmod() used to have for BPCHAR Consts. We can now tell whether or not such a Const has been cast to a specific length, and report or display properly if so. initdb forced due to changes in stored rules.
2007-03-16Add new columns for tuple statistics on a database level toMagnus Hagander
pg_stat_database.
2007-03-16Fix race condition in parallel regression tests. The new plancache testTom Lane
was expecting there to be no regular table named 'foo', but it turns out the rules test transiently creates one, so that plancache would sometimes fail. I couldn't reproduce that in quite a few tries here, but several buildfarm machines have shown the failure. Fix by renaming plancache's temp table to something nonconflicting.
2007-03-16Remove undocumented support for copy syntax from before 7.3. Update comments toAndrew Dunstan
reflect syntax actually supported, e.g. by including CSV params.
2007-03-16Show aggregate return types in psql \da output.Magnus Hagander
Greg Sabino Mullane
2007-03-15Make use of plancache module for SPI plans. In particular, since plpgsqlTom Lane
uses SPI plans, this finally fixes the ancient gotcha that you can't drop and recreate a temp table used by a plpgsql function. Along the way, clean up SPI's API a little bit by declaring SPI plan pointers as "SPIPlanPtr" instead of "void *". This is cosmetic but helps to forestall simple programming mistakes. (I have changed some but not all of the callers to match; there are still some "void *"'s in contrib and the PL's. This is intentional so that we can see if anyone's compiler complains about it.)
2007-03-14Fix a longstanding bug in VACUUM FULL's handling of update chains. The codeTom Lane
did not expect that a DEAD tuple could follow a RECENTLY_DEAD tuple in an update chain, but because the OldestXmin rule for determining deadness is a simplification of reality, it is possible for this situation to occur (implying that the RECENTLY_DEAD tuple is in fact dead to all observers, but this patch does not attempt to exploit that). The code would follow a chain forward all the way, but then stop before a DEAD tuple when backing up, meaning that not all of the chain got moved. This could lead to copying the chain multiple times (resulting in duplicate copies of the live tuple at its end), or leaving dangling index entries behind (which, aside from generating warnings from later vacuums, creates a risk of wrong query results or bogus duplicate-key errors once the heap slot the index entry points to is repopulated). The fix is to recheck HeapTupleSatisfiesVacuum while following a chain forward, and to stop if a DEAD tuple is reached. Each contiguous group of RECENTLY_DEAD tuples will therefore be copied as a separate chain. The patch also adds a couple of extra sanity checks to verify correct behavior. Per report and test case from Pavan Deolasee.
2007-03-14Arrange to install a "posixrules" entry in our timezone database, so thatTom Lane
POSIX-style timezone specs that don't exactly match any database entry will be treated as having correct USA DST rules. Also, document that this can be changed if you want to use some other DST rules with a POSIX zone spec. We could consider changing localtime.c's TZDEFRULESTRING, but since that facility can only deal with one DST transition rule, it seems fairly useless now; might as well just plan to override it using a "posixrules" entry. Backpatch as far as 8.0. There isn't much we can do in 7.x ... either your libc gets it right, or it doesn't.
2007-03-14Remove extra single-quotes copied from Unix build. Win32 doesn't stripMagnus Hagander
single quotes...
2007-03-13Regression makefile now needs to make separate lists of what to cleanTom Lane
for input/ and output/ directories, because with the addition of largeobject_1.source, they're not the same list. Apparently the current buildfarm process does not exercise whether 'make distclean' leaves a clean tree behind, else the farm would have been failing for awhile.
2007-03-13Rewrite win32 install documentation (it's not client only anymore, and it'sMagnus Hagander
now complete). Update for the MSVC6/Borland support now being only libpq. Move most of the information about full MSVC build from README file into documentation.
2007-03-13Reverted waiting for further fixes:Peter Eisentraut
Make configuration parameters fall back to their default values when they are removed from the configuration file. Joachim Wieland
2007-03-13Filter out warnings coming from the stylesheets, so that actual warnings ↵Magnus Hagander
show up properly. Show some minor progress messages.
2007-03-13Set root of docbook stuff from buildenv.bat and not from builddoc.bat.Magnus Hagander
Fix calling for file renaming when cd:ed into a different directory.
2007-03-13Properly use pg_strcasecmp() instead of strcasecmp().Magnus Hagander
Un-breaks win32 build.
2007-03-13First phase of plan-invalidation project: create a plan cache managementTom Lane
module and teach PREPARE and protocol-level prepared statements to use it. In service of this, rearrange utility-statement processing so that parse analysis does not assume table schemas can't change before execution for utility statements (necessary because we don't attempt to re-acquire locks for utility statements when reusing a stored plan). This requires some refactoring of the ProcessUtility API, but it ends up cleaner anyway, for instance we can get rid of the QueryContext global. Still to do: fix up SPI and related code to use the plan cache; I'm tempted to try to make SQL functions use it too. Also, there are at least some aspects of system state that we want to ensure remain the same during a replan as in the original processing; search_path certainly ought to behave that way for instance, and perhaps there are others.
2007-03-12Make configuration parameters fall back to their default values when theyPeter Eisentraut
are removed from the configuration file. Joachim Wieland
2007-03-12Make a run with perltidy to format the code. Per request from Andrew Dunstan.Magnus Hagander
2007-03-11Fix a race condition that caused pg_database_size() and pg_tablespace_size()Alvaro Herrera
to fail if an object was removed between calls to ReadDir() and stat(). Per discussion in pgsql-hackers. http://archives.postgresql.org/pgsql-hackers/2007-03/msg00671.php Bug report and patch by Michael Fuhr.
2007-03-10Add alternate result file for large object tests to handle Windows line ends.Andrew Dunstan
2007-03-08Remove unsafe calling of WSAStartup and WSACleanup from DllMain. Move theMagnus Hagander
inline cleanup call around so it will be called in the right order, and be called on errors. Per report from Tokuharu Yuzawa.
2007-03-08Fix vac_update_relstats to ensure it always sends a relcache inval message,Tom Lane
even if none of the fields in the pg_class row change. This behavior is necessary to ensure other backends flush rd_targblock values that might point to truncated-away pages. We got this right pre-8.2 but it was broken by overoptimistic change to not write out the pg_class row if unchanged. Per report from Pavan Deolasee.