aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Obtain table locks as soon as practical during pg_dump.Tom Lane2011-06-17
| | | | | | | | | | For some reason, when we (I) added table lock acquisition to pg_dump, we didn't think about making it happen as soon as possible after the start of the transaction. What with subsequent additions, there was actually quite a lot going on before we got around to that; which sort of defeats the purpose. Rearrange the order of calls in dumpSchema() to close the risk window as much as we easily can. Back-patch to all supported branches.
* Add overflow checks to int4 and int8 versions of generate_series().Robert Haas2011-06-17
| | | | | | | | | The previous code went into an infinite loop after overflow. In fact, an overflow is not really an error; it just means that the current value is the last one we need to return. So, just arrange to stop immediately when overflow is detected. Back-patch all the way.
* Fix crash in CREATE UNLOGGED TABLE.Robert Haas2011-06-17
| | | | | | | | | The code that created the init fork neglected to make sure that the relation was open at the smgr level before attempting to invoke smgr. This didn't happen every time; only when the relcache entry was rebuilt along the way. Per report from Garick Hamlin.
* Fix typo.Robert Haas2011-06-17
| | | | Per Josh Kupershmidt and Tom Lane.
* Update README-SSI. Add a section to describe the "dangerous structure" thatHeikki Linnakangas2011-06-16
| | | | | | | | SSI is based on, as well as the optimizations about relative commit times and read-only transactions. Plus a bunch of other misc fixes and improvements. Dan Ports
* Fix typoAlvaro Herrera2011-06-16
|
* Remove another no-longer-needed inclusion of predicate.h.Tom Lane2011-06-16
|
* pgindent run of recent SSI changes. Also, remove an unnecessary #include.Heikki Linnakangas2011-06-16
| | | | Kevin Grittner
* Respect Hot Standby controls while recycling btree index pages.Simon Riggs2011-06-16
| | | | | | | | | | | | | | Btree pages were recycled after VACUUM deletes all records on a page and then a subsequent VACUUM occurs after the RecentXmin horizon is reached. Using RecentXmin meant that we did not respond correctly to the user controls provide to avoid Hot Standby conflicts and so spurious conflicts could be generated in some workload combinations. We now reuse pages only when we reach RecentGlobalXmin, which can be much later in the presence of long running queries and is also controlled by vacuum_defer_cleanup_age and hot_standby_feedback. Noah Misch and Simon Riggs
* Use single quotes in preference to double quotes for protecting pathnames.Tom Lane2011-06-15
| | | | | | Per recommendation from Peter. Neither choice is bulletproof, but this is the existing style and it does help prevent unexpected environment variable substitution.
* Rework parsing of ConstraintAttributeSpec to improve NOT VALID handling.Tom Lane2011-06-15
| | | | | | | | | | | The initial commit of the ALTER TABLE ADD FOREIGN KEY NOT VALID feature failed to support labeling such constraints as deferrable. The best fix for this seems to be to fold NOT VALID into ConstraintAttributeSpec. That's a bit more general than the documented syntax, but it allows better-targeted syntax error messages. In addition, do some mostly-but-not-entirely-cosmetic code review for the whole NOT VALID patch.
* Fix failure to account for memory used by tuplestore_putvalues().Tom Lane2011-06-15
| | | | | | | | | | | | | | | | | | | This oversight could result in a tuplestore using much more than the intended amount of memory. It would only happen in a code path that loaded a tuplestore via tuplestore_putvalues(), and many of those won't emit huge amounts of data; but cases such as holdable cursors and plpgsql's RETURN NEXT command could have the problem. The fix ensures that the tuplestore will switch to write-to-disk mode when it overruns work_mem. The potential overrun was finite, because we would still count the space used by the tuple pointer array, so the tuplestore code would eventually flip into write-to-disk mode anyway. When storing wide tuples we would go far past the expected work_mem usage before that happened; but this may account for the lack of prior reports. Back-patch to 8.4, where tuplestore_putvalues was introduced. Per bug #6061 from Yann Delorme.
* Fix oversights in pg_basebackup's -z (compression) option.Tom Lane2011-06-15
| | | | | | | | | | The short-form -z switch didn't work, for lack of telling getopt_long about it; and even if specified long-form, it failed to do anything, because the various tests elsewhere in the file would take Z_DEFAULT_COMPRESSION (which is -1) as meaning "don't compress". Per bug #6060 from Shigehiro Honda, though I editorialized on his patch a bit.
* The rolled-back flag on serializable xacts was pointless and redundant withHeikki Linnakangas2011-06-15
| | | | | | | | the marked-for-death flag. It was only set for a fleeting moment while a transaction was being cleaned up at rollback. All the places that checked for the rolled-back flag should also check the marked-for-death flag, as both flags mean that the transaction will roll back. I also renamed the marked-for-death into "doomed", which is a lot shorter name.
* Make non-MVCC snapshots exempt from predicate locking. Scans with non-MVCCHeikki Linnakangas2011-06-15
| | | | | | | | snapshots, like in REINDEX, are basically non-transactional operations. The DDL operation itself might participate in SSI, but there's separate functions for that. Kevin Grittner and Dan Ports, with some changes by me.
* Allow psql \d tab completion to complete all relation kindsPeter Eisentraut2011-06-14
| | | | This matches what \d actually accepts.
* Document that psql's \d also works with composite typesPeter Eisentraut2011-06-14
| | | | This has always been true, it was just never documented.
* In pg_upgrade, document that link mode has to have data directories onBruce Momjian2011-06-14
| | | | | | | | | the same file system, and that authentication should lock out normal users. Per suggestsion from #postgresql irc channel. Backpatch to 9.1.
* Fix assorted issues with build and install paths containing spaces.Tom Lane2011-06-14
| | | | | | Apparently there is no buildfarm critter exercising this case after all, because it fails in several places. With this patch, build, install, check-world, and installcheck-world pass for me on OS X.
* Remove unused variablePeter Eisentraut2011-06-14
| | | | | | The variable became obsolete in commit 68739ba856c52e6721d6cffec21f1bf0327a9a7b, but only gcc 4.6 shows the warning.
* In pg_upgrade, check there are no prepared transactions.Bruce Momjian2011-06-14
| | | | Backpatch to 9.1.
* Fix grammatical mistake introduced by previous commitAlvaro Herrera2011-06-14
| | | | Per note from Tom
* Mention DROP TABLE as well as ALTER TABLE NO INHERITAlvaro Herrera2011-06-14
| | | | | | | | | ... when talking about how good they are in replacement of bulk DELETE in partitioned setups. The original wording was a bit confusing. Per an observation from David Wheeler.
* Improve accuracy of ON_ERROR_STOP documentation.Robert Haas2011-06-14
| | | | Per a gripe from Tom Lane.
* Oops, forgot to change the order of entries in 2PC callback arrays when IHeikki Linnakangas2011-06-14
| | | | renumbered the resource managers. This should fix the buildfarm..
* Renumber 2PC resource managers so that compared to 9.0, predicate lock rmgrHeikki Linnakangas2011-06-14
| | | | | | | | | is added to the end, and existing resource managers keep their old ids. We're not going to guarantee on-disk compatibility for 2PC state files over major releases, but it seems better to avoid changing the ids them anyway. It will help anyone who might want to write external tools to inspect the state files to work with files from different versions, if nothing else. Per complaint from Tom Lane.
* Move parse2.pl to parse.plPeter Eisentraut2011-06-14
| | | | We have a SCM, so we don't need to keep old versions of files around.
* Document that bits to the right of the CIDR mask "should" be zero, notBruce Momjian2011-06-13
| | | | "must".
* Fix aboriginal copy-paste mistake in error messageAlvaro Herrera2011-06-13
| | | | Spotted by Jaime Casanova
* Expand warnings on locks acquired by CREATE INDEX CONCURRENTLYAlvaro Herrera2011-06-13
| | | | | | | | | The previous wording wasn't explicit enough, which could misled readers into thinking that the locks acquired are more restricted in nature than they really are. The resulting optimism can be damaging to morale when confronted with reality, as has been observed in the field. Greg Smith
* Remove parentheses from mention of current_schemas function.Robert Haas2011-06-13
| | | | | | | This is more consistent with what we do elsewhere, and hopefully avoids creating the perception that current_schemas takes no arguments. As suggested by Brendan Jurd
* Clarify that NATURAL without matching columns is like CROSS JOIN.Robert Haas2011-06-13
| | | | As suggested by Grzegorz Szpetkowski.
* Add doc cross-reference to search_path discussion of current_schemas().Robert Haas2011-06-13
| | | | Brendan Jurd
* Document GUC context for synchronous_standby_names/hot_standby_feedback.Robert Haas2011-06-13
| | | | Fujii Masao
* In ALTER EXTENSION docs, document left_type/right_type.Robert Haas2011-06-13
| | | | Noted by Daniele Varrazzo.
* Markup fix.Robert Haas2011-06-13
| | | | Fujii Masao
* More foreign table documentation improvements.Robert Haas2011-06-13
| | | | Shigeru Hanada, with some additional wordsmithing by me
* Remove now-unnecessary casts.Heikki Linnakangas2011-06-12
| | | | Kevin Grittner
* Corrections to ALTER FOREIGN TABLE documentation.Robert Haas2011-06-12
| | | | Shigeru Hanada, with a minor grammar correction.
* Tab completion improvements for COMMENT.Robert Haas2011-06-11
| | | | | | These pertain to object types introduced in PostgreSQL 9.1, so back-patch. Josh Kupershmidt, with some kibitzing by me.
* Add C comment mentioning pg_stat_activity.procpid should have beenBruce Momjian2011-06-11
| | | | called 'pid'.
* Work around gcc 4.6.0 bug that breaks WAL replay.Tom Lane2011-06-10
| | | | | | | | | | | | | ReadRecord's habit of using both direct references to tmpRecPtr and references to *RecPtr (which is pointing at tmpRecPtr) triggers an optimization bug in gcc 4.6.0, which apparently has forgotten about aliasing rules. Avoid the compiler bug, and make the code more readable to boot, by getting rid of the direct references. Improve the comments while at it. Back-patch to all supported versions, in case they get built with 4.6.0. Tom Lane, with some cosmetic suggestions from Alex Hunsaker
* Fix locking while setting flags in MySerializableXact.Heikki Linnakangas2011-06-10
| | | | | | | | | | | | | | | | | Even if a flag is modified only by the backend owning the transaction, it's not safe to modify it without a lock. Another backend might be setting or clearing a different flag in the flags field concurrently, and that operation might be lost because setting or clearing a bit in a word is not atomic. Make did-write flag a simple backend-private boolean variable, because it was only set or tested in the owning backend (except when committing a prepared transaction, but it's not worthwhile to optimize for the case of a read-only prepared transaction). This also eliminates the need to add locking where that flag is set. Also, set the did-write flag when doing DDL operations like DROP TABLE or TRUNCATE -- that was missed earlier.
* Add comment about pg_ctl stopAlvaro Herrera2011-06-10
|
* Use "transient" files for blind writes, take 2Alvaro Herrera2011-06-10
| | | | | | | | | | | | | | | | | | | | | "Blind writes" are a mechanism to push buffers down to disk when evicting them; since they may belong to different databases than the one a backend is connected to, the backend does not necessarily have a relation to link them to, and thus no way to blow them away. We were keeping those files open indefinitely, which would cause a problem if the underlying table was deleted, because the operating system would not be able to reclaim the disk space used by those files. To fix, have bufmgr mark such files as transient to smgr; the lower layer is allowed to close the file descriptor when the current transaction ends. We must be careful to have any other access of the file to remove the transient markings, to prevent unnecessary expensive system calls when evicting buffers belonging to our own database (which files we're likely to require again soon.) This commit fixes a bug in the previous one, which neglected to cleanly handle the LRU ring that fd.c uses to manage open files, and caused an unacceptable failure just before beta2 and was thus reverted.
* Use a constant sprintf format to silence compiler warningAlvaro Herrera2011-06-10
|
* Small comment fixes and enhancements.Heikki Linnakangas2011-06-10
|
* Mention "pg_ctl stop" in pgindent README instructions.Bruce Momjian2011-06-09
|
* Tag 9.1beta2.REL9_1_BETA2Tom Lane2011-06-09
|
* Ecpg doc cleanups, as reported by Marc Cousin.Bruce Momjian2011-06-09
|