1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-12 21:01:52 +03:00
Commit Graph

24386 Commits

Author SHA1 Message Date
d174a4adbb Fix "constraint_exclusion = partition" logic so that it will also attempt
constraint exclusion on an inheritance set that is the target of an UPDATE
or DELETE query.  Per gripe from Marc Cousin.  Back-patch to 8.4 where
the feature was introduced.
2010-03-30 21:58:11 +00:00
2a77355ea1 Change the retry-loop in standby mode to also try restoring files from
pg_xlog directory. This is essential for replaying WAL records that
were streamed from the master, after a standby server restart.

If a corrupt record is seen in a file restored from the archive or
streamed from the master, log it as a WARNING and keep retrying. If the
corruption is permanent, and not just a glitch in the whatever copies the
files to the archive or a network error not caught by CRC checks in TCP
for example, we will keep retrying and logging the WARNING indefinitely.
But that's better than shutting down completely, the standby is still
useful for running read-only queries. In PITR the recovery ends at such a
corrupt record, which is a bit questionable, but that's the behavior we
had in previous releases and we don't feel like chaning it now. It does
make sense for tools like pg_standby.
2010-03-30 16:23:57 +00:00
feb5087a34 Message tuning 2010-03-30 16:08:22 +00:00
e919a844eb Properly initialize local varaible in
btree_xlog_delete_get_latestRemovedXid().  This variable was only tested
in assert builds.
2010-03-30 13:46:09 +00:00
a358423d8f Add comma missing from postgresql.conf comment. 2010-03-30 00:11:45 +00:00
de66effede Edit recovery.conf.sample so it matches docs. Change standby_mode
example to 'on or 'off' rather than 'true' or 'false', as shown
in docs. Add restartpoint_command. Add section header for recovery
target parameters, matching docs.
2010-03-29 18:50:36 +00:00
b78f6264eb Rework join-removal logic as per recent discussion. In particular this
fixes things so that it works for cases where nested removals are possible.
The overhead of the optimization should be significantly less, as well.
2010-03-28 22:59:34 +00:00
a760893dbd Derive latestRemovedXid for btree deletes by reading heap pages. The
WAL record for btree delete contains a list of tids, even when backup
blocks are present. We follow the tids to their heap tuples, taking
care to follow LP_REDIRECT tuples. We ignore LP_DEAD tuples on the
understanding that they will always have xmin/xmax earlier than any
LP_NORMAL tuples referred to by killed index tuples. Iff all tuples
are LP_DEAD we return InvalidTransactionId. The heap relfilenode is
added to the WAL record, requiring API changes to pass down the heap
Relation. XLOG_PAGE_MAGIC updated.
2010-03-28 09:27:02 +00:00
59292f28ca Flush CopyOutResponse when starting streaming in walsender, so that it's
not delayed until the first WAL record is sent.

Fujii Masao
2010-03-26 12:23:34 +00:00
65cd829232 Modify some new and pre-existing messages for translatability. 2010-03-25 20:40:17 +00:00
be8cebc717 Prevent ALTER USER f RESET ALL from removing the settings that were put there
by a superuser -- "ALTER USER f RESET setting" already disallows removing such a
setting.

Apply the same treatment to ALTER DATABASE d RESET ALL when run by a database
owner that's not superuser.
2010-03-25 14:44:34 +00:00
92fc0db99f Additional thoughts on WALSender cpu reduction. Use long type
and alter a comment to reduce confusion.
2010-03-24 21:41:57 +00:00
e6867eebd4 Change replication connection log format to allow for a database
called replication. Add host and port details, following format
of messages in BackendInitialize().
2010-03-24 21:25:50 +00:00
08882ce74c Reduce CPU utilisation of WALSender process. Process was using 10% CPU
doing nothing, caused by naptime specified in milliseconds yet units of
pg_usleep() parameter is microseconds. Correctly specifying units
reduces call frequency by 1000. Reduction in CPU consumption verified.
2010-03-24 20:11:12 +00:00
16a4186d6a Fix thinko in log message for "sameuser" ident map mismatch: the provided
and authenticated usernames were swapped.  Reported by Bryan Henderson
in bug #5386.

Also clean up poorly-maintained header comment for this function.
2010-03-24 17:05:45 +00:00
223f82d4da Now that we know last_statrequest > last_statwrite can be observed in the
buildfarm, expend a little more effort on the log message for it.
2010-03-24 16:07:10 +00:00
23244d6f24 Mark "installcheck-parallel", "world", "install-world" and "installcheck-world" make targets as PHONY. Fujii Masao. 2010-03-24 13:14:02 +00:00
de3483acfa Update description of walrcv_receive() function to match reality. 2010-03-24 06:25:39 +00:00
96189dbe66 Document in postgresql.conf that the max_standby_delay default is 30
'seconds'.
2010-03-24 03:13:45 +00:00
8a367d441b Remove useless double assignment
GCC 4.5 complained about it.
2010-03-23 22:12:06 +00:00
d0049f8eee Fix regression test breakage from recent change in default name of exclusion-constraint index. 2010-03-22 17:43:28 +00:00
37afd3ef4e Shorten suffix of automatically created indexes to "_excl" when using
exclusion constraints, in line with string length of other pre-9.0 suffixes.
2010-03-22 15:24:11 +00:00
8d3c4aa614 Fix an oversight in join-removal optimization: we have to check not only for
plain Vars that are generated in the inner rel and used above the join, but
also for PlaceHolderVars.  Per report from Oleg K.
2010-03-22 13:57:16 +00:00
ecac5e6bfc Fixed ECPG regression test to make sure it uses absolute paths for include
files instead of relative ones which break vpath builds.
2010-03-22 07:41:20 +00:00
075d44120f Adding special command line option that is now needed for the one ecpg regression test that was changed. 2010-03-21 14:26:58 +00:00
b4d298ac23 ECPG's parser now accepts and handles variables as arguments for the FREE command.
Informix allows variables as argument to the embedded SQL command FREE. Given
that we only allow freeing cursors via FREE for compatibility reasons only we
should do the same.
2010-03-21 11:56:45 +00:00
654fff2311 Adjusted regression test results to the change I made in debug output for ecpglib. 2010-03-21 11:38:16 +00:00
a9dd217861 Correctly name functions in debug output in ecpglib. When the functions were
refactored the debug output wasn't adjusted.
2010-03-21 11:33:44 +00:00
1d66a1cca1 ECPG only copied #include statements instead of processing them according to
commandline option "-i". This change fixes this and adds a test case. It also
honors #include_next, although this is probably never used for embedded SQL.
2010-03-21 10:49:52 +00:00
c248d17120 Message tuning 2010-03-21 00:17:59 +00:00
1dff2a0f25 Fixed ecpg parser to allow more than one C preprocessor command inside a declare section. 2010-03-20 18:53:00 +00:00
bf6285b3a7 Further corrections of mismatching struct and btree SizeOf macros.
In this case, correction is to remove now unused fields from struct.
Since these were unused and full of garbage anyway, no version change.
2010-03-20 07:49:48 +00:00
f784f05e95 Clear error_context_stack and debug_query_string at the beginning of proc_exit,
so that we won't try to attach any context printouts to messages that get
emitted while exiting.  Per report from Dennis Koegel, the context functions
won't necessarily work after we've started shutting down the backend, and it
seems possible that debug_query_string could be pointing at freed storage
as well.  The context information doesn't seem particularly relevant to
such messages anyway, so there's little lost by suppressing it.

Back-patch to all supported branches.  I can only demonstrate a crash with
log_disconnections messages back to 8.1, but the risk seems real in 8.0 and
before anyway.
2010-03-20 00:58:09 +00:00
acdd6ea5ab Forbid renaming columns of objects whose column names are system-generated.
KaiGai Kohei, with adjustments to the comments.
2010-03-20 00:43:42 +00:00
a836abe9f6 Modify error context callback functions to not assume that they can fetch
catalog entries via SearchSysCache and related operations.  Although, at the
time that these callbacks are called by elog.c, we have not officially aborted
the current transaction, it still seems rather risky to initiate any new
catalog fetches.  In all these cases the needed information is readily
available in the caller and so it's just a matter of a bit of extra notation
to pass it to the callback.

Per crash report from Dennis Koegel.  I've concluded that the real fix for
his problem is to clear the error context stack at entry to proc_exit, but
it still seems like a good idea to make the callbacks a bit less fragile
for other cases.

Backpatch to 8.4.  We could go further back, but the patch doesn't apply
cleanly.  In the absence of proof that this fixes something and isn't just
paranoia, I'm not going to expend the effort.
2010-03-19 22:54:41 +00:00
865b29540e Fix oversight in btpo.xact patch; it was in fact installing garbage
in the xact field on replay, due to not writing out all the data in
the wal log struct.
2010-03-19 20:51:30 +00:00
6a771d1d36 Add connection messages for streaming replication. log_connections
was broken for a replication connection and no messages were
displayed on either standby or primary, at any debug level.
Connection messages needed to diagnose session drop/reconnect
events. Use LOG mode for now, discuss lowering in later releases.
2010-03-19 19:19:38 +00:00
75867c528d Minor tweaks on libpqrcv_connect(): ensure conninfo_repl[] is
correctly sized and expand comment to explain otherwise
undocumented use of replication connection parameter.
2010-03-19 17:51:42 +00:00
aa36bd2039 Update XLOG_PAGE_MAGIC to recognise WAL format changes. 2010-03-19 17:42:10 +00:00
3cdafe40e7 Adjust comment in .history file to match recovery target specified. Comment
present since 8.0 was never fully meaningful, since two recovery targets
cannot be specified. Refactor recovery target type to make this change
and associated code easier to understand. No change in function.

Bug report arising from internal support question.
2010-03-19 11:05:15 +00:00
5c73ae17d1 Reset btpo.xact following recovery of btree delete page. Add btpo_xact
field into WAL record and reset it from there, rather than using
FrozenTransactionId which can lead to some corner case bugs.

Problem report and suggested route to a fix from Heikki, details by me.
2010-03-19 10:41:22 +00:00
2827516394 Also print the libpq error message when lo_create or lo_open fails 2010-03-18 20:00:51 +00:00
a401226bd8 Prevent the injection of invalidly encoded strings by PL/Python into PostgreSQL
with a few strategically placed pg_verifymbstr calls.
2010-03-18 19:43:03 +00:00
ab5694e80d Message style tuning 2010-03-18 19:02:46 +00:00
d154a857ba Mention way to get commit details for release notes. 2010-03-18 16:31:12 +00:00
12c2f2f66c Use data-type specific conversion functions also in plpy.execute
In PLy_spi_execute_plan, use the data-type specific Python-to-PostgreSQL
conversion function instead of passing everything through InputFunctionCall
as a string.  The equivalent fix was already done months ago for function
parameters and return values, but this other gateway between Python and
PostgreSQL was apparently forgotten.  As a result, data types that need
special treatment, such as bytea, would misbehave when used with
plpy.execute.
2010-03-18 13:23:57 +00:00
c21ac0b58e Add restartpoint_command option to recovery.conf. Fix bug in %r handling
in recovery_end_command, it always came out as 0 because InRedo was
cleared before recovery_end_command was executed. Also, always take
ControlFileLock when reading checkpoint location for %r.

The recovery_end_command bug and the missing locking was present in 8.4
as well, that part of this patch will be backported separately.
2010-03-18 09:17:18 +00:00
6407fa996a Add vacuum_defer_cleanup_age to postgresql.conf.sample. 2010-03-18 07:01:01 +00:00
c92e2702f1 Message style tuning 2010-03-17 21:31:17 +00:00
2fb605ec76 Fix peculiar, untranslatable message concatenation attempt 2010-03-17 20:58:38 +00:00