]> granicus.if.org Git - postgresql/log
postgresql
15 years agoTighten up join ordering rules to account for recent more-careful analysis
Tom Lane [Fri, 27 Feb 2009 22:41:38 +0000 (22:41 +0000)]
Tighten up join ordering rules to account for recent more-careful analysis
of the associativity of antijoins.  Also improve optimizer/README discussion
of outer join ordering rules.

15 years agoIn CREATE CONVERSION, test that the given function is a valid conversion
Heikki Linnakangas [Fri, 27 Feb 2009 16:35:26 +0000 (16:35 +0000)]
In CREATE CONVERSION, test that the given function is a valid conversion
function for the specified source and destination encodings. We do that by
calling the function with an empty string. If it can't perform the requested
conversion, it will throw an error.

Backport to 7.4 - 8.3. Per bug report #4680 by Denis Afonin.

15 years agoAdd the long options to the psql --help display, where they were curiously
Peter Eisentraut [Fri, 27 Feb 2009 09:58:09 +0000 (09:58 +0000)]
Add the long options to the psql --help display, where they were curiously
missing.

Since this touches most lines of the help output, also change the mix of
puts and printf calls to printf everywhere, for easier code editing and
reviewing.

15 years agoEquip the programs installed by contrib with proper --help and --version
Peter Eisentraut [Fri, 27 Feb 2009 09:30:21 +0000 (09:30 +0000)]
Equip the programs installed by contrib with proper --help and --version
options and normally formatted help output.

15 years agoFix the inconsistent and wrong claims that the option value in CREATE
Peter Eisentraut [Fri, 27 Feb 2009 07:20:00 +0000 (07:20 +0000)]
Fix the inconsistent and wrong claims that the option value in CREATE
FOREIGN DATA WRAPPER/SERVER/USER MAPPING is optional.

15 years agoImprove create_unique_path to not be fooled by unrelated clauses that happen
Tom Lane [Fri, 27 Feb 2009 00:06:27 +0000 (00:06 +0000)]
Improve create_unique_path to not be fooled by unrelated clauses that happen
to be syntactically part of a semijoin clause.  For example given
WHERE EXISTS(SELECT ... WHERE upper.var = lower.var AND some-condition)
where some-condition is just a restriction on the lower relation, we can
use unique-ification on lower.var after having applied some-condition within
the scan on lower.

15 years agoRemove outdated join_1.out regression test comparison file. This has
Tom Lane [Thu, 26 Feb 2009 22:19:20 +0000 (22:19 +0000)]
Remove outdated join_1.out regression test comparison file.  This has
been broken for more than a month, so evidently it's not needed, at
least not for any configuration in the buildfarm.  We can correct it
and replace it later if we find something that still needs it.

15 years agoFinal removal of -q options, which haven't done anything since 8.3 and
Peter Eisentraut [Thu, 26 Feb 2009 16:20:55 +0000 (16:20 +0000)]
Final removal of -q options, which haven't done anything since 8.3 and
were marked for removal in 8.4.

15 years agoAdd a -w/--no-password option that prevents all password prompts to all
Peter Eisentraut [Thu, 26 Feb 2009 16:02:39 +0000 (16:02 +0000)]
Add a -w/--no-password option that prevents all password prompts to all
programs that have a -W/--password option.

In passing, remove the ancient PSQL_ALWAYS_GET_PASSWORDS compile option.

15 years agoFix an old problem in decompilation of CASE constructs: the ruleutils.c code
Tom Lane [Wed, 25 Feb 2009 18:00:01 +0000 (18:00 +0000)]
Fix an old problem in decompilation of CASE constructs: the ruleutils.c code
looks for a CaseTestExpr to figure out what the parser did, but it failed to
consider the possibility that an implicit coercion might be inserted above
the CaseTestExpr.  This could result in an Assert failure in some cases
(but correct results if Asserts weren't enabled), or an "unexpected CASE WHEN
clause" error in other cases.  Per report from Alan Li.

Back-patch to 8.1; problem doesn't exist before that because CASE was
implemented differently.

15 years agoRemove references to foreign data wrapper libraries, since they have
Magnus Hagander [Wed, 25 Feb 2009 17:42:19 +0000 (17:42 +0000)]
Remove references to foreign data wrapper libraries, since they have
been removed. This should unbreak the msvc build again.

15 years agoUse the same style in the help synopsis that other programs are using.
Peter Eisentraut [Wed, 25 Feb 2009 13:35:18 +0000 (13:35 +0000)]
Use the same style in the help synopsis that other programs are using.

15 years agoClean up help (-?) output.
Peter Eisentraut [Wed, 25 Feb 2009 13:34:32 +0000 (13:34 +0000)]
Clean up help (-?) output.

15 years agoRemove feof(stdin) calls related to when to prompt for a password,
Peter Eisentraut [Wed, 25 Feb 2009 13:24:40 +0000 (13:24 +0000)]
Remove feof(stdin) calls related to when to prompt for a password,
leftovers from when the password was read from stdin.

15 years agoSort the output of --help mostly alphabetical, make it align better, make
Peter Eisentraut [Wed, 25 Feb 2009 13:03:07 +0000 (13:03 +0000)]
Sort the output of --help mostly alphabetical, make it align better, make
help of pg_dump and pg_dumpall more similar.

15 years agoPut back a "continue" that went missing in the changes to start background
Heikki Linnakangas [Wed, 25 Feb 2009 11:07:43 +0000 (11:07 +0000)]
Put back a "continue" that went missing in the changes to start background
writer in WAL recovery.

15 years agoGet rid of the rather fuzzily defined FlattenedSubLink node type in favor of
Tom Lane [Wed, 25 Feb 2009 03:30:38 +0000 (03:30 +0000)]
Get rid of the rather fuzzily defined FlattenedSubLink node type in favor of
making pull_up_sublinks() construct a full-blown JoinExpr tree representation
of IN/EXISTS SubLinks that it is able to convert to semi or anti joins.
This makes pull_up_sublinks() a shade more complex, but the gain in semantic
clarity is worth it.  I still have more to do in this area to address the
previously-discussed problems, but this commit in itself fixes at least one
bug in HEAD, as shown by added regression test case.

15 years agoDon't append epoch to log_filename if no format specifier is given.
Peter Eisentraut [Tue, 24 Feb 2009 12:09:09 +0000 (12:09 +0000)]
Don't append epoch to log_filename if no format specifier is given.

Robert Haas

15 years agoAdd the possibility to specify an explicit validator function for foreign-data
Peter Eisentraut [Tue, 24 Feb 2009 10:06:36 +0000 (10:06 +0000)]
Add the possibility to specify an explicit validator function for foreign-data
wrappers (similar to procedural languages).  This way we don't need to retain
the nearly empty libraries, and we are more free in how to implement the
wrapper API in the future.

15 years agoRepair a longstanding bug in CLUSTER and the rewriting variants of ALTER
Tom Lane [Tue, 24 Feb 2009 01:38:10 +0000 (01:38 +0000)]
Repair a longstanding bug in CLUSTER and the rewriting variants of ALTER
TABLE: if the command is executed by someone other than the table owner (eg,
a superuser) and the table has a toast table, the toast table's pg_type row
ends up with the wrong typowner, ie, the command issuer not the table owner.
This is quite harmless for most purposes, since no interesting permissions
checks consult the pg_type row.  However, it could lead to unexpected failures
if one later tries to drop the role that issued the command (in 8.1 or 8.2),
or strange warnings from pg_dump afterwards (in 8.3 and up, which will allow
the DROP ROLE because we don't create a "redundant" owner dependency for table
rowtypes).  Problem identified by Cott Lang.

Back-patch to 8.1.  The problem is actually far older --- the CLUSTER variant
can be demonstrated in 7.0 --- but it's mostly cosmetic before 8.1 because we
didn't track ownership dependencies before 8.1.  Also, fixing it before 8.1
would require changing the call signature of heap_create_with_catalog(), which
seems to carry a nontrivial risk of breaking add-on modules.

15 years agoFix psql's \dD to show only one row per domain, even when the domain has
Tom Lane [Mon, 23 Feb 2009 15:59:55 +0000 (15:59 +0000)]
Fix psql's \dD to show only one row per domain, even when the domain has
multiple check constraints.

15 years agoAdd quotes to message
Peter Eisentraut [Mon, 23 Feb 2009 10:03:22 +0000 (10:03 +0000)]
Add quotes to message

15 years agoChange the signaling of end-of-recovery. Startup process now indicates end
Heikki Linnakangas [Mon, 23 Feb 2009 09:28:50 +0000 (09:28 +0000)]
Change the signaling of end-of-recovery. Startup process now indicates end
of recovery by exiting with exit code 0, like in previous releases. Per
Tom's suggestion.

15 years agoAdd note that inlined SQL functions aren't tracked by track_functions.
Tom Lane [Sun, 22 Feb 2009 23:50:30 +0000 (23:50 +0000)]
Add note that inlined SQL functions aren't tracked by track_functions.

15 years agoanother small message tweak
Peter Eisentraut [Fri, 20 Feb 2009 10:39:19 +0000 (10:39 +0000)]
another small message tweak

15 years agoReconnect to the right database when using parallel restore with -C. Fixes bug report...
Andrew Dunstan [Fri, 20 Feb 2009 02:57:21 +0000 (02:57 +0000)]
Reconnect to the right database when using parallel restore with -C. Fixes bug reported by Olivier Prenant

15 years agoSimplify overcomplicated (and overly restrictive) test to see whether an
Tom Lane [Fri, 20 Feb 2009 00:01:03 +0000 (00:01 +0000)]
Simplify overcomplicated (and overly restrictive) test to see whether an
IS NULL condition is rendered redundant by detection of an antijoin.
If we know that a join is an antijoin, then *any* Var coming out of its
righthand side must be NULL, not only the joining column(s).  Also,
it's still gonna be null after being passed up through higher joins,
whether they're outer joins or not.  I was misled by a faulty analogy
to reduce_outer_joins() in the original coding.  But consider

select * from a left join b on a.x = b.y where b.y is null and b.z is null;

The first IS NULL condition justifies deciding that the join is an antijoin
(if the = is strict) and then the second one is just plain redundant.

15 years agoImprove comments about semijoin implementation strategy, per a question
Tom Lane [Thu, 19 Feb 2009 20:32:45 +0000 (20:32 +0000)]
Improve comments about semijoin implementation strategy, per a question
from Robert Haas.

15 years agoFix bogus comment, from the patch to start bgwriter during archive
Heikki Linnakangas [Thu, 19 Feb 2009 16:43:13 +0000 (16:43 +0000)]
Fix bogus comment, from the patch to start bgwriter during archive
recovery.

15 years agoWordsmithing for PL/Perl messages
Peter Eisentraut [Thu, 19 Feb 2009 10:33:17 +0000 (10:33 +0000)]
Wordsmithing for PL/Perl messages

15 years agoAdd an implicit rule %.c -> %.i for running the C preprocessor.
Peter Eisentraut [Thu, 19 Feb 2009 10:32:30 +0000 (10:32 +0000)]
Add an implicit rule %.c -> %.i for running the C preprocessor.

I occasionally use this for debugging, and it seems wasteful to have to
reinvent this all the time.

15 years agoRemove croak and Perl_croak from gettext triggers. While we could
Peter Eisentraut [Thu, 19 Feb 2009 10:07:58 +0000 (10:07 +0000)]
Remove croak and Perl_croak from gettext triggers.  While we could
selectively mark up their arguments for translation, the Perl xsubpp tool
generates a bunch of additional Perl_croak calls that we cannot control,
so we'd be creating a confusing mix of translated and untranslated messages
of a similar kind.  This is something that might deserve a more
comprehensive solution later.

Also remove _ from gettext triggers, because it wasn't used.

Use SPI.c instead of SPI.xs as source file for xgettext, because the .xs
format isn't really supported in xgettext.

15 years agoIncrease NUM_AUXILIARY_PROCS, now that the startup process can co-exist
Heikki Linnakangas [Thu, 19 Feb 2009 08:02:32 +0000 (08:02 +0000)]
Increase NUM_AUXILIARY_PROCS, now that the startup process can co-exist
with other auxiliary processes for a short period. As witnessed by
buildfarm member dungbeetle.

15 years agoRemove the special cases to prevent minus-zero results in float4 and float8
Tom Lane [Wed, 18 Feb 2009 19:23:26 +0000 (19:23 +0000)]
Remove the special cases to prevent minus-zero results in float4 and float8
unary minus operators.  We weren't attempting to prevent minus zero anywhere
else; in view of our gradual trend to make the float datatypes more IEEE
standard compliant, we should allow minus zero here rather than disallow it
elsewhere.

We don't, however, expect that all platforms will produce minus zero, so
we need to adjust the one affected regression test to allow both results.

Per discussion of bug #4660.

(In passing, clean up a couple other minor infelicities in float.c.)

15 years agoStart background writer during archive recovery. Background writer now performs
Heikki Linnakangas [Wed, 18 Feb 2009 15:58:41 +0000 (15:58 +0000)]
Start background writer during archive recovery. Background writer now performs
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.

15 years agoAdd --freeze option to vacuumdb.
Bruce Momjian [Wed, 18 Feb 2009 12:11:55 +0000 (12:11 +0000)]
Add --freeze option to vacuumdb.

15 years agoHave pg_dump/pg_dumpall --binary-upgrade restore frozenids for relations
Bruce Momjian [Wed, 18 Feb 2009 12:07:08 +0000 (12:07 +0000)]
Have pg_dump/pg_dumpall --binary-upgrade restore frozenids for relations
and databases.

15 years agoMessage wordsmithing
Peter Eisentraut [Wed, 18 Feb 2009 11:33:04 +0000 (11:33 +0000)]
Message wordsmithing

15 years agoAdd missing newline.
Bruce Momjian [Tue, 17 Feb 2009 22:32:54 +0000 (22:32 +0000)]
Add missing newline.

15 years agoAdd pg_dump --binary-upgrade flag to be used by binary upgrade
Bruce Momjian [Tue, 17 Feb 2009 15:41:50 +0000 (15:41 +0000)]
Add pg_dump --binary-upgrade flag to be used by binary upgrade
utilities.

The new code allows transfer of dropped column information to the
upgraded server.

15 years agoAdd _() calls for the argument of plpgsql_yyerror() so it actually gets
Peter Eisentraut [Tue, 17 Feb 2009 13:01:13 +0000 (13:01 +0000)]
Add _() calls for the argument of plpgsql_yyerror() so it actually gets
translated somehow.

15 years agoAdd plpgsql_yyerror to gettext triggers
Peter Eisentraut [Tue, 17 Feb 2009 12:59:35 +0000 (12:59 +0000)]
Add plpgsql_yyerror to gettext triggers

15 years agoMark 3rd argument of validate_tupdesc_compat() for translation, instead of
Peter Eisentraut [Tue, 17 Feb 2009 12:51:59 +0000 (12:51 +0000)]
Mark 3rd argument of validate_tupdesc_compat() for translation, instead of
marking up each instance separately.

15 years agoRedefine _() to dgettext() instead of gettext() so that it uses the plpgsql
Peter Eisentraut [Tue, 17 Feb 2009 11:34:34 +0000 (11:34 +0000)]
Redefine _() to dgettext() instead of gettext() so that it uses the plpgsql
text domain, instead of the postgres one (or whatever the default may be).

15 years agoRemove gettext trigger write_stderr(), which isn't used by PLs.
Peter Eisentraut [Tue, 17 Feb 2009 09:24:57 +0000 (09:24 +0000)]
Remove gettext trigger write_stderr(), which isn't used by PLs.

15 years agoWrap some long queries.
Bruce Momjian [Mon, 16 Feb 2009 23:06:55 +0000 (23:06 +0000)]
Wrap some long queries.

15 years agoUppercase keywords in pg_dump.c
Bruce Momjian [Mon, 16 Feb 2009 22:50:41 +0000 (22:50 +0000)]
Uppercase keywords in pg_dump.c

15 years agoTeach the planner to treat a partial unique index as proving a variable is
Tom Lane [Sun, 15 Feb 2009 20:16:21 +0000 (20:16 +0000)]
Teach the planner to treat a partial unique index as proving a variable is
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.

15 years agoMinor wordsmithing.
Tom Lane [Sun, 15 Feb 2009 18:28:48 +0000 (18:28 +0000)]
Minor wordsmithing.

15 years agoLoop calling CallNamedPipe() several times in case it fails,
Magnus Hagander [Sun, 15 Feb 2009 13:58:18 +0000 (13:58 +0000)]
Loop calling CallNamedPipe() several times in case it fails,
since it can be transient failures, causing kill() to not
properly send signals.

Original patch from Steve Marshall, modified by me.

15 years agoA couple of marginal performance hacks for the information_schema views:
Tom Lane [Sat, 14 Feb 2009 20:48:36 +0000 (20:48 +0000)]
A couple of marginal performance hacks for the information_schema views:
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.

15 years agoFix UNLISTEN to fall out quickly if the current backend has never executed
Tom Lane [Fri, 13 Feb 2009 17:12:04 +0000 (17:12 +0000)]
Fix UNLISTEN to fall out quickly if the current backend has never executed
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.

15 years agodo not use unsetenv.c on mingw
Andrew Dunstan [Thu, 12 Feb 2009 15:12:47 +0000 (15:12 +0000)]
do not use unsetenv.c on mingw

15 years agoThe Czech (cs_CZ) and Slovak (sk_SK) locales sort numbers after letters,
Peter Eisentraut [Thu, 12 Feb 2009 15:11:44 +0000 (15:11 +0000)]
The Czech (cs_CZ) and Slovak (sk_SK) locales sort numbers after letters,
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.

15 years agoUnset language-related locale settings in any case, otherwise psql will
Peter Eisentraut [Thu, 12 Feb 2009 13:26:03 +0000 (13:26 +0000)]
Unset language-related locale settings in any case, otherwise psql will
speak in tongues and mess up the regression test diffs.

15 years agoRemove tabs from SGML.
Bruce Momjian [Thu, 12 Feb 2009 13:25:33 +0000 (13:25 +0000)]
Remove tabs from SGML.

15 years agoDon't call SetEnvironmentVariable() when removing an environment variable,
Magnus Hagander [Thu, 12 Feb 2009 12:53:34 +0000 (12:53 +0000)]
Don't call SetEnvironmentVariable() when removing an environment variable,
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.

15 years agoChange ALTER TABLE SET WITHOUT OIDS to rewrite the whole table to physically
Tom Lane [Wed, 11 Feb 2009 21:11:16 +0000 (21:11 +0000)]
Change ALTER TABLE SET WITHOUT OIDS to rewrite the whole table to physically
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.

15 years agoTweak configure to attempt to add -qnoansialias to CFLAGS whenever running
Tom Lane [Wed, 11 Feb 2009 20:02:40 +0000 (20:02 +0000)]
Tweak configure to attempt to add -qnoansialias to CFLAGS whenever running
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.

15 years agoImprove psql \d+ to show TOAST reloptions too. Per complaint from
Alvaro Herrera [Wed, 11 Feb 2009 19:12:04 +0000 (19:12 +0000)]
Improve psql \d+ to show TOAST reloptions too.  Per complaint from
ITAGAKI Takahiro.

15 years agoOnly unset the locale environment when --no-locale is used (the way it was
Peter Eisentraut [Wed, 11 Feb 2009 14:03:42 +0000 (14:03 +0000)]
Only unset the locale environment when --no-locale is used (the way it was
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.

15 years agoClarify PQinitSSL() documentation to mention what the argument controls.
Bruce Momjian [Wed, 11 Feb 2009 04:08:47 +0000 (04:08 +0000)]
Clarify PQinitSSL() documentation to mention what the argument controls.

15 years agoSupport for KOI8U encoding
Peter Eisentraut [Tue, 10 Feb 2009 19:29:39 +0000 (19:29 +0000)]
Support for KOI8U encoding

15 years agoRemove the encoding *numbers* from the comments. They are useless, and
Peter Eisentraut [Tue, 10 Feb 2009 16:44:44 +0000 (16:44 +0000)]
Remove the encoding *numbers* from the comments.  They are useless, and
make maintenance harder.

15 years agoAdd possibility to generate only some files, by passing command-line
Peter Eisentraut [Tue, 10 Feb 2009 16:36:55 +0000 (16:36 +0000)]
Add possibility to generate only some files, by passing command-line
arguments.

15 years agoUpdate wording of how to prevent pg_dump from affecting statistics
Bruce Momjian [Tue, 10 Feb 2009 00:55:21 +0000 (00:55 +0000)]
Update wording of how to prevent pg_dump from affecting statistics
collection.

15 years agoAdopt Bob Jenkins' improved hash function for hash_any(). This changes the
Tom Lane [Mon, 9 Feb 2009 21:18:28 +0000 (21:18 +0000)]
Adopt Bob Jenkins' improved hash function for hash_any().  This changes the
contents of hash indexes (again), so bump catversion.

Kenneth Marshall

15 years agoUpdate autovacuum to use reloptions instead of a system catalog, for
Alvaro Herrera [Mon, 9 Feb 2009 20:57:59 +0000 (20:57 +0000)]
Update autovacuum to use reloptions instead of a system catalog, for
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.

15 years agoFix spelling error in docs.
Bruce Momjian [Mon, 9 Feb 2009 14:09:56 +0000 (14:09 +0000)]
Fix spelling error in docs.

Erik Rijkers

15 years agoEnsure that INSERT ... SELECT into a table with OIDs never copies row OIDs
Tom Lane [Sun, 8 Feb 2009 18:02:27 +0000 (18:02 +0000)]
Ensure that INSERT ... SELECT into a table with OIDs never copies row OIDs
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).

15 years agoDocument that LIMIT NULL is the same as no LIMIT clause.
Bruce Momjian [Sat, 7 Feb 2009 20:11:16 +0000 (20:11 +0000)]
Document that LIMIT NULL is the same as no LIMIT clause.

15 years agoRemove documentation mention that hash indexes perform no better than
Bruce Momjian [Sat, 7 Feb 2009 20:05:44 +0000 (20:05 +0000)]
Remove documentation mention that hash indexes perform no better than
btree;  keep mention about missing WAL logging.

Kenneth Marshall

15 years agoUppercase CHECK mention in relchecks documentation mention.
Bruce Momjian [Sat, 7 Feb 2009 19:27:25 +0000 (19:27 +0000)]
Uppercase CHECK mention in relchecks documentation mention.

15 years agoecpg requires libpq; add Makefile rules to require libpq to be built
Bruce Momjian [Sat, 7 Feb 2009 17:17:34 +0000 (17:17 +0000)]
ecpg requires libpq;  add Makefile rules to require libpq to be built
first.

Alvaro Herrera

15 years agoProperly wrap new pg_dump doc text.
Bruce Momjian [Sat, 7 Feb 2009 15:25:51 +0000 (15:25 +0000)]
Properly wrap new pg_dump doc text.

15 years agoUpdate pg_constraint.conkey documentation description.
Bruce Momjian [Sat, 7 Feb 2009 15:00:27 +0000 (15:00 +0000)]
Update pg_constraint.conkey documentation description.

15 years agoDocument disabling the statistics collector pg_dump activity, and give a
Bruce Momjian [Sat, 7 Feb 2009 14:31:30 +0000 (14:31 +0000)]
Document disabling the statistics collector pg_dump activity, and give a
bit more visibility to the PGOPTIONS environment variable supported by
libpq.

Bryce Nesbitt

15 years agoFix to_timestamp() to not require upper/lower case matching for meridian
Bruce Momjian [Sat, 7 Feb 2009 14:16:46 +0000 (14:16 +0000)]
Fix to_timestamp() to not require upper/lower case matching for meridian
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

15 years agoFix obsolete comment. Zdenek Kotala
Heikki Linnakangas [Sat, 7 Feb 2009 10:49:36 +0000 (10:49 +0000)]
Fix obsolete comment. Zdenek Kotala

15 years agoSet column privileges to supported
Peter Eisentraut [Sat, 7 Feb 2009 01:02:55 +0000 (01:02 +0000)]
Set column privileges to supported

15 years agoFix cost_mergejoin's failure to adjust for rescanning of non-unique merge join
Tom Lane [Fri, 6 Feb 2009 23:43:24 +0000 (23:43 +0000)]
Fix cost_mergejoin's failure to adjust for rescanning of non-unique merge join
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.

15 years agoOoops, forgot to update COPY reference page to mention column privileges.
Tom Lane [Fri, 6 Feb 2009 21:22:49 +0000 (21:22 +0000)]
Ooops, forgot to update COPY reference page to mention column privileges.

15 years agoClean up some loose ends from the column privileges patch: add
Tom Lane [Fri, 6 Feb 2009 21:15:12 +0000 (21:15 +0000)]
Clean up some loose ends from the column privileges patch: add
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

15 years agoFix typo in docs.
Bruce Momjian [Fri, 6 Feb 2009 19:24:12 +0000 (19:24 +0000)]
Fix typo in docs.

15 years agoDocument ways to avoid libpq WSACleanup() overhead on Windows.
Bruce Momjian [Fri, 6 Feb 2009 18:18:54 +0000 (18:18 +0000)]
Document ways to avoid libpq WSACleanup() overhead on Windows.

Andrew Chernow

15 years agoAdd PL/PgSQL FOUND and GET DIAGNOSTICS support for RETURN QUERY
Bruce Momjian [Thu, 5 Feb 2009 15:25:49 +0000 (15:25 +0000)]
Add PL/PgSQL FOUND and GET DIAGNOSTICS support for RETURN QUERY
statement

Pavel Stehule

15 years agoMixing long and int entries of a union only works on some architectures.
Michael Meskes [Thu, 5 Feb 2009 08:28:47 +0000 (08:28 +0000)]
Mixing long and int entries of a union only works on some architectures.

15 years agoFix an old corner-case error in match_unsorted_outer(): don't consider
Tom Lane [Thu, 5 Feb 2009 01:24:55 +0000 (01:24 +0000)]
Fix an old corner-case error in match_unsorted_outer(): don't consider
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.

15 years agoFix some SGML-compiler warnings on -wxml mode.
Alvaro Herrera [Wed, 4 Feb 2009 21:30:41 +0000 (21:30 +0000)]
Fix some SGML-compiler warnings on -wxml mode.

15 years agoUpdate read committed documentation to better explain undesirable
Bruce Momjian [Wed, 4 Feb 2009 16:05:50 +0000 (16:05 +0000)]
Update read committed documentation to better explain undesirable
behavior of concurrent commands in cases where rows are being added and
removed from matching query criteria.

Minor word-smithing.

15 years agoAdded result checks for calls to gmtime().
Michael Meskes [Wed, 4 Feb 2009 08:51:10 +0000 (08:51 +0000)]
Added result checks for calls to gmtime().

15 years agoArgh, wrong line copied again.
Michael Meskes [Tue, 3 Feb 2009 08:55:45 +0000 (08:55 +0000)]
Argh, wrong line copied again.

15 years agoFixed copy&paste mistake that made library use uninitialized variable.
Michael Meskes [Tue, 3 Feb 2009 08:48:29 +0000 (08:48 +0000)]
Fixed copy&paste mistake that made library use uninitialized variable.

15 years agoallow alternative names for tclsh used on Windows
Andrew Dunstan [Tue, 3 Feb 2009 01:24:57 +0000 (01:24 +0000)]
allow alternative names for tclsh used on Windows

15 years agoAdd a failure check for syslogger's use of _beginthreadex(), and remove
Tom Lane [Tue, 3 Feb 2009 00:59:26 +0000 (00:59 +0000)]
Add a failure check for syslogger's use of _beginthreadex(), and remove
unnecessary thread address output parameter, to make this code look more
like that in pg_restore.

15 years agoDocument the longstanding behavior of LIMIT NULL and OFFSET NULL,
Tom Lane [Mon, 2 Feb 2009 20:42:57 +0000 (20:42 +0000)]
Document the longstanding behavior of LIMIT NULL and OFFSET NULL,
per gripe from David Wheeler that this was mentioned nowhere.
In passing, editorialize a bit on the description of the SQL:2008
equivalent syntax.

15 years agoFix plpgsql to not treat INSERT INTO as an INTO-variables clause anywhere
Tom Lane [Mon, 2 Feb 2009 20:25:38 +0000 (20:25 +0000)]
Fix plpgsql to not treat INSERT INTO as an INTO-variables clause anywhere
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.)

15 years agoProvide for parallel restoration from a custom format archive. Each data and
Andrew Dunstan [Mon, 2 Feb 2009 20:07:37 +0000 (20:07 +0000)]
Provide for parallel restoration from a custom format archive. Each data and
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.

15 years agoAllow reloption names to have qualifiers, initially supporting a TOAST
Alvaro Herrera [Mon, 2 Feb 2009 19:31:40 +0000 (19:31 +0000)]
Allow reloption names to have qualifiers, initially supporting a TOAST
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.

15 years agoWhen changing a regression test file one should also change the expected output file.
Michael Meskes [Mon, 2 Feb 2009 16:54:28 +0000 (16:54 +0000)]
When changing a regression test file one should also change the expected output file.