- 15 Aug, 2007 1 commit
-
-
Bruce Momjian authored
-
- 14 Aug, 2007 8 commits
-
-
Tom Lane authored
that still thought they could set HEAP_XMAX_COMMITTED immediately after seeing the other transaction commit. Make them use the same logic as tqual.c does to determine if the hint bit can be set yet.
-
Bruce Momjian authored
< o Use backend PREPARE/EXECUTE facility for ecpg where possible
-
Michael Meskes authored
-
Michael Meskes authored
-
Michael Meskes authored
-
Michael Meskes authored
-
Michael Meskes authored
-
Michael Meskes authored
- Really prepare statements - Added more regression tests - Added auto-prepare mode - Use '$n' for positional variables, '?' is still possible via ecpg option - Cleaned up the sources a little bit
-
- 13 Aug, 2007 3 commits
-
-
Tom Lane authored
thorough testing of async-commit mode from the buildfarm. This patch MUST get reverted before 8.3 release!
-
Tom Lane authored
First, we cannot assume that XLogAsyncCommitFlush guarantees hint bits will be settable, because clog.c's inexact LSN bookkeeping results in windows where a previously flushed transaction is considered unhintable because it shares an LSN slot with a later unflushed transaction. But repair_frag requires XMIN_COMMITTED to be correct so that it can distinguish tuples moved by the current vacuum. Since not being able to set the bit is an uncommon corner case, the most practical way of dealing with it seems to be to abandon shrinking (ie, don't invoke repair_frag) when we find a non-dead tuple whose XMIN_COMMITTED bit couldn't be set. Second, it is possible for the same reason that a RECENTLY_DEAD tuple does not get its XMAX_COMMITTED bit set during scan_heap. But by the time repair_frag examines the tuple it might be possible to set the bit. We therefore must take buffer content lock when calling HeapTupleSatisfiesVacuum a second time, else we can get an Assert failure in SetBufferCommitInfoNeedsSave. This latter bug is latent in existing releases, but I think it cannot actually occur without async commit, since the first HeapTupleSatisfiesVacuum call should always have set the bit. So I'm not going to back-patch it. In passing, reduce the existing "cannot shrink relation" messages from NOTICE to LOG level. The new message must be no higher than LOG if we don't want unpredictable regression test failures, and consistency seems like a good idea. Also arrange that only one such message is reported per VACUUM FULL; in typical scenarios you could get spammed with many such messages, which seems a bit useless.
-
Tom Lane authored
certain corner cases. Per discussion, the code does what we want, but it really needs to be documented that these functions act differently from regexp_matches.
-
- 12 Aug, 2007 2 commits
-
-
Tom Lane authored
enlarge the memory chunk in-place when it was feasible to do so. This turns out to not work well at all for scenarios involving repeated cycles of palloc/repalloc/pfree: the eventually freed chunks go into the wrong freelist for the next initial palloc request, and so we consume memory indefinitely. While that could be defended against, the number of cases where the optimization can still be applied drops significantly, and adjusting the initial sizes of StringInfo buffers makes it drop to almost nothing. Seems better to just remove the extra complexity. Per recent discussion and testing.
-
Tom Lane authored
likewise increase the initial size of the scanner's literal buffer to 1024 (from 128). Instrumentation of the regression tests suggests that this saves a useful amount of repalloc() traffic --- the number of calls occurring during one set of tests drops from about 6900 to about 3900. The old sizes were chosen in the late 90's with an eye to machines much smaller than are common today.
-
- 11 Aug, 2007 2 commits
-
-
Tom Lane authored
regexp_split_to_table() within a single query. This is only a partial solution, as it turns out that with enough matches per string these functions can also tickle a repalloc() misbehavior. But fixing that is a topic for a separate patch.
-
Tom Lane authored
that cached compiled patterns will still be there when the function is next called. Clean up looping logic, thereby fixing bug identified by Pavel Stehule. Share setup code between the two functions, add some comments, and avoid risky mixing of int and size_t variables. Clean up the documentation a tad, and accept all the flag characters mentioned in table 9-19 rather than just a subset.
-
- 10 Aug, 2007 2 commits
- 09 Aug, 2007 2 commits
-
-
Tom Lane authored
Brendan Jurd
-
Tom Lane authored
constant flow of new connection requests could prevent the postmaster from completing a shutdown or crash restart. This is done by labeling child processes that are "dead ends", that is, we know that they were launched only to tell a client that it can't connect. These processes are managed separately so that they don't confuse us into thinking that we can't advance to the next stage of a shutdown or restart sequence, until the very end where we must wait for them to drain out so we can delete the shmem segment. Per discussion of a misbehavior reported by Keaton Adams. Since this code was baroque already, and my first attempt at fixing the problem made it entirely impenetrable, I took the opportunity to rewrite it in a state-machine style. That eliminates some duplicated code sections and hopefully makes everything a bit clearer.
-
- 08 Aug, 2007 2 commits
-
-
Neil Conway authored
hash table is allocated in a child context of the agg node's memory context, MemoryContextReset() will reset but *not* delete the child context. Since ExecReScanAgg() proceeds to build a new hash table from scratch (in a new sub-context), this results in leaking the header for the previous memory context. Therefore, use MemoryContextResetAndDeleteChildren() instead. Credit: My colleague Sailesh Krishnamurthy at Truviso for isolating the cause of the leak.
-
Tom Lane authored
GUC assign hooks are supposed to be made whether doit is true or not.
-
- 07 Aug, 2007 1 commit
-
-
Neil Conway authored
child memory contexts is indented two spaces to the right of its parent context. This should make it easier to deduce the memory context hierarchy from the output of MemoryContextStats().
-
- 06 Aug, 2007 2 commits
-
-
Magnus Hagander authored
-
Tom Lane authored
Per report and partial patch from Chad Wagner.
-
- 05 Aug, 2007 2 commits
- 04 Aug, 2007 5 commits
-
-
Tom Lane authored
improve grammar a tad. Per Greg Stark.
-
Neil Conway authored
expected, exit with an error, rather than complaining about the error on stderr but continuing onward.
-
Tom Lane authored
between the setting of log_line_prefix and the setting of log_timezone. We can't realistically set log_timezone any earlier than we do now, so the best behavior seems to be to use GMT zone if any timestamps are to be logged during early startup. Create a dummy zone variable with a minimal definition of GMT (in particular it will never know about leap seconds), so that we can set it up without reference to any external files.
-
Tom Lane authored
as well as regular backends: if no regular backend launches before the autovac launcher tries to start an autovac worker, the postmaster would get an Assert fault due to calling PostmasterRandom before random_seed was initialized. Cleanest solution seems to be to take the initialization of random_seed out of ServerLoop and let PostmasterRandom do it for itself.
-
Tom Lane authored
displayed in the postmaster log. This avoids Windows-specific problems with localized time zone names that are in the wrong encoding, and generally seems like a good idea to forestall other potential platform-dependent issues. To preserve the existing behavior that all backends will log in the same time zone, create a new GUC variable log_timezone that can only be changed on a system-wide basis, and reference log-related calculations to that zone instead of the TimeZone variable. This fixes the issue reported by Hiroshi Saito that timestamps printed by xlog.c startup could be improperly localized on Windows. We still need a simpler patch for that problem in the back branches, however.
-
- 03 Aug, 2007 2 commits
-
-
Tom Lane authored
not bothering to initialize is_autovacuum for regular backends, meaning there was a significant chance of the postmaster prematurely sending them SIGTERM during database shutdown. Also, leaving the cancel key unset for an autovac worker meant that any client could send it SIGINT, which doesn't sound especially good either.
-
Magnus Hagander authored
some bad data leftover in win32.mak. Per request from Hiroshi Saito.
-
- 02 Aug, 2007 3 commits
-
-
Andrew Dunstan authored
so that we will be able to create a cookie for all processes for CSVlogs. It is set wherever MyProcPid is set. Take the opportunity to remove the now unnecessary session-only restriction on the %s and %c escapes in log_line_prefix.
-
Andrew Dunstan authored
Make sure syslogPipe runs in binary mode on Windows to avoid corrupting the pipe chunking protocol. Backport to 8.0
-
Neil Conway authored
normal operation, but tuplestore_end() ought to do what it claims to do.
-
- 01 Aug, 2007 3 commits
-
-
Bruce Momjian authored
< * Allow buffered WAL writes and fsync
-
Tom Lane authored
before reporting a transaction committed. Data consistency is still guaranteed (unlike setting fsync = off), but a crash may lose the effects of the last few transactions. Patch by Simon, some editorialization by Tom.
-
Bruce Momjian authored
-