- 15 Jun, 2011 4 commits
-
-
Tom Lane authored
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.
-
Tom Lane authored
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.
-
Heikki Linnakangas authored
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.
-
Heikki Linnakangas authored
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.
-
- 14 Jun, 2011 14 commits
-
-
Peter Eisentraut authored
This matches what \d actually accepts.
-
Peter Eisentraut authored
This has always been true, it was just never documented.
-
Bruce Momjian authored
the same file system, and that authentication should lock out normal users. Per suggestsion from #postgresql irc channel. Backpatch to 9.1.
-
Tom Lane authored
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.
-
Peter Eisentraut authored
The variable became obsolete in commit 68739ba8, but only gcc 4.6 shows the warning.
-
Peter Eisentraut authored
We don't have to remove the column if no one is bothered, but it's useful to comment on it in case someone looks for it in newer standards versions.
-
Bruce Momjian authored
-
Alvaro Herrera authored
Per note from Tom
-
Alvaro Herrera authored
... 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.
-
Robert Haas authored
Per a gripe from Tom Lane.
-
Heikki Linnakangas authored
renumbered the resource managers. This should fix the buildfarm..
-
Heikki Linnakangas authored
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.
-
Peter Eisentraut authored
We have a SCM, so we don't need to keep old versions of files around.
-
Bruce Momjian authored
"must".
-
- 13 Jun, 2011 9 commits
-
-
Alvaro Herrera authored
Spotted by Jaime Casanova
-
Alvaro Herrera authored
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
-
Robert Haas authored
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
-
Robert Haas authored
As suggested by Grzegorz Szpetkowski.
-
Robert Haas authored
Brendan Jurd
-
Robert Haas authored
Fujii Masao
-
Robert Haas authored
Noted by Daniele Varrazzo.
-
Robert Haas authored
Fujii Masao
-
Robert Haas authored
Shigeru Hanada, with some additional wordsmithing by me
-
- 12 Jun, 2011 4 commits
-
-
Heikki Linnakangas authored
Kevin Grittner
-
Robert Haas authored
Shigeru Hanada, with a minor grammar correction.
-
Robert Haas authored
The old code creates three separate arrays when only one is needed, using two different shmem allocation functions for no obvious reason. It also strangely splits up the initialization of AuxilaryProcs between the top and bottom of the function to no evident purpose. Review by Tom Lane.
-
Robert Haas authored
These pertain to object types introduced in PostgreSQL 9.1, so back-patch. Josh Kupershmidt, with some kibitzing by me.
-
- 11 Jun, 2011 2 commits
-
-
Tom Lane authored
-
Bruce Momjian authored
called 'pid'.
-
- 10 Jun, 2011 7 commits
-
-
Tom Lane authored
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
-
Heikki Linnakangas authored
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.
-
Alvaro Herrera authored
-
Alvaro Herrera authored
"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.
-
Alvaro Herrera authored
-
Heikki Linnakangas authored
-
Bruce Momjian authored
-