aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Sync our regex code with upstream changes since last time we did this, whichTom Lane2008-02-14
| | | | | | | | | | | | | was Tcl 8.4.8. The main changes are to remove the never-fully-implemented code for multi-character collating elements, and to const-ify some stuff a bit more fully. In combination with the recent security patch, this commit brings us into line with Tcl 8.5.0. Note that I didn't make any effort to duplicate a lot of cosmetic changes that they made to bring their copy into line with their own style guidelines, such as adding braces around single-line IF bodies. Most of those we either had done already (such as ANSI-fication of function headers) or there is no point because pgindent would undo the change anyway.
* - EXECUTE can return NOT FOUND so it should be checked here too.Michael Meskes2008-02-14
| | | | - Changed regression test accordingly.
* Sorry, accidently committed a patch I'm working on. Reverting it.Michael Meskes2008-02-14
| | | | | The only correct change was: - Added SQLSTATE macro closing bug #3961.
* *** empty log message ***Michael Meskes2008-02-14
|
* Update minor version bumping policy.Alvaro Herrera2008-02-13
|
* As sub-bullet decoration.Bruce Momjian2008-02-13
|
* Update wording for minor library bumping.Bruce Momjian2008-02-13
|
* Bump minor library version numbers for 8.4.Bruce Momjian2008-02-13
|
* No longer necessary:Bruce Momjian2008-02-13
| | | | o update ecpg regression expected files for new library number
* Stamp HEAD as 8.4devel.Tom Lane2008-02-13
|
* Fix SPI_cursor_open() and SPI_is_cursor_plan() to push the SPI stack beforeTom Lane2008-02-12
| | | | | | | | | | | | | | | | | | | | | doing anything interesting, such as calling RevalidateCachedPlan(). The necessity of this is demonstrated by an example from Willem Buitendyk: during a replan, the planner might try to evaluate SPI-using functions, and so we'd better be in a clean SPI context. A small downside of this fix is that these two functions will now fail outright if called when not inside a SPI-using procedure (ie, a SPI_connect/SPI_finish pair). The documentation never promised or suggested that that would work, though; and they are normally used in concert with other functions, mainly SPI_prepare, that always have failed in such a case. So the odds of breaking something seem pretty low. In passing, make SPI_is_cursor_plan's error handling convention clearer, and fix documentation's erroneous claim that SPI_cursor_open would return NULL on error. Before 8.3 these functions could not invoke replanning, so there is probably no need for back-patching.
* Update timezone mapping for Windows with new timezones addedMagnus Hagander2008-02-11
| | | | | in windows servicepacks. Fix timezone mapping for "Mexico 2"
* Repair VACUUM FULL bug introduced by HOT patch: the original way ofTom Lane2008-02-11
| | | | | | | | | | | | | | | | | | | calculating a page's initial free space was fine, and should not have been "improved" by letting PageGetHeapFreeSpace do it. VACUUM FULL is going to reclaim LP_DEAD line pointers later, so there is no need for a guard against the page being too full of line pointers, and having one risks rejecting pages that are perfectly good move destinations. This also exposed a second bug, which is that the empty_end_pages logic assumed that any page with no live tuples would get entered into the fraged_pages list automatically (by virtue of having more free space than the threshold in the do_frag calculation). This assumption certainly seems risky when a low fillfactor has been chosen, and even without tunable fillfactor I think it could conceivably fail on a page with many unused line pointers. So fix the code to force do_frag true when notup is true, and patch this part of the fix all the way back. Per report from Tomas Szepe.
* Fix PageGetExactFreeSpace() so that it actually behaves sensiblyTom Lane2008-02-10
| | | | | | if pd_lower > pd_upper, rather than merely claiming to. This would only matter if the page header were corrupt, which shouldn't occur, but ...
* Since GSSAPI and SSPI authentication don't work in protocol version 2,Tom Lane2008-02-08
| | | | | | issue a helpful error message instead of sending unparsable garbage. (It is clearly a design error that this doesn't work, but fixing it is not worth the trouble at this point.) Per discussion.
* Avoid misbehavior in foreign key checks when casting to a datatype for whichTom Lane2008-02-07
| | | | | | | | | | | the parser supplies a default typmod that can result in data loss (ie, truncation). Currently that appears to be only CHARACTER and BIT. We can avoid the problem by specifying the type's internal name instead of using SQL-spec syntax. Since the queries generated here are only used internally, there's no need to worry about portability. This problem is new in 8.3; before we just let the parser do whatever it wanted to resolve the operator, but 8.3 is trying to be sure that the semantics of FK checks are consistent. Per report from Harald Fuchs.
* Some variants of ALTER OWNER tried to make the "object" field of theTom Lane2008-02-07
| | | | | | | | | | statement be a list of bare C strings, rather than String nodes, which is what they need to be for copyfuncs/equalfuncs to work. Fortunately these node types never go out to disk (if they did, we'd likely have noticed the problem sooner), so we can just fix it without creating a need for initdb. This bug has been there since 8.0, but 8.3 exposes it in a more common code path (Parse messages) than prior releases did. Per bug #3940 from Vladimir Kokovic.
* Add missing copyfuncs/equalfuncs support for AlterTSDictionaryStmt andTom Lane2008-02-07
| | | | | | | AlterTSConfigurationStmt. All utility statement node types are expected to be supported here, though they do not have to have outfuncs/readfuncs support. Found by running regression tests with COPY_PARSE_PLAN_TREES enabled.
* Fix msvc install for cases where msgfmt (from gettext) is in a directoryMagnus Hagander2008-02-07
| | | | | | that contains spaces. Per complaint from Gevik Babakhani, like the last one.
* Fix silly mistake in expand_indexqual_rowcompare --- in converting a forboth()Tom Lane2008-02-07
| | | | | into an iteration over three parallel lists, I had accidentally put the lnext steps outside the loop. Sigh. Per bug #3938.
* Fix CREATE TABLE ... LIKE ... INCLUDING INDEXES to not cause unwantedTom Lane2008-02-07
| | | | | | | | | | | tablespace permissions failures when copying an index that is in the database's default tablespace. A side-effect of the change is that explicitly specifying the default tablespace no longer triggers a permissions check; this is not how it was done in pre-8.3 releases but is argued to be more consistent. Per bug #3921 from Andrew Gilligan. (Note: I argued in the subsequent discussion that maybe LIKE shouldn't copy index tablespaces at all, but since no one indicated agreement with that idea, I've refrained from doing it.)
* Fix msvc install script to properly install NLS files when built withMagnus Hagander2008-02-07
| | | | gettext.
* - Fixed segfault in ecpg when using an array element.Michael Meskes2008-02-07
| | | | - Free all memory in auto-prepare mode.
* Fix very broken clean.bat for msvc install. The way we used subroutinesMagnus Hagander2008-02-06
| | | | | | | | | | | | | in .bat simply did not work, and it called them in the wrong order, some several times, and some not at all. So this unrolls all subroutine calls. This should fix the issues with clean deleting the wrong files reported by Dave Page. While at it, add the "clean dist" option to act like "make distclean", and no longer remove the flex/bison output files by default. This shuold fix the problem reported by Pavel Golub in bug #3909.
* Handle libraries in directories with spaces in them.Magnus Hagander2008-02-05
| | | | Gevik Babakhani
* Fix WaitOnLock() to ensure that the process's "waiting" flag is reset afterTom Lane2008-02-02
| | | | | | | | | | | | | erroring out of a wait. We can use a PG_TRY block for this, but add a comment explaining why it'd be a bad idea to use it for any other state cleanup. Back-patch to 8.2. Prior releases had the same issue, but only with respect to the process title, which is likely to get reset almost immediately anyway after the transaction aborts, so it seems not worth changing them. In 8.2 and HEAD, the pg_stat_activity "waiting" flag could remain set incorrectly for a long time. Per report from Gurjeet Singh.
* Stamp 8.3 in CVS. _No_ update of configure/configure.in.Bruce Momjian2008-02-01
|
* Fix pg_GSS_error to use conn->errorMessage more sanely, ie, actuallyTom Lane2008-01-31
| | | | | | work with the PQExpBuffer code instead of fighting it. This avoids an unnecessary limit on message length and fixes the latent bug that errorMessage.len wasn't getting set.
* Translation updatesPeter Eisentraut2008-01-31
|
* Remove 3 hex digit limit on symbol number in recent fix.Andrew Dunstan2008-01-31
|
* Add pid to the pgident event name on win32.Magnus Hagander2008-01-31
| | | | | | | | | Should fix a problem where two clusters are running under two different service accounts and get colliding names, causing only the first cluster to contain the pgident event description. Per report from Stephen Denne.
* Fix test that wrongly excluded some dumpbin symbols.Andrew Dunstan2008-01-31
| | | | Keep the intermediate symbol file rather then blowing it away, for easier debugging.
* Add checks to TRUNCATE, CLUSTER, and REINDEX to prevent performing theseTom Lane2008-01-30
| | | | | | | | | | | | | | | | | | operations when the current transaction has any open references to the target relation or index (implying it has an active query using the relation). The need for this was previously recognized in connection with ALTER TABLE, but anything that summarily eliminates tuples or moves them around would confuse an active scan. While this patch does not in itself fix bug #3883 (the deadlock would happen before the new check fires), it will discourage people from attempting the sequence of operations that creates a deadlock risk, so it's at least a partial response to that problem. In passing, add a previously-missing check to REINDEX to prevent trying to reindex another backend's temp table. This isn't a security problem since only a superuser would get past the schema permission checks, but if we are testing for this in other utility commands then surely REINDEX should too.
* Add a GUC variable "synchronize_seqscans" to allow clients to disable the newTom Lane2008-01-30
| | | | | synchronized-scanning behavior, and make pg_dump disable sync scans so that it will reliably preserve row ordering. Per recent discussions.
* Translation updatesPeter Eisentraut2008-01-30
|
* Don't putenv() a string that is allocated in a context that will go awayTom Lane2008-01-30
| | | | | soon. I suspect this explains bug #3902, though I'm still not able to reproduce that.
* Fix up closePGconn() so that PQreset() will work on GSSAPI/SSPI connections;Tom Lane2008-01-29
| | | | | | | the patch for those features put its cleanup code into freePGconn() which is really the wrong place. Remove redundant code from freePGconn() and add comments in hopes of preventing similar mistakes in future. Noticed while trying (futilely) to reproduce bug #3902.
* Arrange to ignore SIGPIPE during SSL_read() and SSL_shutdown(), as theseTom Lane2008-01-29
| | | | | | | | | are known to write on the socket sometimes and thus we are vulnerable to being killed by the signal if the server happens to go away unexpectedly. Noticed while trying (futilely) to reproduce bug #3902. This bug has been there all along, but since the situation is usually only of interest to developers, I chose not to back-patch the changes.
* Minor editorial improvements in documentation of session_replication_role;Tom Lane2008-01-27
| | | | | in particular correct the obsolete claim that it can't be changed once any plans have been cached.
* Change StatementCancelHandler() to check the DoingCommandRead flag to decideTom Lane2008-01-26
| | | | | | | | | | | | | | | | | | whether to execute an immediate interrupt, rather than testing whether LockWaitCancel() cancelled a lock wait. The old way misclassified the case where we were blocked in ProcWaitForSignal(), and arguably would misclassify any other future additions of new ImmediateInterruptOK states too. This allows reverting the old kluge that gave LockWaitCancel() a return value, since no callers care anymore. Improve comments in the various implementations of PGSemaphoreLock() to explain that on some platforms, the assumption that semop() exits after a signal is wrong, and so we must ensure that the signal handler itself throws elog if we want cancel or die interrupts to be effective. Per testing related to bug #3883, though this patch doesn't solve those problems fully. Perhaps this change should be back-patched, but since pre-8.3 branches aren't really relying on autovacuum to respond to SIGINT, it doesn't seem critical for them.
* Fix two different copy-and-paste-os in CSV log rotation logic; one that led toTom Lane2008-01-25
| | | | | | a double-pfree crash and another that effectively disabled size-based rotation for CSV logs. Also suppress a memory leak and make some trivial cosmetic improvements. Per bug #3901 from Chris Hoover and additional code-reading.
* Release any detoasted copies of arrays that are made temporarily inTom Lane2008-01-25
| | | | | | | | | ri_FetchConstraintInfo, to avoid a query-duration memory leak when that routine is called by RI_FKey_keyequal_upd_fk (which isn't executed in a short-lived context). This problem was latent when the routine was added in February, but it didn't become serious until the varvarlena patch made it quite likely that the fields being examined would be "toasted" (ie, have short headers). Per report from Stephen Denne.
* Change /contrib to contrib for consistency.Peter Eisentraut2008-01-24
|
* Prevent integer overflow within the integer-datetimes version ofTom Lane2008-01-23
| | | | | | | | TimestampTzPlusMilliseconds. An integer argument of more than INT_MAX/1000 milliseconds (ie, about 35 minutes) would provoke a wrong result, resulting in incorrect enforcement of statement_timestamp values larger than that. Bug was introduced in my rewrite of 2006-06-20, which fixed some other overflow risks, but missed this one :-( Per report from Elein.
* Improve lock level choices in pg_shdepend.c. Noticed by Tom Lane.Alvaro Herrera2008-01-23
|
* Document the fix for perl 5.10 with this comment:Andrew Dunstan2008-01-23
| | | | | | | * The temporary enabling of the caller opcode here is to work around a * bug in perl 5.10, which unkindly changed the way its Safe.pm works, without * notice. It is quite safe, as caller is informational only, and in any case * we only enable it while we load the 'strict' module.
* Work around for perl 5.10 bug - fix due to perl hacker Simon Cozens.Andrew Dunstan2008-01-22
|
* Provide a clearer error message if the pg_control version number looksPeter Eisentraut2008-01-21
| | | | wrong because of mismatched byte ordering.
* Fix RS_isRegis() to agree exactly with RS_compile()'s idea of what's a validTom Lane2008-01-21
| | | | | | | regis. Correct the latter's oversight that a bracket-expression needs to be terminated. Reduce the ereports to elogs, since they are now not expected to ever be hit (thus addressing Alvaro's original complaint). In passing, const-ify the string argument to RS_compile.
* Fix psql \h output for case of no parameters (ie, list all the known commands)Tom Lane2008-01-20
| | | | | | | to format properly for the actually needed column width, instead of having a hard-wired assumption about the longest command name length. Also make it respond to the current screen width. In passing, const-ify the constant table.