aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Allow drop-index-concurrently-1 test to run at any isolation level.Kevin Grittner2013-10-08
| | | | | It previously reported failure at REPEATABLE READ and SERIALIZABLE transaction isolation levels for make installcheck.
* Update postgres.conf.sample for effective_cache_size's new defaultBruce Momjian2013-10-08
|
* Auto-tune effective_cache size to be 4x shared buffersBruce Momjian2013-10-08
|
* Additional instructions on minor release note creation.Bruce Momjian2013-10-08
|
* Update instructions on creating minor release notes.Bruce Momjian2013-10-08
|
* TYPEALIGN doesn't work on int64 on 32-bit platforms.Heikki Linnakangas2013-10-08
| | | | | | | | | | | | | | The TYPEALIGN macro, and the related ones like MAXALIGN, don't work with values larger than intptr_t, because TYPEALIGN casts the argument to intptr_t to do the arithmetic. That's not a problem when dealing with pointers or lengths or offsets related to pointers, but the XLogInsert scaling patch added a call to MAXALIGN with an XLogRecPtr argument. To fix, add wider variants of the macros, called TYPEALIGN64 and MAXALIGN64, which are just like the existing variants but work with uint64 instead of intptr_t. Report and patch by David Rowley, analysis by Andres Freund.
* Fix bugs in SSI tuple locking.Heikki Linnakangas2013-10-08
| | | | | | | | | | | | | 1. In heap_hot_search_buffer(), the PredicateLockTuple() call is passed wrong offset number. heapTuple->t_self is set to the tid of the first tuple in the chain that's visited, not the one actually being read. 2. CheckForSerializableConflictIn() uses the tuple's t_ctid field instead of t_self to check for exiting predicate locks on the tuple. If the tuple was updated, but the updater rolled back, t_ctid points to the aborted dead tuple. Reported by Hannu Krosing. Backpatch to 9.1.
* Translation updatesPeter Eisentraut2013-10-07
|
* Make DISCARD SEQUENCES also discard the last used sequence.Robert Haas2013-10-07
| | | | | | Otherwise, we access already-freed memory. Oops. Report by Michael Paquier. Fix by me.
* plpgsql: Add new option print_strict_params.Robert Haas2013-10-07
| | | | | | | This option provides more detailed error messages when STRICT is used and the number of rows returned is not one. Marko Tiikkaja, reviewed by Ian Lawrence Barwick
* Eliminate xmin from hash tag for predicate locks on heap tuples.Kevin Grittner2013-10-07
| | | | | | | | | | | | | | | | If a tuple was frozen while its predicate locks mattered, read-write dependencies could be missed, resulting in failure to detect conflicts which could lead to anomalies in committed serializable transactions. This field was added to the tag when we still thought that it was necessary to carry locks forward to a new version of an updated row. That was later proven to be unnecessary, which allowed simplification of the code, but elimination of xmin from the tag was missed at the time. Per report and analysis by Heikki Linnakangas. Backpatch to 9.1.
* Fix various bugs in postmaster SIGKILL processingAlvaro Herrera2013-10-05
| | | | | | | | | | | | | | | | Clamp the minimum sleep time during immediate shutdown or crash to a minimum of zero, not a maximum of one second. The previous code could result in a negative sleep time, leading to failure in select() calls. Also, on crash recovery, reset AbortStartTime as soon as SIGKILL is sent or abort processing has commenced instead of waiting until the startup process completes. Reset AbortStartTime as soon as SIGKILL is sent, too, to avoid doing that repeatedly. Per trouble report from Jeff Janes on CAMkU=1xd3=wFqZwwuXPWe4BQs3h1seYo8LV9JtSjW5RodoPxMg@mail.gmail.com Author: MauMau
* add multixact-no-deadlock to scheduleAlvaro Herrera2013-10-04
|
* Make some isolationtester specs more completeAlvaro Herrera2013-10-04
| | | | Also, make sure they pass on all transaction isolation levels.
* isolationtester: Allow tuples to be returned in more placesAlvaro Herrera2013-10-04
| | | | | | Previously, isolationtester would forbid returning tuples in session-specific teardown (but not global teardown), as well as in global setup. Allow these places to return tuples, too.
* Issue error on SET outside transaction block in some casesBruce Momjian2013-10-04
| | | | | | | Issue error for SET LOCAL/CONSTRAINTS/TRANSACTION outside a transaction block, as they have no effect. Per suggestion from Morten Hustveit
* Fix silly thinko in ResetSequenceCaches.Robert Haas2013-10-03
| | | | Report from Kevin Hale Boyes.
* Add DISCARD SEQUENCES command.Robert Haas2013-10-03
| | | | | | | DISCARD ALL will now discard cached sequence information, as well. Fabrízio de Royes Mello, reviewed by Zoltán Böszörményi, with some further tweaks by me.
* psql: Make \pset without arguments show all settings.Robert Haas2013-10-03
| | | | Gilles Darold, reviewed by Pavel Stehule
* Minor GIN code refactoring.Heikki Linnakangas2013-10-03
| | | | | | | | | | | It makes for cleaner code to have separate Get/Add functions for PostingItems and ItemPointers. A few callsites that have to deal with both types need to be duplicated because of this, but all the callers have to know which one they're dealing with anyway. Overall, this reduces the amount of casting required. Extracted from Alexander Korotkov's larger patch to change the data page format.
* psql: Set up cancel handler laterPeter Eisentraut2013-10-02
| | | | | | | | | The cancel handler was uselessly set up even before the first connection was opened. By setting it up afterwards, the user can use Ctrl+C to abort psql if the initial connection attempt hangs. Reviewed-by: Dean Rasheed <dean.a.rasheed@gmail.com> Reviewed-by: Ryan Kelly <rpkelly22@gmail.com>
* Adjust C comments that would be wrap-able.Bruce Momjian2013-10-01
|
* Add WaitForLockers in lmgr, refactoring index.c codeAlvaro Herrera2013-10-01
| | | | | | This is in support of a future REINDEX CONCURRENTLY feature. Michael Paquier
* Ensure installation dirs are built before contents are installed (v2)Andrew Dunstan2013-09-30
| | | | | | Push dependency on installdirs down to individual targets. Christoph Berg
* In bms_add_member(), use repalloc() if the bms needs to be enlarged.Heikki Linnakangas2013-09-30
| | | | | | | | | | | Previously bms_add_member() would palloc a whole-new copy of the existing set, copy the words, and pfree the old one. repalloc() is potentially much faster, and more importantly, this is less surprising if CurrentMemoryContext is not the same as the context the old set is in. bms_add_member() still allocates a new bitmapset in CurrentMemoryContext if NULL is passed as argument, but that is a lot less likely to induce bugs. Nicholas White.
* Fix snapshot leak if lo_open called on non-existent object.Heikki Linnakangas2013-09-30
| | | | | | | | | | | | | lo_open registers the currently active snapshot, and checks if the large object exists after that. Normally, snapshots registered by lo_open are unregistered at end of transaction when the lo descriptor is closed, but if we error out before the lo descriptor is added to the list of open descriptors, it is leaked. Fix by moving the snapshot registration to after checking if the large object exists. Reported by Pavel Stehule. Backpatch to 8.4. The snapshot registration system was introduced in 8.4, so prior versions are not affected (and not supported, anyway).
* Ensure installation dirs are built before contents are installed.Andrew Dunstan2013-09-29
| | | | Cédric Villemain
* Allow printf-style padding specifications in log_line_prefix.Robert Haas2013-09-26
| | | | | David Rowley, after a suggestion from Heikki Linnakangas. Reviewed by Albe Laurenz, and further edited by me.
* Fix spurious warning after vacuuming a page on a table with no indexes.Heikki Linnakangas2013-09-26
| | | | | | | | | | | | | | | | | | | | There is a rare race condition, when a transaction that inserted a tuple aborts while vacuum is processing the page containing the inserted tuple. Vacuum prunes the page first, which normally removes any dead tuples, but if the inserting transaction aborts right after that, the loop after pruning will see a dead tuple and remove it instead. That's OK, but if the page is on a table with no indexes, and the page becomes completely empty after removing the dead tuple (or tuples) on it, it will be immediately marked as all-visible. That's OK, but the sanity check in vacuum would throw a warning because it thinks that the page contains dead tuples and was nevertheless marked as all-visible, even though it just vacuumed away the dead tuples and so it doesn't actually contain any. Spotted this while reading the code. It's difficult to hit the race condition otherwise, but can be done by putting a breakpoint after the heap_page_prune() call. Backpatch all the way to 8.4, where this code first appeared.
* Plug memory leak in range_cmp function.Heikki Linnakangas2013-09-25
| | | | | | | | B-tree operators are not allowed to leak memory into the current memory context. Range_cmp leaked detoasted copies of the arguments. That caused a quick out-of-memory error when creating an index on a range column. Reported by Marian Krucina, bug #8468.
* Fix pgindent comment breakageAlvaro Herrera2013-09-24
|
* Use @libdir@ in both of regress/{input,output}/security_label.sourceNoah Misch2013-09-23
| | | | | | | | Though @libdir@ almost always matches @abs_builddir@ in this context, the test could only fail if they differed. Back-patch to 9.1, where the test was introduced. Hamid Quddus Akhtar
* Don't allow system columns in CHECK constraints, except tableoid.Robert Haas2013-09-23
| | | | | | | | | | | | | | | | | | | | | Previously, arbitray system columns could be mentioned in table constraints, but they were not correctly checked at runtime, because the values weren't actually set correctly in the tuple. Since it seems easy enough to initialize the table OID properly, do that, and continue allowing that column, but disallow the rest unless and until someone figures out a way to make them work properly. No back-patch, because this doesn't seem important enough to take the risk of destabilizing the back branches. In fact, this will pose a dump-and-reload hazard for those upgrading from previous versions: constraints that were accepted before but were not correctly enforced will now either be enforced correctly or not accepted at all. Either could result in restore failures, but in practice I think very few users will notice the difference, since the use case is pretty marginal anyway and few users will be relying on features that have not historically worked. Amit Kapila, reviewed by Rushabh Lathia, with doc changes by me.
* Fix SSL deadlock risk in libpqStephen Frost2013-09-23
| | | | | | | | | | | | | | | | | | | | | | | In libpq, we set up and pass to OpenSSL callback routines to handle locking. When we run out of SSL connections, we try to clean things up by de-registering the hooks. Unfortunately, we had a few calls into the OpenSSL library after these hooks were de-registered during SSL cleanup which lead to deadlocking. This moves the thread callback cleanup to be after all SSL-cleanup related OpenSSL library calls. I've been unable to reproduce the deadlock with this fix. In passing, also move the close_SSL call to be after unlocking our ssl_config mutex when in a failure state. While it looks pretty unlikely to be an issue, it could have resulted in deadlocks if we ended up in this code path due to something other than SSL_new failing. Thanks to Heikki for pointing this out. Back-patch to all supported versions; note that the close_SSL issue only goes back to 9.0, so that hunk isn't included in the 8.4 patch. Initially found and reported by Vesa-Matti J Kari; many thanks to both Heikki and Andres for their help running down the specific issue and reviewing the patch.
* Fix two timeline handling bugs in pg_receivexlog.Heikki Linnakangas2013-09-23
| | | | | | | | | | | | | | | | | | | | | When a timeline history file is fetched from server, it is initially created with a temporary file name, and renamed to place. However, the temporary file name was constructed using an uninitialized buffer. Usually that meant that the file was created in current directory instead of the target, which usually goes unnoticed, but if the target is on a different filesystem than the current dir, the rename() would fail. Fix that. The second issue is that pg_receivexlog would not take .partial files into account when determining when scanning the target directory for existing WAL files. If the timeline has switched in the server several times in the last WAL segment, and pg_receivexlog is restarted, it would choose a too old starting point. That's not a problem as long as the old WAL segment exists in the server and can be streamed over, but will cause a failure if it's not. Backpatch to 9.3, where this timeline handling code was written. Analysed by Andrew Gierth, bug #8453, based on a bug report on IRC.
* Fix compiler warning in WaitForBackgroundWorkerStartup().Robert Haas2013-09-19
| | | | Per complaint from Andrew Gierth.
* Fix typo in comment.Fujii Masao2013-09-19
| | | | Ian Lawrence Barwick
* Typo fix.Robert Haas2013-09-18
| | | | Etsuro Fujita
* Remove `proc` argument from LockCheckConflictsAlvaro Herrera2013-09-16
| | | | | | This has been unused since commit 8563ccae2caf. Noted by Antonin Houska
* Rename various "freeze multixact" variablesAlvaro Herrera2013-09-16
| | | | | | | | | It seems to make more sense to use "cutoff multixact" terminology throughout the backend code; "freeze" is associated with replacing of an Xid with FrozenTransactionId, which is not what we do for MultiXactIds. Andres Freund Some adjustments by Álvaro Herrera
* Add a GUC to report whether data page checksums are enabled.Heikki Linnakangas2013-09-16
| | | | Bernd Helmle
* Ignore interrupts during quickdie().Noah Misch2013-09-11
| | | | | | | | | Once the administrator has called for an immediate shutdown or a backend crash has triggered a reinitialization, no mere SIGINT or SIGTERM should change that course. Such derailment remains possible when the signal arrives before quickdie() blocks signals. That being a narrow race affecting most PostgreSQL signal handlers in some way, leave it for another patch. Back-patch this to all supported versions.
* Add comment for VARSIZE_ANY_EXHDR macroBruce Momjian2013-09-10
| | | | Gurjeet Singh
* psql: fix \copy stdin trailing space requirementBruce Momjian2013-09-10
| | | | | | | | Previously a trailing space was required for \copy ... stdin: copy foo from stdin ; Etsuro Fujita
* psql: honor 'footer' option for expanded outputBruce Momjian2013-09-10
| | | | | | "No rows" previously only honored the tuples-only option. Per report from Eli Mesika
* Remove leftover function prototype.Fujii Masao2013-09-11
| | | | | | | The prototype for inval_twophase_postcommit wasn't removed when it's definition was removed in efc16ea520679d713d98a2c7bf1453c4ff7b91ec / the initial HS commit. Andres Freund
* Show schemas in information_schema.schemata that the current has access toPeter Eisentraut2013-09-09
| | | | | Before, it would only show schemas that the current user owns. Per discussion, the new behavior is more useful and consistent for PostgreSQL.
* Introduce InvalidCommandId.Robert Haas2013-09-09
| | | | | | | This allows a 32-bit field to represent an *optional* command ID without a separate flag bit. Andres Freund
* Return error if allocation of new element was not possible.Michael Meskes2013-09-08
| | | | Found by Coverity.
* Close file to no leak file descriptor memory. Found by Coverity.Michael Meskes2013-09-08
|