| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
status. In particular, I see no reason for deferredTriggerCheckState
to make an explicit entry to note that a particular trigger has its
default state --- that just clutters a list that should normally be
empty or very short. I have plans to revise this module much more
heavily, but this is a simple separable improvement.
|
|
|
|
| |
discussion.
|
|
|
|
| |
deadlock on Win32. Magnus Hagander
|
|
|
|
|
|
|
|
|
| |
Asserts would lead to a server core dump if an error occurred while
trying to abort a failed subtransaction (thereby leading to re-execution
of whatever parts of AbortSubTransaction had already run). This of course
does not prevent such an error from creating an infinite loop, but at
least we don't make the situation worse. Responds to an open item on
the subtransactions to-do list.
|
|
|
|
| |
never worked, but it particularly doesn't work now.
|
|
|
|
|
| |
during transaction abort. Add a regression test case to catch related
mistakes in future. Alvaro Herrera and Tom Lane.
|
|
|
|
| |
FATAL when it detects a nonzero reference count. Reduce to ERROR.
|
|
|
|
| |
subtrans segments. Per Greg Mullane and Chris K-L.
|
|
|
|
|
|
|
| |
elog() emulation code always calls errstart with ERROR error level.
This means that a recursive error call triggered by elog would do
MemoryContextReset(ErrorContext), whether or not this was actually
appropriate. I'm surprised we haven't seen this in the field...
|
|
|
|
|
|
|
|
|
| |
Messages of less than ERROR severity should never be promoted (this
fixes Gaetano Mendola's problem with a COMMERROR becoming a PANIC,
and is obvious in hindsight anyway). Do all promotion in errstart
not errfinish, to ensure that output decisions are made correctly;
the former coding could suppress logging of promoted errors, which
doesn't seem like a good idea. Eliminate some redundant code too.
|
|
|
|
| |
of <ctype.h> macros.
|
| |
|
| |
|
|
|
|
| |
EXCEPT constructs.
|
| |
|
| |
|
|
|
|
|
|
|
| |
use of already-freed strings, other silliness. Also fix reporting of
config file syntax errors so that it actually works reasonably well
(eg, points at the correct line). Use palloc instead of malloc for
temporary storage to reduce code clutter.
|
|
|
|
|
|
|
| |
not supposed to (fixes problem with postmaster aborting due to mistaken
postgresql.conf change); don't call superuser() when not inside a
transaction (fixes coredump when, eg, try to set log_statement from
PGOPTIONS); some message style guidelines enforcement.
|
|
|
|
|
|
|
| |
default tablespace --- they should always go in the database's default
tablespace. Adjust heap_create() API so that it is passed the relkind
to make this easier; should simplify any further tweaking of the same
sort.
|
|
|
|
| |
relation is already opened by smgr.
|
|
|
|
|
| |
would always be already open at the smgr level. Per bug report from
Fabien Coelho.
|
|
|
|
|
|
|
| |
to allow DBA to choose the form in which log filenames reflect the
current time. Also allow for truncating instead of appending to
pre-existing files --- this is convenient when the log filename pattern
rewrites the same names cyclically. Per Ed L.
|
|
|
|
|
| |
the slock_t datatype (ie, declared type smaller than what the hardware
TAS instruction needs).
|
|
|
|
| |
startup, just to be sure that there's no leftover junk there.
|
|
|
|
| |
only within COMMIT or ABORT records.
|
|
|
|
|
|
| |
write into a high-numbered segment of a relation that was later deleted.
We need to temporarily recreate missing segment files, instead of
failing.
|
|
|
|
|
|
|
|
| |
during replay of CREATE DATABASE as well as the first time around.
Else it's possible that the copy operation will copy obsolete blocks.
We are still a long way from guaranteeing anything about using a
recently-written database as a CREATE template, but this seems needed
to ensure the existing behavior holds up during replay.
|
| |
|
|
|
|
|
|
|
|
| |
Fix TablespaceCreateDbspace() to be able to create a dummy directory
in place of a dropped tablespace's symlink. This eliminates the open
problem of a PANIC during WAL replay when a replayed action attempts
to touch a file in a since-deleted tablespace. It also makes for a
significant improvement in the usability of PITR replay.
|
|
|
|
|
|
|
|
|
| |
a more tolerable limit on the number of subtransactions or deleted files
in COMMIT and ABORT records. Buy back the extra space by eliminating the
xl_xact_prev field, which isn't being used for anything and is rather
unlikely ever to be used for anything.
This does not force initdb, but you do need to do pg_resetxlog if you
want to upgrade an existing 8.0 installation without initdb.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Win32 WaitForMultipleObjects:
ret = WaitForMultipleObjects(win32_numChildren, win32_childHNDArray,
FALSE, 0);
Problem is 'win32_numChildren' could be more then 64 ( function supports
), problem basically arise ( kills postgres ) when you create more then
64 connections and terminate some of them sill leaving more then 64.
Claudio Natoli
|
|
|
|
| |
James William Pye
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
>>GetLastError will
>>> give much more details than errno.
>>
>>How much more, really? That mapping table gave me the impression that
>>the win32 error codes aren't all that much more detailed than errno...
>
>The mapping table is not complete. My winerror.h from the SDK
>lists 2209
>error codes, whereas errno.h lists 42...
>
>I still don't think we'll get that much more stuff. Right now,
>the Win32
>code paths that actually use the more advanced functions already write
>out the error number in case something happens. We can keep doing that
>for the other paths (ereport the error *number* when the mapping does
>not have a match). The map to errno will catch almost all cases, I
>think. And in the corner cases we can do with just the number, and use
>"net helpmsg" to get the actual message when checking...
Here's an attempt on this. new file goes in backend/port/win32.
Magnus Hagander
|
|
|
|
|
| |
pg_clog, there's no reason to do abort marking of subtransactions in a
nonintuitive order.
|
|
|
|
| |
TransactionIdDidCommit.
|
|
|
|
|
|
|
|
|
|
| |
so that we close and flush the doomed relation's relcache entry before
we start to delete the underlying catalog rows, rather than afterwards.
For awhile yesterday I thought that an unexpected relcache entry rebuild
partway through this sequence might explain the infrequent parallel
regression failures we were chasing. It doesn't, mainly because there's
no CommandCounterIncrement in the sequence and so the deletions aren't
"really" done yet. But it sure seems like trouble waiting to happen.
|
|
|
|
| |
Magnus Hagander
|
|
|
|
|
|
|
|
|
| |
relcache entries. Also, change TransactionIdIsCurrentTransactionId()
so that if consulted during transaction abort, it will not say that
the aborted xact is still current. (It would be better to ensure that
it's never called at all during abort, but I'm not sure we can easily
guarantee that.) In combination, these fix a crash we have seen
occasionally during parallel regression tests of 8.0.
|
|
|
|
|
|
|
|
| |
from being accepted after the outer right brace. Per report from
Markus Bertheau.
Also add regression test cases for this change, and for previous
recent array literal parser changes.
|
|
|
|
| |
module isn't fully initialized yet.
|
|
|
|
|
| |
if the target PID is a PG postmaster or backend --- for our purposes that
is actually better than the Unix behavior. Per Dave Page and Andrew Dunstan.
|
|
|
|
|
|
|
|
|
| |
PROCLOCK structs in shared memory now have only a bitmask for held
locks, rather than counts (making them 40 bytes smaller, which is a
good thing). Multiple locks within a transaction are counted in the
local hash table instead, and we have provision for tracking which
ResourceOwner each count belongs to. Solves recently reported problem
with memory leakage within long transactions.
|
|
|
|
| |
changes.
|