aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Native shared memory implementation for win32.Magnus Hagander2007-03-21
| | | | Uses same underlying tech as before, but not the sysv emulation layer.
* Add three new regexp functions: regexp_matches, regexp_split_to_array,Neil Conway2007-03-20
| | | | | | | | | | | | 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.
* Bumping catversion due to changes to pg_trigger and pg_rewrite.Jan Wieck2007-03-20
| | | | | | | | | 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
* Changes pg_trigger and extend pg_rewrite in order to allow triggers andJan Wieck2007-03-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Further buildfarm experience shows that actually we can't run the plancacheTom Lane2007-03-19
| | | | | | 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.
* Fix 8.2 breakage of domains over array types, and add a regression test caseTom Lane2007-03-19
| | | | to cover it. Per report from Anton Pikhteryev.
* ecpglib requires libpgport, per Andrew DunstanMagnus Hagander2007-03-19
|
* Fix ecpg/preproc makefile for parallel builds: parser.o must dependTom Lane2007-03-18
| | | | | on preproc.h, else make may try to build it before preproc.h is ready. Per failures seen here and in buildfarm.
* Code cleanup: mark some variables with the "const" modifier, when theyNeil Conway2007-03-18
| | | | are initialized with a string literal. Patch from Stefan Huehner.
* Code cleanup for function prototypes: change two K&R-style prototypesNeil Conway2007-03-18
| | | | to ANSI-style, and change "()" -> "(void)". Patch from Stefan Huehner.
* Simplified sortby ruleMichael Meskes2007-03-17
|
* - Changed some whitespacing in connect statement.Michael Meskes2007-03-17
| | | | | | | - 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.
* msvc build actually needs Bison 2.2 or later, not 2.1. Or 1.875 as before.Magnus Hagander2007-03-17
|
* Add cvs tags to msvc build files, along with a (very short) comment aboutMagnus Hagander2007-03-17
| | | | what each script does.
* Oops, forgot to remove the old genbki script.Magnus Hagander2007-03-17
|
* Turn most vc build scripts into modules instead of scripts, and just haveMagnus Hagander2007-03-17
| | | | | | | 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.
* SPI_cursor_open failed to enforce that only read-only queries could beTom Lane2007-03-17
| | | | | | | 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.
* Ooops, got only one of the two ArrayExpr variants correct in firstTom Lane2007-03-17
| | | | | | cut at exprTypmod support. Also, experimentation shows that we need to label the type of Const nodes that are numeric with a specific typmod.
* Fix up the remaining places where the expression node structure would loseTom Lane2007-03-17
| | | | | | | | | | | | | | 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.
* Add new columns for tuple statistics on a database level toMagnus Hagander2007-03-16
| | | | pg_stat_database.
* Fix race condition in parallel regression tests. The new plancache testTom Lane2007-03-16
| | | | | | | | 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.
* Remove undocumented support for copy syntax from before 7.3. Update comments toAndrew Dunstan2007-03-16
| | | | reflect syntax actually supported, e.g. by including CSV params.
* Show aggregate return types in psql \da output.Magnus Hagander2007-03-16
| | | | Greg Sabino Mullane
* Make use of plancache module for SPI plans. In particular, since plpgsqlTom Lane2007-03-15
| | | | | | | | | | | | 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.)
* Fix a longstanding bug in VACUUM FULL's handling of update chains. The codeTom Lane2007-03-14
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Arrange to install a "posixrules" entry in our timezone database, so thatTom Lane2007-03-14
| | | | | | | | | | | | | 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.
* Remove extra single-quotes copied from Unix build. Win32 doesn't stripMagnus Hagander2007-03-14
| | | | single quotes...
* Regression makefile now needs to make separate lists of what to cleanTom Lane2007-03-13
| | | | | | | 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.
* Rewrite win32 install documentation (it's not client only anymore, and it'sMagnus Hagander2007-03-13
| | | | | | 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.
* Reverted waiting for further fixes:Peter Eisentraut2007-03-13
| | | | | | | Make configuration parameters fall back to their default values when they are removed from the configuration file. Joachim Wieland
* Filter out warnings coming from the stylesheets, so that actual warnings ↵Magnus Hagander2007-03-13
| | | | | | show up properly. Show some minor progress messages.
* Set root of docbook stuff from buildenv.bat and not from builddoc.bat.Magnus Hagander2007-03-13
| | | | Fix calling for file renaming when cd:ed into a different directory.
* Properly use pg_strcasecmp() instead of strcasecmp().Magnus Hagander2007-03-13
| | | | Un-breaks win32 build.
* First phase of plan-invalidation project: create a plan cache managementTom Lane2007-03-13
| | | | | | | | | | | | | | | | 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.
* Make configuration parameters fall back to their default values when theyPeter Eisentraut2007-03-12
| | | | | | are removed from the configuration file. Joachim Wieland
* Make a run with perltidy to format the code. Per request from Andrew Dunstan.Magnus Hagander2007-03-12
|
* Fix a race condition that caused pg_database_size() and pg_tablespace_size()Alvaro Herrera2007-03-11
| | | | | | | | | 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.
* Add alternate result file for large object tests to handle Windows line ends.Andrew Dunstan2007-03-10
|
* Remove unsafe calling of WSAStartup and WSACleanup from DllMain. Move theMagnus Hagander2007-03-08
| | | | | | | inline cleanup call around so it will be called in the right order, and be called on errors. Per report from Tokuharu Yuzawa.
* Fix vac_update_relstats to ensure it always sends a relcache inval message,Tom Lane2007-03-08
| | | | | | | | 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.
* Cleanup the bootstrap code a little, and rename "dummy procs" in the codeAlvaro Herrera2007-03-07
| | | | comments and variables to "auxiliary proc", per Heikki's request.
* Fix oversight in original coding of inline_function(): sinceTom Lane2007-03-06
| | | | | | | | | | | | | | check_sql_fn_retval allows binary-compatibility cases, the expression extracted from an inline-able SQL function might have a type that is only binary-compatible with the declared function result type. To avoid possibly changing the semantics of the expression, we should insert a RelabelType node in such cases. This has only been shown to have bad consequences in recent 8.1 and up releases, but I suspect there may be failure cases in the older branches too, so patch it all the way back. Per bug #3116 from Greg Mullane. Along the way, fix an omission in eval_const_expressions_mutator: it failed to copy the relabelformat field when processing a RelabelType. No known observable failures from this, but it definitely isn't intended behavior.
* Add script to build documentation on win32 without mingwMagnus Hagander2007-03-06
|
* Revert temp_tablespaces because of coding problems, per Tom.Bruce Momjian2007-03-06
|
* Remove copied comments from geo_ops.c source file and replace with newBruce Momjian2007-03-05
| | | | | comments, and cleanup functions. Remove copyright that is no longer relevant.
* Remove old-style win32 client-only visual c++ build infrastructure for ↵Magnus Hagander2007-03-05
| | | | | | | everything except libpq. We need to keep libpq to build static libraries and to use PQtrace with clients using older versions of MSVC.
* Fix a typo in a comment. Heikki Linnakangas.Neil Conway2007-03-05
|
* Make the newly-added regression tests for lo_truncate() consistentNeil Conway2007-03-03
| | | | with the recent largeobject cosmetic fixes. Jeremy Drake.
* Cosmetic patch to large object regression test.Bruce Momjian2007-03-03
| | | | Jeremy Drake
* Split _bt_insertonpg to two functions.Bruce Momjian2007-03-03
| | | | Heikki Linnakangas