aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* remove duplicate declaration, per report from Magnus Hagander.Andrew Dunstan2006-11-21
|
* If SSL negotiation fails and SSLMODE is 'prefer', then retry without SSL.Tom Lane2006-11-21
| | | | | | | Negotiation failure is only likely to happen if one side or the other is misconfigured, eg. bad client certificate. I'm not 100% convinced that a retry is really the best thing, hence not back-patching this fix for now. Per gripe from Sergio Cinos.
* Change the default setting for log_min_error_statement to ERROR. PerTom Lane2006-11-21
| | | | | recent discussion in which majority opinion was that this is a more widely useful setting than the previous default of PANIC.
* Adjust elog.c so that elog(FATAL) exits (including cases where ERROR isTom Lane2006-11-21
| | | | | | | | | | | | | | | | promoted to FATAL) end in exit(1) not exit(0). Then change the postmaster to allow exit(1) without a system-wide panic, but not for the startup subprocess or the bgwriter. There were a couple of places that were using exit(1) to deliberately force a system-wide panic; adjust these to be exit(2) instead. This fixes the problem noted back in July that if the startup process exits with elog(ERROR), the postmaster would think everything is hunky-dory and proceed to start up. Alternative solutions such as trying to run the entire startup process as a critical section seem less clean, primarily because of the fact that a fair amount of startup code is shared by all postmaster children in the EXEC_BACKEND case. We'd need an ugly special case somewhere near the head of main.c to make it work if it's the child process's responsibility to determine what happens; and what's the point when the postmaster already treats different children differently?
* More MSVC build fixes:Tom Lane2006-11-20
| | | | | | | | | | | | | | | | | * New versions of OpenSSL come with proper debug versions, and use suffixed names on the LIBs for that. Adapts library handling to deal with that. * Fixes error where it incorrectly enabled Kerberos based on NLS configuration instead of Kerberos configuration * Specifies path of perl in config, instead of using current one. Required when using a 64-bit perl normally, but want to build pl/perl against 32-bit one (required) * Fix so pgevent generates win32ver.rc automatically Magnus Hagander
* When truncating a relation in-place (eg during VACUUM), do not try to unlinkTom Lane2006-11-20
| | | | | | | | | | | | | any no-longer-needed segments; just truncate them to zero bytes and leave the files in place for possible future re-use. This avoids problems when the segments are re-used due to relation growth shortly after truncation. Before, the bgwriter, and possibly other backends, could still be holding open file references to the old segment files, and would write dirty blocks into those files where they'd disappear from the view of other processes. Back-patch as far as 8.0. I believe the 7.x branches are not vulnerable, because they had no bgwriter, and "blind" writes by other backends would always be done via freshly-opened file references.
* Repair problems with hash indexes that span multiple segments: the hash code'sTom Lane2006-11-19
| | | | | | | | | | | | | | | | | | preference for filling pages out-of-order tends to confuse the sanity checks in md.c, as per report from Balazs Nagy in bug #2737. The fix is to ensure that the smgr-level code always has the same idea of the logical EOF as the hash index code does, by using ReadBuffer(P_NEW) where we are adding a single page to the end of the index, and using smgrextend() to reserve a large batch of pages when creating a new splitpoint. The patch is a bit ugly because it avoids making any changes in md.c, which seems the most prudent approach for a backpatchable beta-period fix. After 8.3 development opens, I'll take a look at a cleaner but more invasive patch, in particular getting rid of the now unnecessary hack to allow reading beyond EOF in mdread(). Backpatch as far as 7.4. The bug likely exists in 7.3 as well, but because of the magnitude of the 7.3-to-7.4 changes in hash, the later-version patch doesn't even begin to apply. Given the other known bugs in the 7.3-era hash code, it does not seem worth trying to develop a separate patch for 7.3.
* Repair two related errors in heap_lock_tuple: it was failing to recognizeTom Lane2006-11-17
| | | | | | | | | cases where we already hold the desired lock "indirectly", either via membership in a MultiXact or because the lock was originally taken by a different subtransaction of the current transaction. These cases must be accounted for to avoid needless deadlocks and/or inappropriate replacement of an exclusive lock with a shared lock. Per report from Clarence Gardner and subsequent investigation.
* Small message equalization fixPeter Eisentraut2006-11-17
|
* Message fixPeter Eisentraut2006-11-16
|
* String fixPeter Eisentraut2006-11-16
|
* Force plperl and plperlu to run in separate interpreters. Create an errorAndrew Dunstan2006-11-13
| | | | | on an attempt to create the second interpreter if this is not supported by the perl installation. Per recent -hackers discussion.
* Fix some typos in comments.Neil Conway2006-11-12
|
* Suppress a few 'uninitialized variable' warnings that gcc emits only atTom Lane2006-11-11
| | | | | -O3 or higher (presumably because it inlines more things). Per gripe from Mark Mielke.
* Fix pg_get_serial_sequence(), which could incorrectly return the nameTom Lane2006-11-10
| | | | | | of an index on a serial column, rather than the name of the associated sequence. Fallout from recent changes in dependency setup for serials. Per bug #2732 from Basil Evseenko.
* Clean up some misleading references to %p being a full path, per Simon.Tom Lane2006-11-10
|
* Fix errors in key_column_usage.position_in_unique_constraint column recentlyTom Lane2006-11-10
| | | | | | | | | | | | | added to information_schema (per a SQL2003 addition). The original coding failed if a referenced column participated in more than one pg_constraint entry. Also, it did not work if an FK relied directly on a unique index without any constraint syntactic sugar --- this case is outside the SQL spec, but PG has always supported it, so it's reasonable for our information_schema to handle it too. Per bug#2750 from Stephen Haberman. Although this patch changes the initial catalog contents, I didn't force initdb. Any beta3 testers who need the fix can install it via CREATE OR REPLACE VIEW, so forcing them to initdb seems an unnecessary imposition.
* Fix set_joinrel_size_estimates() to estimate outer-join sizes moreTom Lane2006-11-10
| | | | | | | accurately: we have to distinguish the effects of the join's own ON clauses from the effects of pushed-down clauses. Failing to do so was a quick hack long ago, but it's time to be smarter. Per example from Thomas H.
* Change Windows rename and unlink substitutes so that they time out afterTom Lane2006-11-08
| | | | | | | | 30 seconds instead of retrying forever. Also modify xlog.c so that if it fails to rename an old xlog segment up to a future slot, it will unlink the segment instead. Per discussion of bug #2712, in which it became apparent that Windows can handle unlinking a file that's being held open, but not renaming it.
* Modify aset.c to track the next intended block allocation size explicitly.Tom Lane2006-11-08
| | | | | | | | The former coding relied on the actual allocated size of the last block, which made it behave strangely if the first allocation in a context was larger than ALLOC_CHUNK_LIMIT: subsequent allocations would be referenced to that and not to the intended series of block sizes. Noted while studying a memory wastage gripe from Tatsuo.
* Tweak accumArrayResult() to double the size of its working arrays whenTom Lane2006-11-08
| | | | | | more space is needed, instead of incrementing by a fixed amount; the old method wastes lots of space and time when the ultimate size is large. Per gripe from Tatsuo.
* Fix performance issues in replace_text(), replace_text_regexp(), andTom Lane2006-11-08
| | | | | | | | | | text_to_array(): they all had O(N^2) behavior on long input strings in multibyte encodings, because of repeated rescanning of the input text to identify substrings whose positions/lengths were computed in characters instead of bytes. Fix by tracking the current source position as a char pointer as well as a character-count. Also avoid some unnecessary palloc operations. text_to_array() also leaked memory intracall due to failure to pfree temporary strings. Per gripe from Tatsuo Ishii.
* Applied patch by Peter Harris to free auto_mem structure on connectMichael Meskes2006-11-08
|
* Fix a memory leak in psql: we'd leak a few PGresult handles ifNeil Conway2006-11-08
| | | | | | a connectivity error occurred while executing one of the queries for "\d <table>". Not serious, but still worth fixing. Patch from Brendan Jurd.
* Remove a 15-year old comment questioning behavior that is now well-Neil Conway2006-11-08
| | | | | established: referencing an undefined parameter should result in an error, not NULL.
* Tag as Beta3 ... two outstanding *known* bugs before RC1 ...REL8_2_BETA3PostgreSQL Daemon2006-11-07
|
* Repair bug #2694 concerning an ARRAY[] construct whose inputs are emptyTom Lane2006-11-06
| | | | | | | | | | sub-arrays. Per discussion, if all inputs are empty arrays then result must be an empty array too, whereas a mix of empty and nonempty arrays should (and already did) draw an error. In the back branches, the construct was strict: any NULL input immediately yielded a NULL output; so I left that behavior alone. HEAD was simply ignoring NULL sub-arrays, which doesn't seem very sensible. For lack of a better idea it now treats NULL sub-arrays the same as empty ones.
* Remove temporary Windows-specific debugging code; it seems the problemTom Lane2006-11-06
| | | | | with fopen() not using FILE_SHARE_DELETE was indeed the bug we were after, given lack of recent reports.
* Revert to the pre-8.2 method of probing for libm, that is, alwaysTom Lane2006-11-06
| | | | | | | | 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.
* Get rid of some unnecessary dependencies on DataDir: wherever possible,Tom Lane2006-11-06
| | | | | the backend should rely on its working-directory setting instead. Also do some message-style police work in contrib/adminpack.
* Minor fix for LDAP authentication: if an error occurs, we need toNeil Conway2006-11-06
| | | | | | | | | | | | 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.
* Fix recently-identified PITR recovery hazard: the base backup could containTom Lane2006-11-05
| | | | | | | | | | | | | 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.
* Fix recently-understood problems with handling of XID freezing, particularlyTom Lane2006-11-05
| | | | | | | | | | | | | | | 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.
* Fix "failed to re-find parent key" btree VACUUM failure by revising pageTom Lane2006-11-01
| | | | | | | | | | | 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.
* pg_restore failed on tar-format archives if they contained large objectsTom Lane2006-11-01
| | | | | | (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.
* Update zic database to tzdata2006n.Tom Lane2006-11-01
|
* expression_tree_walker failed to let walker function see the immediate childTom Lane2006-10-25
| | | | | | | | | | 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.
* Fix check for whether a clauseless join has to be forced in the presence ofTom Lane2006-10-24
| | | | | | 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.
* Tweak zic.c to compile cleanly on MSVC: use CopyFile instead ofTom Lane2006-10-24
| | | | | CopyFileEx. This avoids a warning about the function not being present on older Windows versions. Magnus Hagander
* Stamp 8.2beta2.REL8_2_BETA2Tom Lane2006-10-23
|
* Small parser syncMichael Meskes2006-10-23
|
* Remove an unnecessary HOLD_INTERRUPTS/RESUME_INTERRUPTS pair.Tom Lane2006-10-22
| | | | | This was required back when RESUME_INTERRUPTS could actually execute ProcessInterrupts, but that hasn't been true since 2001...
* Various MSVC build fixes from Magnus; also remove stray WindowsTom Lane2006-10-22
| | | | newlines.
* Translations updatePeter Eisentraut2006-10-21
|
* Try to fix the AIX getaddrinfo mess in a way that works on all versions.Tom Lane2006-10-19
| | | | Going to wait for buildfarm results before backpatching, this time.
* Marginal improvement in logging: include the function name when loggingTom Lane2006-10-19
| | | | a fastpath function call.
* Rename our substitute qsort to pg_qsort at the link-symbol level (butTom Lane2006-10-19
| | | | | provide a macro so code can still just say qsort). Avoids linker warnings on pickier platforms such as Darwin, and outright failure on MSVC.
* Add externs for optarg/optind where apparently needed. Per Magnus.Tom Lane2006-10-19
|
* Further MSVC portability fixes from Magnus.Tom Lane2006-10-19
|
* Fix a couple of places that were assuming debug_query_string couldn'tTom Lane2006-10-19
| | | | be NULL ... seems an unsafe assumption.