summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2009-02-18Start background writer during archive recovery. Background writer now performsHeikki Linnakangas
its usual buffer cleaning duties during archive recovery, and it's responsible for performing restartpoints. This requires some changes in postmaster. When the startup process has done all the initialization and is ready to start WAL redo, it signals the postmaster to launch the background writer. The postmaster is signaled again when the point in recovery is reached where we know that the database is in consistent state. Postmaster isn't interested in that at the moment, but that's the point where we could let other backends in to perform read-only queries. The postmaster is signaled third time when the recovery has ended, so that postmaster knows that it's safe to start accepting connections. The startup process now traps SIGTERM, and performs a "clean" shutdown. If you do a fast shutdown during recovery, a shutdown restartpoint is performed, like a shutdown checkpoint, and postmaster kills the processes cleanly. You still have to continue the recovery at next startup, though. Currently, the background writer is only launched during archive recovery. We could launch it during crash recovery as well, but it seems better to keep that codepath as simple as possible, for the sake of robustness. And it couldn't do any restartpoints during crash recovery anyway, so it wouldn't be that useful. log_restartpoints is gone. Use log_checkpoints instead. This is yet to be documented. This whole operation is a pre-requisite for Hot Standby, but has some value of its own whether the hot standby patch makes 8.4 or not. Simon Riggs, with lots of modifications by me.
2009-02-18Add --freeze option to vacuumdb.Bruce Momjian
2009-02-18Have pg_dump/pg_dumpall --binary-upgrade restore frozenids for relationsBruce Momjian
and databases.
2009-02-18Message wordsmithingPeter Eisentraut
2009-02-17Add missing newline.Bruce Momjian
2009-02-17Add pg_dump --binary-upgrade flag to be used by binary upgradeBruce Momjian
utilities. The new code allows transfer of dropped column information to the upgraded server.
2009-02-17Add _() calls for the argument of plpgsql_yyerror() so it actually getsPeter Eisentraut
translated somehow.
2009-02-17Add plpgsql_yyerror to gettext triggersPeter Eisentraut
2009-02-17Mark 3rd argument of validate_tupdesc_compat() for translation, instead ofPeter Eisentraut
marking up each instance separately.
2009-02-17Redefine _() to dgettext() instead of gettext() so that it uses the plpgsqlPeter Eisentraut
text domain, instead of the postgres one (or whatever the default may be).
2009-02-17Remove gettext trigger write_stderr(), which isn't used by PLs.Peter Eisentraut
2009-02-16Wrap some long queries.Bruce Momjian
2009-02-16Uppercase keywords in pg_dump.cBruce Momjian
2009-02-15Teach the planner to treat a partial unique index as proving a variable isTom Lane
unique for a particular query, if the index predicate is satisfied. This requires a bit of reordering of operations so that we check the predicates before doing any selectivity estimates, but shouldn't really cause any noticeable slowdown. Per a comment from Michal Politowski.
2009-02-15Loop calling CallNamedPipe() several times in case it fails,Magnus Hagander
since it can be transient failures, causing kill() to not properly send signals. Original patch from Steve Marshall, modified by me.
2009-02-14A couple of marginal performance hacks for the information_schema views:Tom Lane
replace the old recursive-SQL-function implementation of _pg_keysequal() with use of the built-in array containment operators, and change table_constraints' UNION to UNION ALL. Per discussion with Octavio Alvarez. initdb not forced since this doesn't affect results, but you'd need to initdb or reload the information_schema to see the new definitions.
2009-02-13Fix UNLISTEN to fall out quickly if the current backend has never executedTom Lane
any LISTEN command. This is more important than it used to be because DISCARD ALL invokes UNLISTEN. Connection-pooled applications making heavy use of DISCARD ALL were seeing significant contention for pg_listener, as reported by Matteo Beccati. It seems unlikely that clients using LISTEN would use pooled connections, so this simple tweak seems sufficient, especially since the pg_listener implementation is slated to go away soon anyway. Back-patch to 8.3, where DISCARD ALL was introduced.
2009-02-12The Czech (cs_CZ) and Slovak (sk_SK) locales sort numbers after letters,Peter Eisentraut
instead of vice versa. Update the regression test expectations to support that. In the plpgsql test, adjust the test data so that this isn't an issue. In the char and varchar tests, add new expected files.
2009-02-12Unset language-related locale settings in any case, otherwise psql willPeter Eisentraut
speak in tongues and mess up the regression test diffs.
2009-02-12Don't call SetEnvironmentVariable() when removing an environment variable,Magnus Hagander
as this seems to crash on at least some versions of MingW. Our current usage of this function does not require it, so it should be ok to ignore.
2009-02-11Change ALTER TABLE SET WITHOUT OIDS to rewrite the whole table to physicallyTom Lane
get rid of the OID column. This eliminates the problem discovered by Heikki back in November that 8.4's suppression of "unnecessary" junk filtering in INSERT/SELECT could lead to an Assert failure, or storing of oids into a table that shouldn't have them if Asserts are off. While that particular problem could have been solved in other ways, it seems likely to be just a forerunner of things to come if we continue to allow tables to contain rows that disagree with the pg_class.relhasoids setting. It's better to make this operation slow than to sacrifice performance or risk bugs in more common code paths. Also, add ALTER TABLE SET WITH OIDS to rewrite the table to add oids. This was a bit more controversial, but in view of the very small amount of extra code needed given the current ALTER TABLE infrastructure, it seems best to eliminate the asymmetry in features.
2009-02-11Tweak configure to attempt to add -qnoansialias to CFLAGS whenever runningTom Lane
on AIX with a non-gcc compiler. The previous coding would do this only if CC was exactly "xlc"; which is a bad idea, as demonstrated by trouble report from Mihai Criveti.
2009-02-11Improve psql \d+ to show TOAST reloptions too. Per complaint fromAlvaro Herrera
ITAGAKI Takahiro.
2009-02-11Only unset the locale environment when --no-locale is used (the way it wasPeter Eisentraut
presumably designed, but didn't act). This allows running the temp install tests in a non-C locale, thus exercising users' real environments better. Document how to change locales for test runs.
2009-02-10Support for KOI8U encodingPeter Eisentraut
2009-02-10Remove the encoding *numbers* from the comments. They are useless, andPeter Eisentraut
make maintenance harder.
2009-02-10Add possibility to generate only some files, by passing command-linePeter Eisentraut
arguments.
2009-02-09Adopt Bob Jenkins' improved hash function for hash_any(). This changes theTom Lane
contents of hash indexes (again), so bump catversion. Kenneth Marshall
2009-02-09Update autovacuum to use reloptions instead of a system catalog, forAlvaro Herrera
per-table overrides of parameters. This removes a whole class of problems related to misusing the catalog, and perhaps more importantly, gives us pg_dump support for the parameters. Based on a patch by Euler Taveira de Oliveira, heavily reworked by me.
2009-02-08Ensure that INSERT ... SELECT into a table with OIDs never copies row OIDsTom Lane
from the source table. This could never happen anyway before 8.4 because the executor invariably applied a "junk filter" to rows due to be inserted; but now that we skip doing that when it's not necessary, the case can occur. Problem noted 2008-11-27 by KaiGai Kohei, though I misunderstood what he was on about at the time (the opacity of the patch he proposed didn't help).
2009-02-07ecpg requires libpq; add Makefile rules to require libpq to be builtBruce Momjian
first. Alvaro Herrera
2009-02-07Fix to_timestamp() to not require upper/lower case matching for meridianBruce Momjian
designations (AM/PM). Also separate out matching of a meridian with periods (e.g. A.M.) and with those without. Do the same for AD/BC. Brendan Jurd
2009-02-07Fix obsolete comment. Zdenek KotalaHeikki Linnakangas
2009-02-07Set column privileges to supportedPeter Eisentraut
2009-02-06Fix cost_mergejoin's failure to adjust for rescanning of non-unique merge joinTom Lane
keys when considering a semi or anti join. This requires estimating the selectivity of the merge qual as though it were a regular inner join condition. To allow caching both that and the real outer-join-aware selectivity, split RestrictInfo.this_selec into two fields. This fixes one of the problems reported by Kevin Grittner.
2009-02-06Clean up some loose ends from the column privileges patch: addTom Lane
has_column_privilege and has_any_column_privilege SQL functions; fix the information_schema views that are supposed to pay attention to column privileges; adjust pg_stats to show stats for any column you have select privilege on; and fix COPY to allow copying a subset of columns if the user has suitable per-column privileges for all the columns. To improve efficiency of some of the information_schema views, extend the has_xxx_privilege functions to allow inquiring about the OR of a set of privileges in just one call. This is just exposing capability that already existed in the underlying aclcheck routines. In passing, make the information_schema views report the owner's own privileges as being grantable, since Postgres assumes this even when the grant option bit is not set in the ACL. This is a longstanding oversight. Also, make the new has_xxx_privilege functions for foreign data objects follow the same coding conventions used by the older ones. Stephen Frost and Tom Lane
2009-02-05Add PL/PgSQL FOUND and GET DIAGNOSTICS support for RETURN QUERYBruce Momjian
statement Pavel Stehule
2009-02-05Mixing long and int entries of a union only works on some architectures.Michael Meskes
2009-02-05Fix an old corner-case error in match_unsorted_outer(): don't considerTom Lane
the cheapest-total inner path as a new candidate while truncating the sort key list, if it already matched the full sort key list. This is too much of a corner case to be worth back-patching, since it's unusual for the cheapest total path to be sorted, and anyway no real harm is done (except in JOIN_SEMI/ANTI cases where cost_mergejoin is a bit broken at the moment). But it wasn't behaving as intended, so fix it. Noted while examining a test case from Kevin Grittner. This error doesn't explain his issue, but it does explain why "set enable_seqscan = off" seemed to reproduce it for me.
2009-02-04Added result checks for calls to gmtime().Michael Meskes
2009-02-03Argh, wrong line copied again.Michael Meskes
2009-02-03Fixed copy&paste mistake that made library use uninitialized variable.Michael Meskes
2009-02-03Add a failure check for syslogger's use of _beginthreadex(), and removeTom Lane
unnecessary thread address output parameter, to make this code look more like that in pg_restore.
2009-02-02Fix plpgsql to not treat INSERT INTO as an INTO-variables clause anywhereTom Lane
in the string, not just at the start. Per bug #4629 from Martin Blazek. Back-patch to 8.2; prior versions don't have the problem, at least not in the reported case, because they don't try to recognize INTO in non-SELECT statements. (IOW, this is really fallout from the RETURNING patch.)
2009-02-02Provide for parallel restoration from a custom format archive. Each data andAndrew Dunstan
post-data step is run in a separate worker child (a thread on Windows, a child process elsewhere) up to the concurrent number specified by the new pg_restore command-line --multi-thread | -m switch. Andrew Dunstan, with some editing by Tom Lane.
2009-02-02Allow reloption names to have qualifiers, initially supporting a TOASTAlvaro Herrera
qualifier, and add support for this in pg_dump. This allows TOAST tables to have user-defined fillfactor, and will also enable us to move the autovacuum parameters to reloptions without taking away the possibility of setting values for TOAST tables.
2009-02-02When changing a regression test file one should also change the expected ↵Michael Meskes
output file.
2009-02-02Set memory segment to '0', just to be sure.Michael Meskes
2009-02-02Fixed auto allocation for binary data types.Michael Meskes
2009-02-02Fixed bug in %s handling.Michael Meskes