OSDN Git Service

pg-rex/syncrep.git
18 years agofix comparison with SPI_processed
Teodor Sigaev [Wed, 31 May 2006 14:53:41 +0000 (14:53 +0000)]
fix comparison with SPI_processed

18 years agoAdd thesaurus dictionary which can replace N>0 lexemes by M>0 lexemes.
Teodor Sigaev [Wed, 31 May 2006 14:05:31 +0000 (14:05 +0000)]
Add thesaurus dictionary which can replace N>0 lexemes by M>0 lexemes.
It required some changes in lexize algorithm, but interface with
dictionaries stays compatible with old dictionaries.

Funded by Georgia Public Library Service and LibLime, Inc.

18 years agoRecommend '' for literal ', rather than \', in psql documentation.
Bruce Momjian [Wed, 31 May 2006 11:47:20 +0000 (11:47 +0000)]
Recommend '' for literal ', rather than \', in psql documentation.

18 years agoSupport '' for literal ' in psql single-quote strings, documentation update.
Bruce Momjian [Wed, 31 May 2006 11:35:17 +0000 (11:35 +0000)]
Support '' for literal ' in psql single-quote strings, documentation update.

18 years agoEscape processing patch:
Bruce Momjian [Wed, 31 May 2006 11:02:42 +0000 (11:02 +0000)]
Escape processing patch:

        o  turns off escape_string_warning in pg_dumpall.c
        o  optionally use E'' for \password (undocumented option?)
        o  honor standard_conforming-strings for \copy (but not
           support literal E'' strings)
        o  optionally use E'' for \d commands
        o  turn off escape_string_warning for createdb, createuser,
           droplang

18 years agoUpdate cvs command example to show diff -rBASE.
Bruce Momjian [Wed, 31 May 2006 10:24:29 +0000 (10:24 +0000)]
Update cvs command example to show diff -rBASE.

18 years agoSomehow a ";" got lost which changed the logic. This btw is the first fix resulting...
Michael Meskes [Wed, 31 May 2006 08:12:48 +0000 (08:12 +0000)]
Somehow a ";" got lost which changed the logic. This btw is the first fix resulting from SoC.

18 years agoMagic blocks don't do us any good unless we use 'em ... so install one
Tom Lane [Tue, 30 May 2006 22:12:16 +0000 (22:12 +0000)]
Magic blocks don't do us any good unless we use 'em ... so install one
in every shared library.

18 years agoUn-DOS-ify newly added files.
Tom Lane [Tue, 30 May 2006 21:34:15 +0000 (21:34 +0000)]
Un-DOS-ify newly added files.

18 years agoCode review for magic-block patch. Remove separate header file pgmagic.h,
Tom Lane [Tue, 30 May 2006 21:21:30 +0000 (21:21 +0000)]
Code review for magic-block patch.  Remove separate header file pgmagic.h,
as this seems only likely to create headaches for module developers.  Put
the macro in the pre-existing fmgr.h file instead.  Avoid being too cute
about how many fields we can cram into a word, and avoid trying to fetch
from a library we've already unlinked.
Along the way, it occurred to me that the magic block really ought to be
'const' so it can be stored in the program text area.  Do the same for
the existing data blocks for PG_FUNCTION_INFO_V1 functions.

18 years agoCode review for EXPLAIN patch. Fix some typos, make it behave sanely
Tom Lane [Tue, 30 May 2006 19:24:25 +0000 (19:24 +0000)]
Code review for EXPLAIN patch.  Fix some typos, make it behave sanely
across multiple loops, get rid of the shaky assumption that exactly one
tuple is returned per node iteration.

18 years agoPostmasterIsAlive test really ought to be in the inner loop for safety.
Tom Lane [Tue, 30 May 2006 17:08:14 +0000 (17:08 +0000)]
PostmasterIsAlive test really ought to be in the inner loop for safety.

18 years agoRemove pqsignalinquire(), which is unused and has portability issues.
Tom Lane [Tue, 30 May 2006 15:57:56 +0000 (15:57 +0000)]
Remove pqsignalinquire(), which is unused and has portability issues.

18 years agoUpdate ppport.h to not cause warnings with newest Perl versions.
Tom Lane [Tue, 30 May 2006 15:48:20 +0000 (15:48 +0000)]
Update ppport.h to not cause warnings with newest Perl versions.
This is just the minimal necessary change; we might want to adopt
later PPPort output instead.

18 years agoAdd pgmagic header block to store compile-time constants:
Bruce Momjian [Tue, 30 May 2006 14:09:32 +0000 (14:09 +0000)]
Add pgmagic header block to store compile-time constants:

It now only checks four things:

Major version number (7.4 or 8.1 for example)
NAMEDATALEN
FUNC_MAX_ARGS
INDEX_MAX_KEYS

The three constants were chosen because:

1. We document them in the config page in the docs
2. We mark them as changable in pg_config_manual.h
3. Changing any of these will break some of the more popular modules:

FUNC_MAX_ARGS changes fmgr interface, every module uses this NAMEDATALEN
changes syscache interface, every PL as well as tsearch uses this
INDEX_MAX_KEYS breaks tsearch and anything using GiST.

Martijn van Oosterhout

18 years agoMake EXPLAIN sampling smarter, to avoid excessive sampling delay.
Bruce Momjian [Tue, 30 May 2006 14:01:58 +0000 (14:01 +0000)]
Make EXPLAIN sampling smarter, to avoid excessive sampling delay.

Martijn van Oosterhout

18 years agoClarify the HINT for 'checkpoint request failed', per recent complaint
Tom Lane [Tue, 30 May 2006 13:58:49 +0000 (13:58 +0000)]
Clarify the HINT for 'checkpoint request failed', per recent complaint
demonstrating that its intent wasn't obvious.

18 years agoEmit warnings for unknown configure options.
Bruce Momjian [Tue, 30 May 2006 13:52:25 +0000 (13:52 +0000)]
Emit warnings for unknown configure options.

Martijn van Oosterhout

18 years agoRevert patch, needs more work:
Bruce Momjian [Tue, 30 May 2006 13:40:56 +0000 (13:40 +0000)]
Revert patch, needs more work:

---------------------------------------------------------------------------

Add dynamic record inspection to PL/PgSQL, useful for generic triggers:

  tval2 := r.(cname);

or

  columns := r.(*);

Titus von Boxberg

18 years agoMove conversion dependency patch to the proper branch, out of 8.1.X,
Bruce Momjian [Tue, 30 May 2006 13:36:30 +0000 (13:36 +0000)]
Move conversion dependency patch to the proper branch, out of 8.1.X,
into HEAD.

18 years agoPrevent multiple archivers from starting. Backpatch to 8.1.X.
Bruce Momjian [Tue, 30 May 2006 13:30:49 +0000 (13:30 +0000)]
Prevent multiple archivers from starting.  Backpatch to 8.1.X.

Simon Riggs

18 years agoAdd /contrib/adminpack to contrib/Makefile, do case-folding change.
Bruce Momjian [Tue, 30 May 2006 13:25:57 +0000 (13:25 +0000)]
Add /contrib/adminpack to contrib/Makefile, do case-folding change.

18 years agoFix printf mask for SizeVfdCache
Bruce Momjian [Tue, 30 May 2006 13:04:59 +0000 (13:04 +0000)]
Fix printf mask for SizeVfdCache

Qingqing Zhou

18 years agoRe-defines SHA2 symbols so that they would not conflict with certain
Bruce Momjian [Tue, 30 May 2006 12:56:45 +0000 (12:56 +0000)]
Re-defines SHA2 symbols so that they would not conflict with certain
versions of OpenSSL.  If your OpenSSL does not contain SHA2, then there
should be no conflict.  But ofcourse, if someone upgrades OpenSSL,
server starts crashing.

Backpatched to 8.1.X.

Marko Kreen

18 years agoAdd "inline" compile fix for MSVC/BCC:
Bruce Momjian [Tue, 30 May 2006 12:43:28 +0000 (12:43 +0000)]
Add "inline" compile fix for MSVC/BCC:

#define inline __inline

Backpatch to 8.1.X.

Hiroshi Saito

18 years agoRe-add btree_gist description.
Bruce Momjian [Tue, 30 May 2006 12:27:39 +0000 (12:27 +0000)]
Re-add btree_gist description.

18 years agoAdd Pgadmin administration functions to /contrib/adminpack.
Bruce Momjian [Tue, 30 May 2006 12:07:31 +0000 (12:07 +0000)]
Add Pgadmin administration functions to /contrib/adminpack.

Dave Page

18 years agoAdd dynamic record inspection to PL/PgSQL, useful for generic triggers:
Bruce Momjian [Tue, 30 May 2006 12:03:13 +0000 (12:03 +0000)]
Add dynamic record inspection to PL/PgSQL, useful for generic triggers:

  tval2 := r.(cname);

or

  columns := r.(*);

Titus von Boxberg

18 years agoBack out patch, wrong previous commit message.
Bruce Momjian [Tue, 30 May 2006 11:58:05 +0000 (11:58 +0000)]
Back out patch, wrong previous commit message.

18 years agoAdd regexp_replace() to string functions section.
Bruce Momjian [Tue, 30 May 2006 11:54:51 +0000 (11:54 +0000)]
Add regexp_replace() to string functions section.

Joachim Wieland

18 years agoUpdate PL documentation:
Bruce Momjian [Tue, 30 May 2006 11:40:21 +0000 (11:40 +0000)]
Update PL documentation:

An article at WebProNews quoted from the PG docs as to the merits of
stored procedures.  I have added a bit more material on their merits,
as well as making a few changes to improve the introductions to
PL/Perl and PL/Tcl.

Chris Browne

18 years agoUpdate Japanese FAQ.
Bruce Momjian [Tue, 30 May 2006 10:29:18 +0000 (10:29 +0000)]
Update Japanese FAQ.

J.Kuwamura

18 years agoAdd item:
Bruce Momjian [Tue, 30 May 2006 10:21:12 +0000 (10:21 +0000)]
Add item:

> * Consider GnuTLS if OpenSSL license becomes a problem
>
>   See http://archives.postgresql.org/pgsql-patches/2006-05/msg00040.php.

18 years agoFix ancient misdescription of namegt/namege in comment. Greg Stark
Tom Lane [Tue, 30 May 2006 05:22:59 +0000 (05:22 +0000)]
Fix ancient misdescription of namegt/namege in comment.  Greg Stark

18 years agoPatch reverted because of random buildfarm failures:
Bruce Momjian [Tue, 30 May 2006 02:35:39 +0000 (02:35 +0000)]
Patch reverted because of random buildfarm failures:

---------------------------------------------------------------------------

Delay write of pg_stats file to once every five minutes, during
shutdown, or when requested by a backend:

It changes so the file is only written once every 5 minutes (changeable
of course, I just picked something) instead of once every half second.
It's still written when the stats collector shuts down, just as before.
And it is now also written on backend request. A backend requests a
rewrite by simply sending a special stats message. It operates on the
assumption that the backends aren't actually going to read the
statistics file very often, compared to how frequent it's written today.

Magnus Hagander

18 years agoAdd:
Bruce Momjian [Mon, 29 May 2006 23:29:38 +0000 (23:29 +0000)]
Add:

>  o Allow timezone names in SQL strings, '2006-05-24 21:11
>     Americas/New_York'::timestamptz

18 years agoAdd PQclear() calls, for completeness (exits shortly anyway).
Bruce Momjian [Mon, 29 May 2006 19:52:46 +0000 (19:52 +0000)]
Add PQclear() calls, for completeness (exits shortly anyway).

18 years agoMake plperl's $_TD trigger data a global rather than a lexical variable,
Andrew Dunstan [Mon, 29 May 2006 13:51:23 +0000 (13:51 +0000)]
Make plperl's $_TD trigger data a global rather than a lexical variable,
with a fresh local value for each invocation, to avoid unexpected sharing
violations. Per recent -hackers discussion.

18 years agoSom improve page split in multicolumn GiST index.
Teodor Sigaev [Mon, 29 May 2006 12:50:06 +0000 (12:50 +0000)]
Som improve page split in multicolumn GiST index.
If user picksplit on n-th column generate equals
left and right unions then it calls picksplit on n+1-th
column.

18 years agoCorrect cheking in findParents(). i
Teodor Sigaev [Mon, 29 May 2006 08:39:44 +0000 (08:39 +0000)]
Correct cheking in findParents(). i
From Andreas Seltenreich <andreas+pg@gate450.dyndns.org>

18 years agoenlargePQExpBuffer, alone among the functions exported by pqexpbuffer.h,
Tom Lane [Sun, 28 May 2006 22:42:05 +0000 (22:42 +0000)]
enlargePQExpBuffer, alone among the functions exported by pqexpbuffer.h,
wasn't exported by exports.txt.  Ooops.  Per buildfarm results.

18 years agoFix up pg_dump to do string escaping fully correctly for client encoding
Tom Lane [Sun, 28 May 2006 21:13:54 +0000 (21:13 +0000)]
Fix up pg_dump to do string escaping fully correctly for client encoding
and standard_conforming_strings; likewise for the other client programs
that need it.  As per previous discussion, a pg_dump dump now conforms
to the standard_conforming_strings setting of the source database.
We don't use E'' syntax in the dump, thereby improving portability of
the SQL.  I added a SET escape_strings_warning = off command to keep
the dumps from getting a lot of back-chatter from that.

18 years agoDon't call PQclear until the struct is really no longer going to be used.
Alvaro Herrera [Sun, 28 May 2006 17:23:29 +0000 (17:23 +0000)]
Don't call PQclear until the struct is really no longer going to be used.
Per Coverity bug #304.  Thanks to Martijn van Oosterhout for reporting it.

Zero out the pointer fields of PGresult so that these mistakes are more
easily catched, per discussion.

18 years ago fix typo
Andrew Dunstan [Sun, 28 May 2006 03:12:00 +0000 (03:12 +0000)]
 fix typo

18 years agoTG_table_name and TG_table_schema for plpgsql, plus docs and regression.
Andrew Dunstan [Sun, 28 May 2006 03:03:17 +0000 (03:03 +0000)]
TG_table_name and TG_table_schema for plpgsql, plus docs and regression.

18 years agoRemove traces of otherwise unused RELKIND_SPECIAL symbol. Leave the psql bits
Alvaro Herrera [Sun, 28 May 2006 02:27:08 +0000 (02:27 +0000)]
Remove traces of otherwise unused RELKIND_SPECIAL symbol.  Leave the psql bits
in place though, so that it plays nicely with older servers.

Per discussion.

18 years agoTG_table_name and TG_table_schema for pl/tcl, plus regression test and docs.
Andrew Dunstan [Sat, 27 May 2006 20:24:16 +0000 (20:24 +0000)]
TG_table_name and TG_table_schema for pl/tcl, plus regression test and docs.

18 years agoRevert ill-considered change to plpgsql: it should not rely on the
Tom Lane [Sat, 27 May 2006 19:45:52 +0000 (19:45 +0000)]
Revert ill-considered change to plpgsql: it should not rely on the
current setting of standard_conforming_strings to decide how to quote
strings that will be used later.  There is much more to do here but
this particular change breaks the build on Windows, so fix it now.

18 years agoFix initdb to properly escape quotes and backslashes in the supplied
Tom Lane [Sat, 27 May 2006 18:07:06 +0000 (18:07 +0000)]
Fix initdb to properly escape quotes and backslashes in the supplied
superuser password, and also in the paths of the various files it issues
SQL COPY commands for.  Per bug #2424.

18 years agoRe-introduce the yylex filter function formerly used to support UNION
Tom Lane [Sat, 27 May 2006 17:38:46 +0000 (17:38 +0000)]
Re-introduce the yylex filter function formerly used to support UNION
JOIN, which I removed in a recent fit of over-optimism that we wouldn't
have any future use for it.  Now it's needed to support disambiguating
WITH CHECK OPTION from WITH TIME ZONE.  As proof of concept, add stub
grammar productions for WITH CHECK OPTION.

18 years agoLooks like the new plpython regression test fails on older pythons. See if this works.
Andrew Dunstan [Sat, 27 May 2006 12:39:11 +0000 (12:39 +0000)]
Looks like the new plpython regression test fails on older pythons. See if this works.

18 years agoUse E'' strings internally only when standard_conforming_strings =
Bruce Momjian [Fri, 26 May 2006 23:48:54 +0000 (23:48 +0000)]
Use E'' strings internally only when standard_conforming_strings =
'off'. This allows pg_dump output with standard_conforming_strings =
'on' to generate proper strings that can be loaded into other databases
without the backslash doubling we typically do.  I have added the
dumping of the standard_conforming_strings value to pg_dump.

I also added standard backslash handling for plpgsql.

18 years agoFurther hacking on performance of COPY OUT. It seems that fwrite()'s
Tom Lane [Fri, 26 May 2006 22:50:02 +0000 (22:50 +0000)]
Further hacking on performance of COPY OUT.  It seems that fwrite()'s
per-call overhead is quite significant, at least on Linux: whatever
it's doing is more than just shoving the bytes into a buffer.  Buffering
the data so we can call fwrite() just once per row seems to be a win.

18 years agoSupport binary COPY through psql. Also improve detection of write errors
Tom Lane [Fri, 26 May 2006 19:51:29 +0000 (19:51 +0000)]
Support binary COPY through psql.  Also improve detection of write errors
during COPY OUT.  Andreas Pflug, some editorialization by moi.

18 years agoUpdate AIX FAQ.
Bruce Momjian [Fri, 26 May 2006 19:48:32 +0000 (19:48 +0000)]
Update AIX FAQ.

Chris Browne

18 years agoAdd table_name and table_schema to plpython trigger data, plus docs and regression...
Andrew Dunstan [Fri, 26 May 2006 19:23:09 +0000 (19:23 +0000)]
Add table_name and table_schema to plpython trigger data, plus docs and regression test.

18 years agoAdd table_name and table_schema to plperl trigger data. relname is
Andrew Dunstan [Fri, 26 May 2006 17:34:16 +0000 (17:34 +0000)]
Add table_name and table_schema to plperl trigger data. relname is
kept but now deprecated. Patch from Adam Sjøgren. Add regression test to
show plperl trigger data (Andrew).
TBD: apply similar changes to plpgsql, plpython and pltcl.

18 years agoFix findParents() in case of multiple levels to find.
Teodor Sigaev [Fri, 26 May 2006 08:01:17 +0000 (08:01 +0000)]
Fix findParents() in case of multiple levels to find.
By Andreas Seltenreich <andreas+pg@gate450.dyndns.org>

18 years agoReduce per-character overhead in COPY OUT by combining calls to
Tom Lane [Thu, 25 May 2006 18:42:17 +0000 (18:42 +0000)]
Reduce per-character overhead in COPY OUT by combining calls to
CopySendData.

18 years agoFix pg_restore to process BLOB COMMENT entries correctly; they aren't
Tom Lane [Wed, 24 May 2006 21:20:11 +0000 (21:20 +0000)]
Fix pg_restore to process BLOB COMMENT entries correctly; they aren't
really tables and shouldn't get DISABLE TRIGGER processing.  Per bug
#2452 from Robert Treat.

18 years agoRemove pg_attribute detail, add URL
Bruce Momjian [Wed, 24 May 2006 18:12:38 +0000 (18:12 +0000)]
Remove pg_attribute detail, add URL

<    pg_attribute.attislocal has to be set to 'false' for ADD, and
<    pg_attribute.attinhcount adjusted appropriately
>    See http://archives.postgresql.org/pgsql-hackers/2006-05/msg00988.php.

18 years ago* Add support NULL to GiST.
Teodor Sigaev [Wed, 24 May 2006 11:01:39 +0000 (11:01 +0000)]
* Add support NULL to GiST.
* some refactoring and simplify code int gistutil.c and gist.c
* now in some cases it can be called used-defined
  picksplit method for non-first column in index, but here
is a place to do more.
* small fix of docs related to support NULL.

18 years agoRemove trailing blank line from exports.txt.
Bruce Momjian [Tue, 23 May 2006 22:14:27 +0000 (22:14 +0000)]
Remove trailing blank line from exports.txt.

18 years agoAdd PQisthreadsafe() to libpq, to allow library applications to query
Bruce Momjian [Tue, 23 May 2006 22:13:19 +0000 (22:13 +0000)]
Add PQisthreadsafe() to libpq, to allow library applications to query
the thread-safety status of the library.

18 years agoTweak writetup_heap/readtup_heap to avoid storing the tuple identity
Tom Lane [Tue, 23 May 2006 21:37:59 +0000 (21:37 +0000)]
Tweak writetup_heap/readtup_heap to avoid storing the tuple identity
and transaction visibility fields of tuples being sorted.  These are
always uninteresting in a tuple being sorted (if the fields were actually
selected, they'd have been pulled out into user columns beforehand).
This saves about 24 bytes per row being sorted, which is a useful savings
for any but the widest of sort rows.  Per recent discussion.

18 years agoUpdate text:
Bruce Momjian [Tue, 23 May 2006 20:59:29 +0000 (20:59 +0000)]
Update text:

>    This allows tables to be added/removed from an inheritance
>    hierarchy.  This is particularly useful for table partitioning.

18 years agoAdd:
Bruce Momjian [Tue, 23 May 2006 20:57:53 +0000 (20:57 +0000)]
Add:

>  o Add ALTER TABLE tab ADD/DROP INHERITS parent
>
>    pg_attribute.attislocal has to be set to 'false' for ADD, and
>    pg_attribute.attinhcount adjusted appropriately
>

18 years agoRename in release notes: Mac -> OS/X, Intel to x86:
Bruce Momjian [Tue, 23 May 2006 20:20:52 +0000 (20:20 +0000)]
Rename in release notes: Mac -> OS/X, Intel to x86:

  Fix for OS/X Bonjour on x86 systems (Ashley Clark)

18 years agoAvoid duplicate definition of LOCALEDIR in pg_config.h, already defined
Bruce Momjian [Tue, 23 May 2006 19:28:45 +0000 (19:28 +0000)]
Avoid duplicate definition of LOCALEDIR in pg_config.h, already defined
in port/pg_config_paths.h.

18 years agoNew wording, "What is the upgrade process for PostgreSQL?"
Bruce Momjian [Tue, 23 May 2006 15:51:07 +0000 (15:51 +0000)]
New wording, "What is the upgrade process for PostgreSQL?"

18 years agoUpdate heading for upgrades.
Bruce Momjian [Tue, 23 May 2006 15:47:43 +0000 (15:47 +0000)]
Update heading for upgrades.

18 years agoAdd mention that everyone should upgrade to minor releases.
Bruce Momjian [Tue, 23 May 2006 15:22:20 +0000 (15:22 +0000)]
Add mention that everyone should upgrade to minor releases.

18 years agoRemove CXT_printf/CXT1_printf macros. If anyone had found them to be of
Tom Lane [Tue, 23 May 2006 15:21:52 +0000 (15:21 +0000)]
Remove CXT_printf/CXT1_printf macros.  If anyone had found them to be of
any use in the past many years, we'd have made some effort to include
them in all executor node types; but in fact they were only in
nodeAppend.c and nodeIndexscan.c, up until I copied nodeIndexscan.c's
occurrence into the new bitmap node types.  Remove some other unused
macros in execdebug.h, too.  Some day the whole header probably ought to
go away in favor of better-designed facilities.

18 years agoMake "trigger" section:
Bruce Momjian [Mon, 22 May 2006 20:39:23 +0000 (20:39 +0000)]
Make "trigger" section:

> * Referential Integrity
>
>  o Add MATCH PARTIAL referential integrity
>  o Change foreign key constraint for array -> element to mean element
>    in array?
>  o Enforce referential integrity for system tables
>
>
< Referential Integrity
< =====================
<
< * Add MATCH PARTIAL referential integrity
> Triggers
> ========
< * Change foreign key constraint for array -> element to mean element
<   in array?
801d804
< * Enforce referential integrity for system tables

18 years agoUpdate Japanese FAQ.
Bruce Momjian [Mon, 22 May 2006 14:12:55 +0000 (14:12 +0000)]
Update Japanese FAQ.

J.Kuwamura

18 years agoChange \; to ; in RULE, \; unnecessary.
Bruce Momjian [Mon, 22 May 2006 14:08:06 +0000 (14:08 +0000)]
Change \; to ; in RULE, \; unnecessary.

18 years agoAdd strerror to pg_dump error messages where missing.
Peter Eisentraut [Mon, 22 May 2006 11:21:54 +0000 (11:21 +0000)]
Add strerror to pg_dump error messages where missing.

18 years agoUpdate release notes for upcoming releases.
Tom Lane [Sun, 21 May 2006 21:49:22 +0000 (21:49 +0000)]
Update release notes for upcoming releases.

18 years agoRemove mention of pg_upgrade in release checklist.
Bruce Momjian [Sun, 21 May 2006 20:29:16 +0000 (20:29 +0000)]
Remove mention of pg_upgrade in release checklist.

18 years agoFix errors in fortuna PRNG reseeding logic that could cause a predictable
Tom Lane [Sun, 21 May 2006 20:22:16 +0000 (20:22 +0000)]
Fix errors in fortuna PRNG reseeding logic that could cause a predictable
session key to be selected by pgp_sym_encrypt() in some cases.  This only
affects non-OpenSSL-using builds.  Marko Kreen

18 years agoModify libpq's string-escaping routines to be aware of encoding considerations
Tom Lane [Sun, 21 May 2006 20:19:23 +0000 (20:19 +0000)]
Modify libpq's string-escaping routines to be aware of encoding considerations
and standard_conforming_strings.  The encoding changes are needed for proper
escaping in multibyte encodings, as per the SQL-injection vulnerabilities
noted in CVE-2006-2313 and CVE-2006-2314.  Concurrent fixes are being applied
to the server to ensure that it rejects queries that may have been corrupted
by attempted SQL injection, but this merely guarantees that unpatched clients
will fail rather than allow injection.  An actual fix requires changing the
client-side code.  While at it we have also fixed these routines to understand
about standard_conforming_strings, so that the upcoming changeover to SQL-spec
string syntax can be somewhat transparent to client code.

Since the existing API of PQescapeString and PQescapeBytea provides no way to
inform them which settings are in use, these functions are now deprecated in
favor of new functions PQescapeStringConn and PQescapeByteaConn.  The new
functions take the PGconn to which the string will be sent as an additional
parameter, and look inside the connection structure to determine what to do.
So as to provide some functionality for clients using the old functions,
libpq stores the latest encoding and standard_conforming_strings values
received from the backend in static variables, and the old functions consult
these variables.  This will work reliably in clients using only one Postgres
connection at a time, or even multiple connections if they all use the same
encoding and string syntax settings; which should cover many practical
scenarios.

Clients that use homebrew escaping methods, such as PHP's addslashes()
function or even hardwired regexp substitution, will require extra effort
to fix :-(.  It is strongly recommended that such code be replaced by use of
PQescapeStringConn/PQescapeByteaConn if at all feasible.

18 years agoAdd a new GUC parameter backslash_quote, which determines whether the SQL
Tom Lane [Sun, 21 May 2006 20:10:42 +0000 (20:10 +0000)]
Add a new GUC parameter backslash_quote, which determines whether the SQL
parser will allow "\'" to be used to represent a literal quote mark.  The
"\'" representation has been deprecated for some time in favor of the
SQL-standard representation "''" (two single quote marks), but it has been
used often enough that just disallowing it immediately won't do.  Hence
backslash_quote allows the settings "on", "off", and "safe_encoding",
the last meaning to allow "\'" only if client_encoding is a valid server
encoding.  That is now the default, and the reason is that in encodings
such as SJIS that allow 0x5c (ASCII backslash) to be the last byte of a
multibyte character, accepting "\'" allows SQL-injection attacks as per
CVE-2006-2314 (further details will be published after release).  The
"on" setting is available for backward compatibility, but it must not be
used with clients that are exposed to untrusted input.

Thanks to Akio Ishida and Yasuo Ohgaki for identifying this security issue.

18 years agoChange the backend to reject strings containing invalidly-encoded multibyte
Tom Lane [Sun, 21 May 2006 20:05:21 +0000 (20:05 +0000)]
Change the backend to reject strings containing invalidly-encoded multibyte
characters in all cases.  Formerly we mostly just threw warnings for invalid
input, and failed to detect it at all if no encoding conversion was required.
The tighter check is needed to defend against SQL-injection attacks as per
CVE-2006-2313 (further details will be published after release).  Embedded
zero (null) bytes will be rejected as well.  The checks are applied during
input to the backend (receipt from client or COPY IN), so it no longer seems
necessary to check in textin() and related routines; any string arriving at
those functions will already have been validated.  Conversion failure
reporting (for characters with no equivalent in the destination encoding)
has been cleaned up and made consistent while at it.

Also, fix a few longstanding errors in little-used encoding conversion
routines: win1251_to_iso, win866_to_iso, euc_tw_to_big5, euc_tw_to_mic,
mic_to_euc_tw were all broken to varying extents.

Patches by Tatsuo Ishii and Tom Lane.  Thanks to Akio Ishida and Yasuo Ohgaki
for identifying the security issues.

18 years agoAdd last-vacuum/analyze-time columns to the stats collector, both manual and
Alvaro Herrera [Fri, 19 May 2006 19:08:27 +0000 (19:08 +0000)]
Add last-vacuum/analyze-time columns to the stats collector, both manual and
issued by autovacuum.  Add accessor functions to them, and use those in the
pg_stat_*_tables system views.

Catalog version bumped due to changes in the pgstat views and the pgstat file.

Patch from Larry Rosenman, minor improvements by me.

18 years agoCall MarkBufferDirty() before XLogInsert() during completion of insert
Teodor Sigaev [Fri, 19 May 2006 17:15:41 +0000 (17:15 +0000)]
Call MarkBufferDirty() before XLogInsert() during completion of insert

18 years agoSimplify gistSplit() and some refactoring related code.
Teodor Sigaev [Fri, 19 May 2006 16:15:17 +0000 (16:15 +0000)]
Simplify gistSplit() and some refactoring related code.

18 years agoHave autovacuum report its activities to the stat collector.
Alvaro Herrera [Fri, 19 May 2006 15:15:37 +0000 (15:15 +0000)]
Have autovacuum report its activities to the stat collector.

18 years agoFix typo in comment.
Alvaro Herrera [Fri, 19 May 2006 14:26:58 +0000 (14:26 +0000)]
Fix typo in comment.

18 years agoFix Solaris/ASM test for x86.
Bruce Momjian [Fri, 19 May 2006 13:10:11 +0000 (13:10 +0000)]
Fix Solaris/ASM test for x86.

18 years agoRework completion of incomplete inserts. Now it writes
Teodor Sigaev [Fri, 19 May 2006 11:10:25 +0000 (11:10 +0000)]
Rework completion of incomplete inserts. Now it writes
WAL log during inserts.

18 years agoBack out \' change for tsearch2, broke regression tests.
Bruce Momjian [Fri, 19 May 2006 04:39:47 +0000 (04:39 +0000)]
Back out \' change for tsearch2, broke regression tests.

18 years agoMention packager bumps configure.in/configure.
Bruce Momjian [Fri, 19 May 2006 03:57:09 +0000 (03:57 +0000)]
Mention packager bumps configure.in/configure.

18 years agoStamp 8.1.4, except configure/configure.in.
Bruce Momjian [Fri, 19 May 2006 03:55:40 +0000 (03:55 +0000)]
Stamp 8.1.4, except configure/configure.in.

18 years agoUpdate for version 8.1.4.
Bruce Momjian [Fri, 19 May 2006 03:52:41 +0000 (03:52 +0000)]
Update for version 8.1.4.

18 years agoUpdate release notes for 8.1.4.
Bruce Momjian [Fri, 19 May 2006 03:49:05 +0000 (03:49 +0000)]
Update release notes for 8.1.4.

18 years agoUse SQL standard '' rather than \' in /contrib. Backpatch to 8.1.X.
Bruce Momjian [Fri, 19 May 2006 02:38:47 +0000 (02:38 +0000)]
Use SQL standard '' rather than \' in /contrib.  Backpatch to 8.1.X.

18 years agoUse unsigned into for slock_t for pre-sparcv8plus.
Bruce Momjian [Thu, 18 May 2006 21:18:40 +0000 (21:18 +0000)]
Use unsigned into for slock_t for pre-sparcv8plus.

18 years agoFix choose_bitmap_and() so that partial index predicates are considered when
Tom Lane [Thu, 18 May 2006 19:56:46 +0000 (19:56 +0000)]
Fix choose_bitmap_and() so that partial index predicates are considered when
deciding whether a potential additional indexscan is redundant or not.  As now
coded, any use of a partial index that was already used in a previous AND arm
will be rejected as redundant.  This might be overly restrictive, but not
considering the point at all is definitely bad, as per example in bug #2441
from Arjen van der Meijden.  In particular, a clauseless scan of a partial
index was *never* considered redundant by the previous coding, and that's
surely wrong.  Being more flexible would also require some consideration
of how not to double-count the index predicate's selectivity.

18 years agoWhen a bitmap indexscan is using a partial index, it is necessary to include
Tom Lane [Thu, 18 May 2006 18:57:31 +0000 (18:57 +0000)]
When a bitmap indexscan is using a partial index, it is necessary to include
the partial index predicate in the scan's "recheck condition".  Otherwise,
if the scan becomes lossy for lack of bitmap memory, we would fail to enforce
that returned rows satisfy the predicate.  Noted while studying bug #2441
from Arjen van der Meijden.

18 years agoAllow sparcv8plus to use "cas".
Bruce Momjian [Thu, 18 May 2006 18:51:50 +0000 (18:51 +0000)]
Allow sparcv8plus to use "cas".

Theo Schlossnagle