summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2006-11-06Remove temporary Windows-specific debugging code; it seems the problemTom Lane
with fopen() not using FILE_SHARE_DELETE was indeed the bug we were after, given lack of recent reports.
2006-11-06Revert to the pre-8.2 method of probing for libm, that is, alwaysTom Lane
include it if it links properly. It seems too risky to assume that standard functions like pow() are not special-cased by the compiler. Per report from Andreas Lange that build fails on Solaris cc compiler with -fast. Even though we don't consider that a supported option, I'm worried that similar issues will arise with other compilers.
2006-11-06Get rid of some unnecessary dependencies on DataDir: wherever possible,Tom Lane
the backend should rely on its working-directory setting instead. Also do some message-style police work in contrib/adminpack.
2006-11-06Minor fix for LDAP authentication: if an error occurs, we need toNeil Conway
manually release the LDAP handle via ldap_unbind(). This isn't a significant problem in practice because an error eventually results in exiting the process, but we can cleanup correctly without too much pain. In passing, fix an error in snprintf() usage: the "size" parameter to snprintf() is the size of the destination buffer, including space for the NUL terminator. Also, depending on the value of NAMEDATALEN, the old coding could have allowed for a buffer overflow.
2006-11-05Fix recently-identified PITR recovery hazard: the base backup could containTom Lane
stale relcache init files (pg_internal.init), and there is no mechanism for updating them during WAL replay. Easiest solution is just to delete the init files at conclusion of startup, and let the first backend started in each database take care of rebuilding the init file. Simon Riggs and Tom Lane. Back-patched to 8.1. Arguably this should be fixed in 8.0 too, but it would require significantly more code since 8.0 has no handy startup-time scan of pg_database to piggyback on. Manual solution of the problem is possible in 8.0 (just delete the pg_internal.init files before starting WAL replay), so that may be a sufficient answer.
2006-11-05Fix recently-understood problems with handling of XID freezing, particularlyTom Lane
in PITR scenarios. We now WAL-log the replacement of old XIDs with FrozenTransactionId, so that such replacement is guaranteed to propagate to PITR slave databases. Also, rather than relying on hint-bit updates to be preserved, pg_clog is not truncated until all instances of an XID are known to have been replaced by FrozenTransactionId. Add new GUC variables and pg_autovacuum columns to allow management of the freezing policy, so that users can trade off the size of pg_clog against the amount of freezing work done. Revise the already-existing code that forces autovacuum of tables approaching the wraparound point to make it more bulletproof; also, revise the autovacuum logic so that anti-wraparound vacuuming is done per-table rather than per-database. initdb forced because of changes in pg_class, pg_database, and pg_autovacuum catalogs. Heikki Linnakangas, Simon Riggs, and Tom Lane.
2006-11-01Fix "failed to re-find parent key" btree VACUUM failure by revising pageTom Lane
deletion code to avoid the case where an upper-level btree page remains "half dead" for a significant period of time, and to block insertions into a key range that is in process of being re-assigned to the right sibling of the deleted page's parent. This prevents the scenario reported by Ed L. wherein index keys could become out-of-order in the grandparent index level. Since this is a moderately invasive fix, I'm applying it only to HEAD. The bug exists back to 7.4, but the back branches will get a different patch.
2006-11-01pg_restore failed on tar-format archives if they contained large objectsTom Lane
(blobs) with comments, per bug #2727 from Konstantin Pelepelin. Mea culpa for not having tested this case. Back-patch to 8.1; prior branches don't dump blob comments at all.
2006-11-01Update zic database to tzdata2006n.Tom Lane
2006-10-25expression_tree_walker failed to let walker function see the immediate childTom Lane
node of a SubLink or SubPlan testexpr field. Bug resulted from replacing the old lefthand/exprs list fields with a simple expression field, and not remembering that expression_tree_walker is coded to save a few cycles by recursing directly to self on list fields (on the assumption the walker isn't interested in List nodes per se). On non-list fields it must of course call the walker. Possibly that hack isn't worth the risk of more such bugs, but I'll leave it be for now. Per bug report from James Robinson.
2006-10-24Fix check for whether a clauseless join has to be forced in the presence ofTom Lane
outer joins. Originally it was only looking for overlap of the righthand side of a left join, but we have to do it on the lefthand side too. Per example from Jean-Pierre Pelletier.
2006-10-24Tweak zic.c to compile cleanly on MSVC: use CopyFile instead ofTom Lane
CopyFileEx. This avoids a warning about the function not being present on older Windows versions. Magnus Hagander
2006-10-23Stamp 8.2beta2.REL8_2_BETA2Tom Lane
2006-10-23Small parser syncMichael Meskes
2006-10-22Remove an unnecessary HOLD_INTERRUPTS/RESUME_INTERRUPTS pair.Tom Lane
This was required back when RESUME_INTERRUPTS could actually execute ProcessInterrupts, but that hasn't been true since 2001...
2006-10-22Various MSVC build fixes from Magnus; also remove stray WindowsTom Lane
newlines.
2006-10-21Translations updatePeter Eisentraut
2006-10-19Try to fix the AIX getaddrinfo mess in a way that works on all versions.Tom Lane
Going to wait for buildfarm results before backpatching, this time.
2006-10-19Marginal improvement in logging: include the function name when loggingTom Lane
a fastpath function call.
2006-10-19Rename our substitute qsort to pg_qsort at the link-symbol level (butTom Lane
provide a macro so code can still just say qsort). Avoids linker warnings on pickier platforms such as Darwin, and outright failure on MSVC.
2006-10-19Add externs for optarg/optind where apparently needed. Per Magnus.Tom Lane
2006-10-19Further MSVC portability fixes from Magnus.Tom Lane
2006-10-19Fix a couple of places that were assuming debug_query_string couldn'tTom Lane
be NULL ... seems an unsafe assumption.
2006-10-19Make sure that debug_query_string contains the original query text,Tom Lane
if available (which it usually should be), during processing of Bind and Execute protocol messages. This improves usefulness of log_min_error_statement logging for extended query protocol.
2006-10-19Clean up local redeclarations of variables with DLLIMPORT, per reportTom Lane
from Magnus that MSVC complains about this.
2006-10-19Work around reported problem that AIX's getaddrinfo() doesn't seem to zeroTom Lane
sin_port in the returned IP address struct when servname is NULL. This has been observed to cause failure to bind the stats collection socket, and could perhaps cause other issues too. Per reports from Brad Nicholson and Chris Browne.
2006-10-18Add some code to CREATE DATABASE to check for pre-existing subdirectoriesTom Lane
that conflict with the OID that we want to use for the new database. This avoids the risk of trying to remove files that maybe we shouldn't remove. Per gripe from Jon Lapham and subsequent discussion of 27-Sep.
2006-10-18Fix up timetz input so that a date is required only when the specifiedTom Lane
timezone actually has a daylight-savings rule. This avoids breaking cases that used to work because they went through the DecodePosixTimezone code path. Per contrib regression failures (mea culpa for not running those yesterday...). Also document the already-applied change to allow GMT offsets up to 14 hours.
2006-10-17Fix up some problems in handling of zic-style time zone names in datetimeTom Lane
input routines. Remove the former "DecodePosixTimezone" function in favor of letting the zic code handle POSIX-style zone specs (see tzparse()). In particular this means that "PST+3" now means the same as "-03", whereas it used to mean "-11" --- the zone abbreviation is effectively just a noise word in this syntax. Make sure that all named and POSIX-style zone names will be parsed as a single token. Fix long-standing bogosities in printing and input of fractional-hour timezone offsets (since the tzparse() code will accept these, we'd better make 'em work). Also correct an error in the original coding of the zic-zone-name patch: in "timestamp without time zone" input, zone names are supposed to be allowed but ignored, but the coding was such that the zone changed the interpretation anyway.
2006-10-17Fix unexpected side-effect of changes for case insensitivity of timezone names.Tom Lane
2006-10-16Remove use of whrandom module, which was removed in Python 2.5.Peter Eisentraut
2006-10-16Arrange for timezone names to be recognized case-insensitively; forTom Lane
example SET TIME ZONE 'america/new_york' works now. This seems a good idea on general user-friendliness grounds, and is part of the solution to the timestamp-input parsing problems I noted recently.
2006-10-16Remove use of '<' and '>' in SGML, use '&' escapes.Bruce Momjian
Update find_gt_lt to allow grep parameters to be passed into it.
2006-10-15Redesign the patch for allocation of shmem space and LWLocks for add-onTom Lane
modules; the first try was not usable in EXEC_BACKEND builds (e.g., Windows). Instead, just provide some entry points to increase the allocation requests during postmaster start, and provide a dedicated LWLock that can be used to synchronize allocation operations performed by backends. Per discussion with Marc Munro.
2006-10-15Adjust plperl to ensure that all strings and hash keys passed to PerlTom Lane
are marked as UTF8 when the database encoding is UTF8. This should avoid inconsistencies like that exhibited in bug #2683 from Vitali Stupin.
2006-10-14Code review for --no-data-for-failed-tables patch. Instead of trashingTom Lane
one of the program's core data structures, make use of the existing ability to selectively exclude TOC items by ID. Slightly more code but much less likely to create future maintenance problems.
2006-10-13Code and docs review for ALTER TABLE INHERIT/NO INHERIT patch.Tom Lane
2006-10-13Fix test_fsync compile on MinGW(win32)Bruce Momjian
Hiroshi Saito
2006-10-13Fix infinite sleep and failes of send in Win32.Teodor Sigaev
1) pgwin32_waitforsinglesocket(): WaitForMultipleObjectsEx now called with finite timeout (100ms) in case of FP_WRITE and UDP socket. If timeout occurs then pgwin32_waitforsinglesocket() tries to write empty packet goes to WaitForMultipleObjectsEx again. 2) pgwin32_send(): add loop around WSASend and pgwin32_waitforsinglesocket(). The reason is: for overlapped socket, 'ok' result from pgwin32_waitforsinglesocket() isn't guarantee that socket is still free, it can become busy again and following WSASend call will fail with WSAEWOULDBLOCK error. See http://archives.postgresql.org/pgsql-hackers/2006-10/msg00561.php
2006-10-12Fix mishandling of after-trigger state when a SQL function returns multipleTom Lane
rows --- if the surrounding query queued any trigger events between the rows, the events would be fired at the wrong time, leading to bizarre behavior. Per report from Merlin Moncure. This is a simple patch that should solve the problem fully in the back branches, but in HEAD we also need to consider the possibility of queries with RETURNING clauses. Will look into a fix for that separately.
2006-10-12Use Min() instead of min() in qsort, for consistency and to avoidTom Lane
redefined-macro warnings on some platforms. Per gripe from Hiroshi Saito.
2006-10-12Remove somebody's ill-considered free() call, per report from Chander Ganesan.Tom Lane
No, I do not care whether Coverity considers this a memory leak. It's entirely not worth the code space to do it correctly.
2006-10-11Update pg_hba.conf comment about documentation section.Bruce Momjian
2006-10-11Repair incorrect check for coercion of unknown literal to ANYARRAY, a bugTom Lane
I introduced in 7.4.1 :-(. It's correct to allow unknown to be coerced to ANY or ANYELEMENT, since it's a real-enough data type, but it most certainly isn't an array datatype. This can cause a backend crash but AFAICT is not exploitable as a security hole. Per report from Michael Fuhr. Note: as fixed in HEAD, this changes a constant in the pg_stats view, resulting in a change in the expected regression outputs. The back-branch patches have been hacked to avoid that, so that pre-existing installations won't start failing their regression tests.
2006-10-11Code review for LIKE INCLUDING CONSTRAINTS patch --- improve comments,Tom Lane
don't cheat on the raw-vs-cooked status of a constraint.
2006-10-10MSVC/BCC Win32 compiler fixes.Bruce Momjian
Hiroshi Saito
2006-10-10Typo fix.Bruce Momjian
2006-10-10Add release checklist item:Bruce Momjian
o copy FAQs from HEAD to top-most branches
2006-10-09Revise psql pattern-matching switches as per discussion. The rule is nowTom Lane
to process all inclusion switches then all exclusion switches, so that the behavior is independent of switch ordering. Use of -T does not cause non-table objects to be suppressed. And the patterns are now interpreted the same way psql's \d commands do it, rather than as pure regex commands; this allows for example -t schema.tab to do what it should have been doing all along. Re-enable the --blobs switch to do something useful, ie, add back blobs into a dump they were otherwise suppressed from.
2006-10-09Move processNamePattern into dumputils.c in preparation for using it inTom Lane
pg_dump as well as psql. Since psql already uses dumputils.c, while there's not any code sharing in the other direction, this seems the easiest way. Also, fix misinterpretation of patterns using regex | by adding parentheses (same bug found previously in similar_escape()). This should be backpatched.