]> granicus.if.org Git - postgresql/log
postgresql
17 years agoVarious fixes in the logic of XML functions:
Peter Eisentraut [Thu, 25 Jan 2007 11:53:52 +0000 (11:53 +0000)]
Various fixes in the logic of XML functions:

- Add new SQL command SET XML OPTION (also available via regular GUC) to
  control the DOCUMENT vs. CONTENT option in implicit parsing and
  serialization operations.

- Subtle corrections in the handling of the standalone property in
  xmlroot().

- Allow xmlroot() to work on content fragments.

- Subtle corrections in the handling of the version property in
  xmlconcat().

- Code refactoring for producing XML declarations.

17 years agoDone:
Bruce Momjian [Thu, 25 Jan 2007 04:38:59 +0000 (04:38 +0000)]
Done:

>  o -Add a GUC variable to control the tablespace for temporary objects

17 years agoAdd GUC temp_tablespaces to provide a default location for temporary
Bruce Momjian [Thu, 25 Jan 2007 04:35:11 +0000 (04:35 +0000)]
Add GUC temp_tablespaces to provide a default location for temporary
objects.

Jaime Casanova

17 years agoProperly detoast access to bytea field pg_trigger.tgargs. Old code
Bruce Momjian [Thu, 25 Jan 2007 04:17:46 +0000 (04:17 +0000)]
Properly detoast access to bytea field pg_trigger.tgargs.  Old code
might cause server crash.

Backpatch to 8.2.X.

17 years agoFix for plpython functions; return true/false for boolean,
Bruce Momjian [Thu, 25 Jan 2007 04:08:51 +0000 (04:08 +0000)]
Fix for plpython functions;  return true/false for boolean,
rather than 1/0.  This helps when creating trigger functions that output
SQL.

Guido Goldstein

17 years agoAdd 'output file' option for pg_dumpall, especially useful for Win32,
Bruce Momjian [Thu, 25 Jan 2007 03:30:43 +0000 (03:30 +0000)]
Add 'output file' option for pg_dumpall, especially useful for Win32,
where output redirection of child processes (pg_dump) doesn't work.

Dave Page

17 years agoRemove developers list from TODO list now that we have URLs to reference
Bruce Momjian [Thu, 25 Jan 2007 02:50:12 +0000 (02:50 +0000)]
Remove developers list from TODO list now that we have URLs to reference
discussions.

<
<
< ---------------------------------------------------------------------------
<
<
< Developers who have claimed items are:
< --------------------------------------
< * Alvaro is Alvaro Herrera <alvherre@dcc.uchile.cl>
< * Andrew is Andrew Dunstan <andrew@dunslane.net>
< * Bruce is Bruce Momjian <bruce@momjian.us> of EnterpriseDB
< * Christopher is Christopher Kings-Lynne <chriskl@familyhealth.com.au> of
<     Family Health Network
< * D'Arcy is D'Arcy J.M. Cain <darcy@druid.net> of The Cain Gang Ltd.
< * David is David Fetter <david@fetter.org>
< * Fabien is Fabien Coelho <coelho@cri.ensmp.fr>
< * Gavin is Gavin Sherry <swm@linuxworld.com.au> of Alcove Systems Engineering
< * Greg is Greg Sabino Mullane <greg@turnstep.com>
< * Jan is Jan Wieck <JanWieck@Yahoo.com> of Afilias, Inc.
< * Joe is Joe Conway <mail@joeconway.com>
< * Karel is Karel Zak <zakkr@zf.jcu.cz>
< * Magnus is Magnus Hagander <mha@sollentuna.net>
< * Marc is Marc Fournier <scrappy@hub.org> of PostgreSQL, Inc.
< * Matthew T. O'Connor <matthew@zeut.net>
< * Michael is Michael Meskes <meskes@postgresql.org> of Credativ
< * Neil is Neil Conway <neilc@samurai.com>
< * Oleg is Oleg Bartunov <oleg@sai.msu.su>
< * Pavel is Pavel Stehule <pavel.stehule@hotmail.com>
< * Peter is Peter Eisentraut <peter_e@gmx.net>
< * Philip is Philip Warner <pjw@rhyme.com.au> of Albatross Consulting Pty. Ltd.
< * Rod is Rod Taylor <pg@rbt.ca>
< * Simon is Simon Riggs <simon@2ndquadrant.com>
< * Stephan is Stephan Szabo <sszabo@megazone23.bigpanda.com>
< * Tatsuo is Tatsuo Ishii <ishii@sraoss.co.jp> of SRA OSS, Inc. Japan
< * Teodor is Teodor Sigaev <teodor@sigaev.ru>
< * Tom is Tom Lane <tgl@sss.pgh.pa.us> of Red Hat

17 years agoDone:
Bruce Momjian [Thu, 25 Jan 2007 02:48:06 +0000 (02:48 +0000)]
Done:

<  o Add -f to pg_dumpall
>  o -Add -f to pg_dumpall

17 years agoAllow pg_dumpall to specify a database name rather than the default
Bruce Momjian [Thu, 25 Jan 2007 02:46:33 +0000 (02:46 +0000)]
Allow pg_dumpall to specify a database name rather than the default
'template1'.

Dave Page

17 years agoAdd --tablespaces-only and --roles-only options to pg_dumpall.
Bruce Momjian [Thu, 25 Jan 2007 02:30:32 +0000 (02:30 +0000)]
Add --tablespaces-only and --roles-only options to pg_dumpall.

Dave Page

17 years agoPrevent WAL logging when COPY is done in the same transation that
Bruce Momjian [Thu, 25 Jan 2007 02:17:26 +0000 (02:17 +0000)]
Prevent WAL logging when COPY is done in the same transation that
created it.

Simon Riggs

17 years agoWhen using MSVC, disable the building of ecpg if pthreads is not
Bruce Momjian [Wed, 24 Jan 2007 19:24:28 +0000 (19:24 +0000)]
When using MSVC, disable the building of ecpg if pthreads is not
specified.

Magnus Hagander

17 years agoGet pg_utf_mblen(), pg_utf2wchar_with_len(), and utf2ucs() all on the same
Tom Lane [Wed, 24 Jan 2007 17:12:17 +0000 (17:12 +0000)]
Get pg_utf_mblen(), pg_utf2wchar_with_len(), and utf2ucs() all on the same
page about the maximum UTF8 sequence length we support (4 bytes since 8.1,
3 before that).  pg_utf2wchar_with_len never got updated to support 4-byte
characters at all, and in any case had a buffer-overrun risk in that it
could produce multiple pg_wchars from what mblen claims to be just one UTF8
character.  The only reason we don't have a major security hole is that most
callers allocate worst-case output buffers; the sole exception in released
versions appears to be pre-8.2 iwchareq() (ie, ILIKE), which can be crashed
due to zeroing out its return address --- but AFAICS that can't be exploited
for anything more than a crash, due to inability to control what gets written
there.  Per report from James Russell and Michael Fuhr.

Pre-8.1 the risk is much less, but I still think pg_utf2wchar_with_len's
behavior given an incomplete final character risks buffer overrun, so
back-patch that logic change anyway.

This patch also makes sure that UTF8 sequences exceeding the supported
length (whichever it is) are consistently treated as error cases, rather
than being treated like a valid shorter sequence in some places.

17 years agoRelax an Assert() that has been found to be too strict in some situations
Tom Lane [Wed, 24 Jan 2007 01:25:47 +0000 (01:25 +0000)]
Relax an Assert() that has been found to be too strict in some situations
involving unions of types having typmods.  Variants of the failure are known
to occur in 8.1 and up; not sure if it's possible in 8.0 and 7.4, but since
the code exists that far back, I'll just patch 'em all.  Per report from
Brian Hurt.

17 years agoSimplify handling of XML error messages: Just use the string provided by
Peter Eisentraut [Tue, 23 Jan 2007 23:39:16 +0000 (23:39 +0000)]
Simplify handling of XML error messages: Just use the string provided by
libxml as the detail message.

As per <http://archives.postgresql.org/pgsql-hackers/2006-12/msg01087.php>.

For converting error codes to messages, we only need to cover those codes
that we raise ourselves now.

17 years agoUpdate xindex.sgml to discuss operator families.
Tom Lane [Tue, 23 Jan 2007 20:45:28 +0000 (20:45 +0000)]
Update xindex.sgml to discuss operator families.

17 years agoUpdate pg_dump to support dumping operator families.
Tom Lane [Tue, 23 Jan 2007 17:54:50 +0000 (17:54 +0000)]
Update pg_dump to support dumping operator families.

17 years agoAdd comment about exception lists in both winnt.h and ntstatus.h.
Bruce Momjian [Tue, 23 Jan 2007 16:21:17 +0000 (16:21 +0000)]
Add comment about exception lists in both winnt.h and ntstatus.h.

17 years agoThis patch is required for vcbuild to work after the changes to
Alvaro Herrera [Tue, 23 Jan 2007 15:44:11 +0000 (15:44 +0000)]
This patch is required for vcbuild to work after the changes to
pg_proc.h (it's the same changes that's in gen_fmgrtab.sh in the unix
build).

Patch from Magnus Hagander.

17 years agoAdd CREATE/ALTER/DROP OPERATOR FAMILY commands, also COMMENT ON OPERATOR
Tom Lane [Tue, 23 Jan 2007 05:07:18 +0000 (05:07 +0000)]
Add CREATE/ALTER/DROP OPERATOR FAMILY commands, also COMMENT ON OPERATOR
FAMILY; and add FAMILY option to CREATE OPERATOR CLASS to allow adding a
class to a pre-existing family.  Per previous discussion.  Man, what a
tedious lot of cutting and pasting ...

17 years agoRemove newline from error message because URL is gone.
Bruce Momjian [Tue, 23 Jan 2007 03:31:33 +0000 (03:31 +0000)]
Remove newline from error message because URL is gone.

17 years agoBack out use of FormatMessage(), does error values, not exception
Bruce Momjian [Tue, 23 Jan 2007 03:28:49 +0000 (03:28 +0000)]
Back out use of FormatMessage(), does error values, not exception
values.  Point to /include/ntstatus.h for an exception list, rather than
a URL.

17 years agoPrint meaningfull error text for abonormal process exit on Win32, rather
Bruce Momjian [Tue, 23 Jan 2007 01:45:11 +0000 (01:45 +0000)]
Print meaningfull error text for abonormal process exit on Win32, rather
than hex codes, using FormatMessage().

17 years agoUpdate my email address in FAQ.
Bruce Momjian [Mon, 22 Jan 2007 23:06:37 +0000 (23:06 +0000)]
Update my email address in FAQ.

17 years agoPut back planner's ability to cache the results of mergejoinscansel(),
Tom Lane [Mon, 22 Jan 2007 20:00:40 +0000 (20:00 +0000)]
Put back planner's ability to cache the results of mergejoinscansel(),
which I had removed in the first cut of the EquivalenceClass rewrite to
simplify that patch a little.  But it's still important --- in a four-way
join problem mergejoinscansel() was eating about 40% of the planning time
according to gprof.  Also, improve the EquivalenceClass code to re-use
join RestrictInfos rather than generating fresh ones for each join
considered.  This saves some memory space but more importantly improves
the effectiveness of caching planning info in RestrictInfos.

17 years agoUse errhint() for WIN32 SIGTERM message, where possible.
Bruce Momjian [Mon, 22 Jan 2007 19:38:05 +0000 (19:38 +0000)]
Use errhint() for WIN32 SIGTERM message, where possible.

17 years agoUppercase hex value.
Bruce Momjian [Mon, 22 Jan 2007 18:32:57 +0000 (18:32 +0000)]
Uppercase hex value.

17 years agoWhen system() fails in Win32, report it as an exception, print the
Bruce Momjian [Mon, 22 Jan 2007 18:31:51 +0000 (18:31 +0000)]
When system() fails in Win32, report it as an exception, print the
exception value in hex, and give a URL where the value can be looked-up.

17 years agoUpdate documenation instructions. on how to delete template1.
Bruce Momjian [Mon, 22 Jan 2007 02:47:56 +0000 (02:47 +0000)]
Update documenation instructions. on how to delete template1.

17 years agoAdjust pgbench so it won't spit up on non-select queries returning
Tom Lane [Mon, 22 Jan 2007 02:17:30 +0000 (02:17 +0000)]
Adjust pgbench so it won't spit up on non-select queries returning
tuples, which is entirely possible with custom scripts (consider
RETURNING, EXPLAIN, etc).

17 years agoAdd COST and ROWS options to CREATE/ALTER FUNCTION, plus underlying pg_proc
Tom Lane [Mon, 22 Jan 2007 01:35:23 +0000 (01:35 +0000)]
Add COST and ROWS options to CREATE/ALTER FUNCTION, plus underlying pg_proc
columns procost and prorows, to allow simple user adjustment of the estimated
cost of a function call, as well as control of the estimated number of rows
returned by a set-returning function.  We might eventually wish to extend this
to allow function-specific estimation routines, but there seems to be
consensus that we should try a simple constant estimate first.  In particular
this provides a relatively simple way to control the order in which different
WHERE clauses are applied in a plan node, which is a Good Thing in view of the
fact that the recent EquivalenceClass planner rewrite made that much less
predictable than before.

17 years agoRemove some unused variables
Peter Eisentraut [Sun, 21 Jan 2007 09:23:29 +0000 (09:23 +0000)]
Remove some unused variables

17 years agoPut back libpq link, but make sure that libpq's in-tree directory is
Peter Eisentraut [Sun, 21 Jan 2007 09:19:06 +0000 (09:19 +0000)]
Put back libpq link, but make sure that libpq's in-tree directory is
mentioned before the system directories.

17 years agoRefactor some lsyscache routines to eliminate duplicate code and save
Tom Lane [Sun, 21 Jan 2007 00:57:15 +0000 (00:57 +0000)]
Refactor some lsyscache routines to eliminate duplicate code and save
a couple of syscache lookups in make_pathkey_from_sortinfo().

17 years agoAdd bitmap index URL:
Bruce Momjian [Sat, 20 Jan 2007 23:18:38 +0000 (23:18 +0000)]
Add bitmap index URL:

>
>   http://archives.postgresql.org/pgsql-hackers/2006-12/msg01107.php

17 years agoSimplify pg_am representation of ordering-capable access methods:
Tom Lane [Sat, 20 Jan 2007 23:13:01 +0000 (23:13 +0000)]
Simplify pg_am representation of ordering-capable access methods:
provide just a boolean 'amcanorder', instead of fields that specify the
sort operator strategy numbers.  We have decided to require ordering-capable
AMs to use btree-compatible strategy numbers, so the old fields are
overkill (and indeed misleading about what's allowed).

17 years agoAdd URL for dead space map:
Bruce Momjian [Sat, 20 Jan 2007 23:08:20 +0000 (23:08 +0000)]
Add URL for dead space map:

>
>   http://archives.postgresql.org/pgsql-hackers/2006-12/msg01188.php
>   http://archives.postgresql.org/pgsql-hackers/2007-01/msg00121.php

17 years agoUpdate docs for recent change to setseed() return value.
Neil Conway [Sat, 20 Jan 2007 21:59:34 +0000 (21:59 +0000)]
Update docs for recent change to setseed() return value.

17 years agoMake setseed() return void, rather than an int4 without any use. Per
Neil Conway [Sat, 20 Jan 2007 21:47:10 +0000 (21:47 +0000)]
Make setseed() return void, rather than an int4 without any use. Per
pgsql-patches discussion of September 20, 2006. Bump the catversion.

17 years agoAdd documentation of memory and time units to postgresql.conf.
Bruce Momjian [Sat, 20 Jan 2007 21:42:03 +0000 (21:42 +0000)]
Add documentation of memory and time units to postgresql.conf.
Backpatch to 8.2.X for new initdbs.

17 years agoDon't use 'int' where you mean 'bool'.
Tom Lane [Sat, 20 Jan 2007 21:40:25 +0000 (21:40 +0000)]
Don't use 'int' where you mean 'bool'.

17 years agoUpdate documentation about postgresqlconf to mention default units that
Bruce Momjian [Sat, 20 Jan 2007 21:30:26 +0000 (21:30 +0000)]
Update documentation about postgresqlconf to mention default units that
match the postgresql.conf file.  Also add units to descriptions that
lacked them.  Wording improvements.  Mention pg_settings.unit as the way
to find the default units for setting.

Backpatch to 8.2.X.

17 years agoFix broken markup.
Tom Lane [Sat, 20 Jan 2007 21:30:01 +0000 (21:30 +0000)]
Fix broken markup.

17 years agoList disabled triggers separately in psql's "\d <table>" output.
Neil Conway [Sat, 20 Jan 2007 21:17:30 +0000 (21:17 +0000)]
List disabled triggers separately in psql's "\d <table>" output.
Previously, disabled triggers were not displayed any differently than
enabled ones, which was quite misleading. Patch from Brendan Jurd.

17 years agoRefactor planner's pathkeys data structure to create a separate, explicit
Tom Lane [Sat, 20 Jan 2007 20:45:41 +0000 (20:45 +0000)]
Refactor planner's pathkeys data structure to create a separate, explicit
representation of equivalence classes of variables.  This is an extensive
rewrite, but it brings a number of benefits:
* planner no longer fails in the presence of "incomplete" operator families
that don't offer operators for every possible combination of datatypes.
* avoid generating and then discarding redundant equality clauses.
* remove bogus assumption that derived equalities always use operators
named "=".
* mergejoins can work with a variety of sort orders (e.g., descending) now,
instead of tying each mergejoinable operator to exactly one sort order.
* better recognition of redundant sort columns.
* can make use of equalities appearing underneath an outer join.

17 years agoRefactor the index AM API slightly: move currentItemData and
Neil Conway [Sat, 20 Jan 2007 18:43:35 +0000 (18:43 +0000)]
Refactor the index AM API slightly: move currentItemData and
currentMarkData from IndexScanDesc to the opaque structs for the
AMs that need this information (currently gist and hash).

Patch from Heikki Linnakangas, fixes by Neil Conway.

17 years agoUpdate build time estimate.
Peter Eisentraut [Sat, 20 Jan 2007 17:21:29 +0000 (17:21 +0000)]
Update build time estimate.

17 years agoRemove remains of old depend target.
Peter Eisentraut [Sat, 20 Jan 2007 17:16:17 +0000 (17:16 +0000)]
Remove remains of old depend target.

17 years agoRegression tests for large objects. Patch from Jeremy Drake.
Neil Conway [Sat, 20 Jan 2007 17:15:44 +0000 (17:15 +0000)]
Regression tests for large objects. Patch from Jeremy Drake.

17 years agoModify max_fsm_pages in postgresql.conf.sample to show a typical value,
Bruce Momjian [Sat, 20 Jan 2007 17:04:58 +0000 (17:04 +0000)]
Modify max_fsm_pages in postgresql.conf.sample to show a typical value,
rather than a value too high.

17 years agoTeach psql's \lo slash commands to respect quiet mode, and to output
Neil Conway [Sat, 20 Jan 2007 16:57:31 +0000 (16:57 +0000)]
Teach psql's \lo slash commands to respect quiet mode, and to output
HTML in HTML mode. Patch from Jeremy Drake.

17 years agoDocument that to remove template1, datistemplate must be 'false'.
Bruce Momjian [Sat, 20 Jan 2007 15:43:54 +0000 (15:43 +0000)]
Document that to remove template1, datistemplate must be 'false'.
Backpatch to 8.2.

17 years agoThe libpq library directory was mentioned here in the wrong place, which
Peter Eisentraut [Sat, 20 Jan 2007 15:26:28 +0000 (15:26 +0000)]
The libpq library directory was mentioned here in the wrong place, which
might lead to a previously installed libpq being used instead.  But we
don't actually have to link with libpq here at all, so remove it.

17 years agoOnly build ecpg test code when the test is to be performed, in line with
Peter Eisentraut [Sat, 20 Jan 2007 15:25:29 +0000 (15:25 +0000)]
Only build ecpg test code when the test is to be performed, in line with
other test code.

17 years agoMove code that places LOG error level between ERROR and PANIC into new
Bruce Momjian [Sat, 20 Jan 2007 14:45:35 +0000 (14:45 +0000)]
Move code that places LOG error level between ERROR and PANIC into new
function is_log_level_output(), for code clarity.

17 years agoFix xmlconcat regression test
Peter Eisentraut [Sat, 20 Jan 2007 11:44:15 +0000 (11:44 +0000)]
Fix xmlconcat regression test

17 years agoFix xmlconcat by properly merging the XML declarations. Add aggregate
Peter Eisentraut [Sat, 20 Jan 2007 09:27:20 +0000 (09:27 +0000)]
Fix xmlconcat by properly merging the XML declarations.  Add aggregate
function xmlagg.

17 years agoAdd wiki URL:
Bruce Momjian [Sat, 20 Jan 2007 02:18:37 +0000 (02:18 +0000)]
Add wiki URL:

< first.
> first.  There is also a developer's wiki at
> http://developer.postgresql.org.

17 years agoAdd missing copyright blurb, make ruleutils.c use the standard layout
Neil Conway [Sat, 20 Jan 2007 01:08:42 +0000 (01:08 +0000)]
Add missing copyright blurb, make ruleutils.c use the standard layout
for its header comment.

17 years agoAdd items:
Bruce Momjian [Fri, 19 Jan 2007 21:36:07 +0000 (21:36 +0000)]
Add items:

>  o Allow multiple vacuums so large tables do not starve small
>    tables
>
>    http://archives.postgresql.org/pgsql-general/2007-01/msg00031.php
>
>  o Improve control of auto-vacuum
>
>    http://archives.postgresql.org/pgsql-hackers/2006-12/msg00876.php

17 years agoFix pg_regress breakage for PL and contrib tests, by not requiring that
Alvaro Herrera [Fri, 19 Jan 2007 21:21:13 +0000 (21:21 +0000)]
Fix pg_regress breakage for PL and contrib tests, by not requiring that
"input" and "output" dirs be necessarily present.

17 years agoAdd URL for:
Bruce Momjian [Fri, 19 Jan 2007 18:13:47 +0000 (18:13 +0000)]
Add URL for:

* Add Globally/Universally Unique Identifier (GUID/UUID)
>   http://archives.postgresql.org/pgsql-general/2007-01/msg00853.php

17 years agoAdd support for converting binary values (i.e. bytea) into xml values,
Peter Eisentraut [Fri, 19 Jan 2007 16:58:46 +0000 (16:58 +0000)]
Add support for converting binary values (i.e. bytea) into xml values,
with new GUC parameter "xmlbinary" that controls the output encoding, as
per SQL/XML standard.

17 years agoChange the sed rules in the regression test for pg_regress hackery to create
Alvaro Herrera [Fri, 19 Jan 2007 16:42:24 +0000 (16:42 +0000)]
Change the sed rules in the regression test for pg_regress hackery to create
the generated files, to help Visual C++ to run these tests.  The tests still
pass in VPATH and normal builds.

Patch from Magnus Hagander, editorialized by me.

17 years agoOptionally use xml2-config to detect installation locations of libxml.
Peter Eisentraut [Thu, 18 Jan 2007 14:07:31 +0000 (14:07 +0000)]
Optionally use xml2-config to detect installation locations of libxml.

17 years agoClean up encoding issues in the xml type: In text mode, encoding
Peter Eisentraut [Thu, 18 Jan 2007 13:59:11 +0000 (13:59 +0000)]
Clean up encoding issues in the xml type: In text mode, encoding
declarations are ignored and removed, in binary mode they are honored as
specified by the XML standard.

17 years agoAdd a note pointing out that is_pseudo_constant_clause() doesn't check
Tom Lane [Wed, 17 Jan 2007 17:25:52 +0000 (17:25 +0000)]
Add a note pointing out that is_pseudo_constant_clause() doesn't check
for aggregates.  This is OK for current uses but could burn somebody
someday...

17 years agoExtend yesterday's patch so that the bgwriter is also told to forget
Tom Lane [Wed, 17 Jan 2007 16:25:01 +0000 (16:25 +0000)]
Extend yesterday's patch so that the bgwriter is also told to forget
pending fsyncs during DROP DATABASE.  Obviously necessary in hindsight :-(

17 years agoTweak the width_bucket() regression tests to avoid an unnecessary
Neil Conway [Wed, 17 Jan 2007 16:19:08 +0000 (16:19 +0000)]
Tweak the width_bucket() regression tests to avoid an unnecessary
dependency on the platform's floating point implementation. Per
report from Stefan Kaltenbrunner.

17 years agoMark TODO item "autovacuum on by default" as completed.
Bruce Momjian [Wed, 17 Jan 2007 03:43:49 +0000 (03:43 +0000)]
Mark TODO item "autovacuum on by default" as completed.

17 years agoRevise bgwriter fsync-request mechanism to improve robustness when a table
Tom Lane [Wed, 17 Jan 2007 00:17:21 +0000 (00:17 +0000)]
Revise bgwriter fsync-request mechanism to improve robustness when a table
is deleted.  A backend about to unlink a file now sends a "revoke fsync"
request to the bgwriter to make it clean out pending fsync requests.  There
is still a race condition where the bgwriter may try to fsync after the unlink
has happened, but we can resolve that by rechecking the fsync request queue
to see if a revoke request arrived meanwhile.  This eliminates the former
kluge of "just assuming" that an ENOENT failure is okay, and lets us handle
the fact that on Windows it might be EACCES too without introducing any
questionable assumptions.  After an idea of mine improved by Magnus.

The HEAD patch doesn't apply cleanly to 8.2, but I'll see about a back-port
later.  In the meantime this could do with some testing on Windows; I've been
able to force it through the code path via ENOENT, but that doesn't prove that
it actually fixes the Windows problem ...

17 years agovcbuild updates from Magnus:
Neil Conway [Tue, 16 Jan 2007 21:43:19 +0000 (21:43 +0000)]
vcbuild updates from Magnus:

* After Markos patch, now builds pgcrypto without zlib again
* Updates README with xml info
* xml requires xslt and iconv
* disable unnecessary warning about __cdecl()
* Add a buildenv.bat called from all other bat files to set up things
like PATH for flex/bison. (Can't just set it before calling, doesn't
always work when building from the GUI)

17 years agoImplement width_bucket() for the float8 data type.
Neil Conway [Tue, 16 Jan 2007 21:41:14 +0000 (21:41 +0000)]
Implement width_bucket() for the float8 data type.

The implementation is somewhat ugly logic-wise, but I don't see an
easy way to make it more concise.

When writing this, I noticed that my previous implementation of
width_bucket() doesn't handle NaN correctly:

    postgres=# select width_bucket('NaN', 1, 5, 5);
     width_bucket
    --------------
                6
    (1 row)

AFAICS SQL:2003 does not define a NaN value, so it doesn't address how
width_bucket() should behave here. The patch changes width_bucket() so
that ereport(ERROR) is raised if NaN is specified for the operand or the
lower or upper bounds to width_bucket(). For float8, NaN is disallowed
for any of the floating-point inputs, and +/- infinity is disallowed
for the histogram bounds (but allowed for the operand).

Update docs and regression tests, bump the catversion.

17 years agoMinor improvements to the TODO list. Add some URLs for some
Neil Conway [Tue, 16 Jan 2007 20:58:38 +0000 (20:58 +0000)]
Minor improvements to the TODO list. Add some URLs for some
existing TODO items, and re-add a TODO item for an "estimated
count" capability.

17 years agoFix incorrect permissions check in information_schema.key_column_usage view:
Tom Lane [Tue, 16 Jan 2007 18:32:26 +0000 (18:32 +0000)]
Fix incorrect permissions check in information_schema.key_column_usage view:
it was checking a pg_constraint OID instead of pg_class OID, resulting in
"relation with OID nnnnn does not exist" failures for anyone who wasn't
owner of the table being examined.  Per bug #2848 from Laurence Rowe.

Note: for existing 8.2 installations a simple version update won't fix this;
the easiest fix is to CREATE OR REPLACE this view with the corrected
definition.

17 years agoEnable autovacuum in the default configuration, per discussion.
Alvaro Herrera [Tue, 16 Jan 2007 18:26:02 +0000 (18:26 +0000)]
Enable autovacuum in the default configuration, per discussion.

17 years agoArrange for autovacuum to be killed when another operation wants to be alone
Alvaro Herrera [Tue, 16 Jan 2007 13:28:57 +0000 (13:28 +0000)]
Arrange for autovacuum to be killed when another operation wants to be alone
accessing it, like DROP DATABASE.  This allows the regression tests to pass
with autovacuum enabled, which open the gates for finally enabling autovacuum
by default.

17 years agoCorrect a minor inaccuracy in the pg_dumpall reference page: -g dumps
Neil Conway [Mon, 15 Jan 2007 17:22:46 +0000 (17:22 +0000)]
Correct a minor inaccuracy in the pg_dumpall reference page: -g dumps
roles and tablespaces, no longer users and groups. Per Dave Page.

Backport to 8.2 and 8.1.

17 years agoFix localization support for multibyte encoding and C locale.
Teodor Sigaev [Mon, 15 Jan 2007 15:16:28 +0000 (15:16 +0000)]
Fix localization support for multibyte encoding and C locale.
Slightly reworked patch from Tatsuo Ishii

17 years agoAdd a note to the docs describing NaN's equality and ordering behavior.
Neil Conway [Sun, 14 Jan 2007 22:37:59 +0000 (22:37 +0000)]
Add a note to the docs describing NaN's equality and ordering behavior.
Per recent -hackers thread, this is noteworthy because Postgres behaves
differently from most implementations of NaN, including IEEE754.

17 years agoFix reverse compilation of IS DOCUMENT expression.
Peter Eisentraut [Sun, 14 Jan 2007 21:39:24 +0000 (21:39 +0000)]
Fix reverse compilation of IS DOCUMENT expression.

17 years agoReplace unnecessary DISABLE_ZLIB define in pgcrypto with HAVE_LIBZ from core.
Alvaro Herrera [Sun, 14 Jan 2007 20:55:14 +0000 (20:55 +0000)]
Replace unnecessary DISABLE_ZLIB define in pgcrypto with HAVE_LIBZ from core.

Patch from Marko Kreen.

17 years agoAdd support for xmlval IS DOCUMENT expression.
Peter Eisentraut [Sun, 14 Jan 2007 13:11:54 +0000 (13:11 +0000)]
Add support for xmlval IS DOCUMENT expression.

17 years agoRemove completed items, and the last is unwanted:
Bruce Momjian [Sat, 13 Jan 2007 15:13:44 +0000 (15:13 +0000)]
Remove completed items, and the last is unwanted:

<  o Fix memory leak from exceptions
<
<    http://archives.postgresql.org/pgsql-performance/2006-06/msg00305.php
<
< * Allow constraint_exclusion to work for UNIONs like it does for
<   inheritance, allow it to work for UPDATE and DELETE statements, and allow
<   it to be used for all statements with little performance impact
<
< * Add estimated_count(*) to return an estimate of COUNT(*)
<
<   This would use the planner ANALYZE statistics to return an estimated
<   count.
<   http://archives.postgresql.org/pgsql-hackers/2005-11/msg00943.php

17 years agoFix handling of CC (century) format spec in to_date/to_char. According to
Tom Lane [Fri, 12 Jan 2007 23:34:55 +0000 (23:34 +0000)]
Fix handling of CC (century) format spec in to_date/to_char.  According to
standard convention the 21st century runs from 2001-2100, not 2000-2099,
so make it work like that.  Per bug #2885 from Akio Iwaasa.

Backpatch to 8.2, but no further, since this is really a definitional
change; users of older branches are probably more interested in stability.

17 years agoFix compiler warning
Peter Eisentraut [Fri, 12 Jan 2007 22:09:49 +0000 (22:09 +0000)]
Fix compiler warning

17 years agoUse XML output escaping also in XMLFOREST.
Peter Eisentraut [Fri, 12 Jan 2007 21:47:27 +0000 (21:47 +0000)]
Use XML output escaping also in XMLFOREST.

17 years agoUpdate to_char("CC") description.
Bruce Momjian [Fri, 12 Jan 2007 20:06:10 +0000 (20:06 +0000)]
Update to_char("CC") description.

17 years agoUpdate error messsage wording.
Bruce Momjian [Fri, 12 Jan 2007 19:34:41 +0000 (19:34 +0000)]
Update error messsage wording.

17 years agoUpdate ORDER BY UNION function/exprssion wording (again).
Bruce Momjian [Fri, 12 Jan 2007 19:23:38 +0000 (19:23 +0000)]
Update ORDER BY UNION function/exprssion wording (again).

17 years agoAdd some notes about the basic mathematical laws that the system presumes
Tom Lane [Fri, 12 Jan 2007 17:04:54 +0000 (17:04 +0000)]
Add some notes about the basic mathematical laws that the system presumes
hold true for operators in a btree operator family.  This is mostly to
clarify my own thinking about what the planner can assume for optimization
purposes.  (blowing dust off an old abstract-algebra textbook...)

17 years agoAllow for arbitrary data types as content in XMLELEMENT. The original
Peter Eisentraut [Fri, 12 Jan 2007 16:29:24 +0000 (16:29 +0000)]
Allow for arbitrary data types as content in XMLELEMENT.  The original
coercion to type xml was a mistake.  Escape values so they are valid
XML character data.

17 years agoMissed two new files from Joachim's patch.
Michael Meskes [Fri, 12 Jan 2007 11:31:33 +0000 (11:31 +0000)]
Missed two new files from Joachim's patch.

17 years agoalso adjust MinGW expected file to new setup
Michael Meskes [Fri, 12 Jan 2007 11:27:28 +0000 (11:27 +0000)]
also adjust MinGW expected file to new setup
create expected file with correct port number

17 years agoSimplified regression handling
Michael Meskes [Fri, 12 Jan 2007 10:00:14 +0000 (10:00 +0000)]
Simplified regression handling
Added patch by Joachim to work around OpenBSD bug in regression suite.

17 years agoFix a performance problem in databases with large numbers of tables
Tom Lane [Thu, 11 Jan 2007 23:06:03 +0000 (23:06 +0000)]
Fix a performance problem in databases with large numbers of tables
(or other types of pg_class entry): the function pgstat_vacuum_tabstat,
invoked during VACUUM startup, had runtime proportional to the number of
stats table entries times the number of pg_class rows; in other words
O(N^2) if the stats collector's information is reasonably complete.
Replace list searching with a hash table to bring it back to O(N)
behavior.  Per report from kim at myemma.com.

Back-patch as far as 8.1; 8.0 and before use different coding here.

17 years agoUpdate UNION/INTERSECT/EXCEPT ORDER BY error wording for
Bruce Momjian [Thu, 11 Jan 2007 20:04:50 +0000 (20:04 +0000)]
Update UNION/INTERSECT/EXCEPT ORDER BY error wording for
expressions/functions.

17 years agoImprove error wording of ORDER BY in UNION that uses new expressions in
Bruce Momjian [Thu, 11 Jan 2007 18:44:53 +0000 (18:44 +0000)]
Improve error wording of ORDER BY in UNION that uses new expressions in
ORDER BY.

17 years agoTeach nodeMergejoin how to handle DESC and/or NULLS FIRST sort orders.
Tom Lane [Thu, 11 Jan 2007 17:19:13 +0000 (17:19 +0000)]
Teach nodeMergejoin how to handle DESC and/or NULLS FIRST sort orders.
So far only tested by hacking the planner ...

17 years agoApplied Joachim's patch for a --regression option.
Michael Meskes [Thu, 11 Jan 2007 15:47:34 +0000 (15:47 +0000)]
Applied Joachim's patch for a --regression option.
Made this option mark the .c files, so the environment variable is no longer needed.
Created a special MinGW file with the special error message.
Do not print port into log file when running regression tests.