git.postgresql.org Git - postgresql.git/log
Control openjade draft-mode by variable DRAFT, rather than whether the
version tag is 'devel'.
Update wording of installation when upgrading, to more clearly
distinguish major vs minor release upgrades.
Modify draft SGML instructions to use DRAFT=Y because recursion was
causing html to be called twice --- no way to exit the makefile after
the recursion returns.
Tom Lane [2007年1月26日 20:06:52 +0000 (20:06 +0000)]
On Windows, use pgwin32_waitforsinglesocket() instead of select() to wait for
input in the stats collector. Our select() emulation is apparently buggy
for UDP sockets :-(. This should resolve problems with stats collection
(and hence autovacuum) failing under more than minimal load. Diagnosis
and patch by Magnus Hagander.
Patch probably needs to be back-ported to 8.1 and 8.0, but first let's
see if it makes the buildfarm happy...
Squelch some VC++ compiler warnings. Mark float literals with the "f"
suffix, to distinguish them from doubles. Make some function declarations
and definitions use the "const" qualifier for arguments consistently.
Ignore warning 4102 ("unreferenced label"), because such warnings
are always emitted by bison-generated code. Patch from Magnus Hagander.
Update BSD/OS platform for 8.2.
Add URL for shrinking tuple to just its headers:
> http://archives.postgresql.org/pgsql-hackers/2007-01/msg01025.php
Update Win32 exception comment.
Add a setlocal command to the beginning of build.bat. This is required
to deal with buildenv.bat properly, so that PATH (for example) doesn't
expand infintly. Per report from Joachim Wieland, patch from Magnus.
Removed compiler warning due to unneeded unsigned declaration.
Removed regression test that triggers those libc precision bugs on some archs.
Update pg_dumpall -f option description.
Correction: temp_tablespaces was implemented by Albert Cervera Areny,
with cleanup by Jaime Casanova.
Reverse out use of Py_RETURN_TRUE in plpython, only supported in Python >=
2.3.
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.
Done:
> o -Add a GUC variable to control the tablespace for temporary objects
Add GUC temp_tablespaces to provide a default location for temporary
objects.
Jaime Casanova
Properly detoast access to bytea field pg_trigger.tgargs. Old code
might cause server crash.
Backpatch to 8.2.X.
Fix for plpython functions; return true/false for boolean,
rather than 1/0. This helps when creating trigger functions that output
SQL.
Guido Goldstein
Add 'output file' option for pg_dumpall, especially useful for Win32,
where output redirection of child processes (pg_dump) doesn't work.
Dave Page
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
Done:
< o Add -f to pg_dumpall
> o -Add -f to pg_dumpall
Allow pg_dumpall to specify a database name rather than the default
'template1'.
Dave Page
Add --tablespaces-only and --roles-only options to pg_dumpall.
Dave Page
Prevent WAL logging when COPY is done in the same transation that
created it.
Simon Riggs
When using MSVC, disable the building of ecpg if pthreads is not
specified.
Magnus Hagander
Tom Lane [2007年1月24日 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.
Tom Lane [2007年1月24日 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.
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.
Tom Lane [2007年1月23日 20:45:28 +0000 (20:45 +0000)]
Update xindex.sgml to discuss operator families.
Tom Lane [2007年1月23日 17:54:50 +0000 (17:54 +0000)]
Update pg_dump to support dumping operator families.
Add comment about exception lists in both winnt.h and ntstatus.h.
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.
Tom Lane [2007年1月23日 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 ...
Remove newline from error message because URL is gone.
Back out use of FormatMessage(), does error values, not exception
values. Point to /include/ntstatus.h for an exception list, rather than
a URL.
Print meaningfull error text for abonormal process exit on Win32, rather
than hex codes, using FormatMessage().
Update my email address in FAQ.
Tom Lane [2007年1月22日 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.
Use errhint() for WIN32 SIGTERM message, where possible.
Uppercase hex value.
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.
Update documenation instructions. on how to delete template1.
Tom Lane [2007年1月22日 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).
Tom Lane [2007年1月22日 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.
Remove some unused variables
Put back libpq link, but make sure that libpq's in-tree directory is
mentioned before the system directories.
Tom Lane [2007年1月21日 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().
Add bitmap index URL:
>
> http://archives.postgresql.org/pgsql-hackers/2006-12/msg01107.php
Tom Lane [2007年1月20日 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).
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
Update docs for recent change to setseed() return value.
Make setseed() return void, rather than an int4 without any use. Per
pgsql-patches discussion of September 20, 2006. Bump the catversion.
Add documentation of memory and time units to postgresql.conf.
Backpatch to 8.2.X for new initdbs.
Tom Lane [2007年1月20日 21:40:25 +0000 (21:40 +0000)]
Don't use 'int' where you mean 'bool'.
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.
Tom Lane [2007年1月20日 21:30:01 +0000 (21:30 +0000)]
Fix broken markup.
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.
Tom Lane [2007年1月20日 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.
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.
Update build time estimate.
Remove remains of old depend target.
Regression tests for large objects. Patch from Jeremy Drake.
Modify max_fsm_pages in postgresql.conf.sample to show a typical value,
rather than a value too high.
Teach psql's \lo slash commands to respect quiet mode, and to output
HTML in HTML mode. Patch from Jeremy Drake.
Document that to remove template1, datistemplate must be 'false'.
Backpatch to 8.2.
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.
Only build ecpg test code when the test is to be performed, in line with
other test code.
Move code that places LOG error level between ERROR and PANIC into new
function is_log_level_output(), for code clarity.
Fix xmlconcat regression test
Fix xmlconcat by properly merging the XML declarations. Add aggregate
function xmlagg.
Add wiki URL:
< first.
> first. There is also a developer's wiki at
> http://developer.postgresql.org.
Add missing copyright blurb, make ruleutils.c use the standard layout
for its header comment.
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
Fix pg_regress breakage for PL and contrib tests, by not requiring that
"input" and "output" dirs be necessarily present.
Add URL for:
* Add Globally/Universally Unique Identifier (GUID/UUID)
> http://archives.postgresql.org/pgsql-general/2007-01/msg00853.php
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.
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.
Optionally use xml2-config to detect installation locations of libxml.
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.
Tom Lane [2007年1月17日 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...
Tom Lane [2007年1月17日 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 :-(
Tweak the width_bucket() regression tests to avoid an unnecessary
dependency on the platform's floating point implementation. Per
report from Stefan Kaltenbrunner.
Mark TODO item "autovacuum on by default" as completed.
Tom Lane [2007年1月17日 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 ...
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)
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.
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.
Tom Lane [2007年1月16日 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.
Enable autovacuum in the default configuration, per discussion.
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.
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.
Fix localization support for multibyte encoding and C locale.
Slightly reworked patch from Tatsuo Ishii
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.
Fix reverse compilation of IS DOCUMENT expression.
Replace unnecessary DISABLE_ZLIB define in pgcrypto with HAVE_LIBZ from core.
Patch from Marko Kreen.
Add support for xmlval IS DOCUMENT expression.
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
Tom Lane [2007年1月12日 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.
Fix compiler warning
Use XML output escaping also in XMLFOREST.
This is the main PostgreSQL git repository.
RSS
Atom