]> granicus.if.org Git - postgresql/log
postgresql
15 years agoTry to make silent_mode behave somewhat reasonably.
Tom Lane [Mon, 24 Aug 2009 20:08:32 +0000 (20:08 +0000)]
Try to make silent_mode behave somewhat reasonably.

Instead of sending stdout/stderr to /dev/null after forking away from the
terminal, send them to postmaster.log within the data directory.  Since
this opens the door to indefinite logfile bloat, recommend even more
strongly that log output be redirected when using silent_mode.

Move the postmaster's initial calls of load_hba() and load_ident() down
to after we have started the log collector, if we are going to.  This
is so that errors reported by them will appear in the "usual" place.

Reclassify silent_mode as a LOGGING_WHERE, not LOGGING_WHEN, parameter,
since it's got absolutely nothing to do with the latter category.

In passing, fix some obsolete references to -S ... this option hasn't
had that switch letter for a long time.

Back-patch to 8.4, since as of 8.4 load_hba() and load_ident() are more
picky (and thus more likely to fail) than they used to be.  This entire
change was driven by a complaint about those errors disappearing into
the bit bucket.

15 years agoSmall correction to previous patch: we shouldn't ReleasePostmasterChildSlot
Tom Lane [Mon, 24 Aug 2009 18:09:37 +0000 (18:09 +0000)]
Small correction to previous patch: we shouldn't ReleasePostmasterChildSlot
for a dead_end child, because we didn't AssignPostmasterChildSlot.

15 years agoAvoid calling kill() in a postmaster signal handler.
Alvaro Herrera [Mon, 24 Aug 2009 17:23:02 +0000 (17:23 +0000)]
Avoid calling kill() in a postmaster signal handler.

This causes problems when the system load is high, per report from Zdenek
Kotala in <1250860954.1239.114.camel@localhost>; instead of calling kill
directly, have the signal handler set a flag which is checked in ServerLoop.
This way, the handler can return before being called again by a subsequent
signal sent from the autovacuum launcher.  Also, increase the sleep in the
launcher in this failure path to 1 second.

Backpatch to 8.3, which is when the signalling between autovacuum
launcher/postmaster was introduced.

Also, add a couple of ReleasePostmasterChildSlot calls in error paths; this
part backpatched to 8.4 which is when the child slot stuff was introduced.

15 years agoFix inclusions of readline/editline header files so that we only attempt to
Tom Lane [Mon, 24 Aug 2009 16:18:13 +0000 (16:18 +0000)]
Fix inclusions of readline/editline header files so that we only attempt to
#include the version of history.h that is in the same directory as the
readline.h we are using.  This avoids problems in some scenarios where both
readline and editline are installed.  Report and patch by Zdenek Kotala.

15 years agoRemove unused variable.
Alvaro Herrera [Mon, 24 Aug 2009 14:15:09 +0000 (14:15 +0000)]
Remove unused variable.

Per Grzegorz Jaskiewicz report from LLVM static checker

15 years agoRun the "tablespace" regression test first not last. The former placement
Tom Lane [Mon, 24 Aug 2009 03:10:16 +0000 (03:10 +0000)]
Run the "tablespace" regression test first not last.  The former placement
renders useless one of the few test methodologies we have for WAL replay,
which is to intentionally crash the system just after completing the
regression tests and see if it recovers to the expected database state.
The reason is that DROP TABLESPACE forces a checkpoint, so there's essentially
no WAL available for replay after the tests complete.

15 years agoFix a violation of WAL coding rules in the recent patch to include an
Tom Lane [Mon, 24 Aug 2009 02:18:32 +0000 (02:18 +0000)]
Fix a violation of WAL coding rules in the recent patch to include an
"all tuples visible" flag in heap page headers.  The flag update *must*
be applied before calling XLogInsert, but heap_update and the tuple
moving routines in VACUUM FULL were ignoring this rule.  A crash and
replay could therefore leave the flag incorrectly set, causing rows
to appear visible in seqscans when they should not be.  This might explain
recent reports of data corruption from Jeff Ross and others.

In passing, do a bit of editorialization on comments in visibilitymap.c.

15 years agoMake TRUNCATE do truncate-in-place when processing a relation that was created
Tom Lane [Sun, 23 Aug 2009 19:23:41 +0000 (19:23 +0000)]
Make TRUNCATE do truncate-in-place when processing a relation that was created
or previously truncated in the current (sub)transaction.  This is safe since
if the (sub)transaction later rolls back, we'd just discard the rel's current
physical file anyway.  This avoids unreasonable growth in the number of
transient files when a relation is repeatedly truncated.  Per a performance
gripe a couple weeks ago from Todd Cook.

15 years agoTweak ExecIndexEvalRuntimeKeys to forcibly detoast any toasted comparison
Tom Lane [Sun, 23 Aug 2009 18:26:08 +0000 (18:26 +0000)]
Tweak ExecIndexEvalRuntimeKeys to forcibly detoast any toasted comparison
values before they get passed to the index access method.  This avoids
repeated detoastings that will otherwise ensue as the comparison value
is examined by various index support functions.  We have seen a couple of
reports of cases where repeated detoastings result in an order-of-magnitude
slowdown, so it seems worth adding a bit of extra logic to prevent this.

I had previously proposed trying to avoid duplicate detoastings in general,
but this fix takes care of what seems the most important case in practice
with very little effort or risk.

Back-patch to 8.4 so that the PostGIS folk won't have to wait a year to
have this fix in a production release.  (The issue exists further back,
of course, but the code's diverged enough to make backpatching further a
higher-risk action.  Also it appears that the possible gains may be limited
in prior releases because of different handling of lossy operators.)

15 years agoInclude resjunk columns in EXPLAIN VERBOSE output lists. Per discussion.
Tom Lane [Sat, 22 Aug 2009 02:06:32 +0000 (02:06 +0000)]
Include resjunk columns in EXPLAIN VERBOSE output lists.  Per discussion.

15 years agoRemove tabs from SGML.
Bruce Momjian [Thu, 20 Aug 2009 12:12:37 +0000 (12:12 +0000)]
Remove tabs from SGML.

15 years agoFix version_stamp.pl to allow 'alphaN' version stamps. Not sure how
Tom Lane [Wed, 19 Aug 2009 15:03:56 +0000 (15:03 +0000)]
Fix version_stamp.pl to allow 'alphaN' version stamps.  Not sure how
Peter did that without fixing this ...

15 years agoAlter release note item about PL/pgSQL functions and dropped columns.
Peter Eisentraut [Wed, 19 Aug 2009 08:18:48 +0000 (08:18 +0000)]
Alter release note item about PL/pgSQL functions and dropped columns.
per Pavel Stehule

15 years agoUpdate alpha release notes to current.
Peter Eisentraut [Wed, 19 Aug 2009 07:54:21 +0000 (07:54 +0000)]
Update alpha release notes to current.

15 years agoAllow mixing of traditional and SQL:2008 LIMIT/OFFSET syntax. Being rigid
Tom Lane [Tue, 18 Aug 2009 23:40:20 +0000 (23:40 +0000)]
Allow mixing of traditional and SQL:2008 LIMIT/OFFSET syntax.  Being rigid
about it doesn't simplify the grammar at all, and it does invite confusion
among those who only read the SELECT syntax summary and not the full details.
Per gripe from Jaime Casanova.

15 years agoPick up REGRESS_OPTS from contrib makefiles. Along the way, fix ordering of makefile...
Andrew Dunstan [Tue, 18 Aug 2009 22:36:56 +0000 (22:36 +0000)]
Pick up REGRESS_OPTS from contrib makefiles. Along the way, fix ordering of makefile tests to mimic gmake.

15 years agoFix overflow for INTERVAL 'x ms' where x is more than a couple million,
Tom Lane [Tue, 18 Aug 2009 21:23:14 +0000 (21:23 +0000)]
Fix overflow for INTERVAL 'x ms' where x is more than a couple million,
and integer datetimes are in use.  Per bug report from Hubert Depesz
Lubaczewski.

Alex Hunsaker

15 years agoRemove duplicate from release notes, and reorganize slightly.
Peter Eisentraut [Tue, 18 Aug 2009 16:54:12 +0000 (16:54 +0000)]
Remove duplicate from release notes, and reorganize slightly.

15 years agoPrint the actual DB encoding in the unaccent regression test.
Tom Lane [Tue, 18 Aug 2009 16:00:50 +0000 (16:00 +0000)]
Print the actual DB encoding in the unaccent regression test.
This is to help make it more obvious what the problem is, if the
encoding isn't what the test expects.

15 years agoFix some *other* compiler warnings from a different gcc version.
Tom Lane [Tue, 18 Aug 2009 15:57:26 +0000 (15:57 +0000)]
Fix some *other* compiler warnings from a different gcc version.

15 years agoFix copy-and-pasteo that might explain some of the buildfarm's
Tom Lane [Tue, 18 Aug 2009 15:51:16 +0000 (15:51 +0000)]
Fix copy-and-pasteo that might explain some of the buildfarm's
indigestion about this module.

15 years agoSuppress compiler warnings about uninitialized variables.
Tom Lane [Tue, 18 Aug 2009 15:37:04 +0000 (15:37 +0000)]
Suppress compiler warnings about uninitialized variables.

15 years agoUnaccent dictionary.
Teodor Sigaev [Tue, 18 Aug 2009 10:34:39 +0000 (10:34 +0000)]
Unaccent dictionary.

15 years agoIntroduce filtering dictionary support to tsearch. Propagate --nolocale option
Teodor Sigaev [Tue, 18 Aug 2009 10:30:41 +0000 (10:30 +0000)]
Introduce filtering dictionary support to tsearch.  Propagate --nolocale option
to CREATE DATABASE command in pg_regress to allow correct checking of
locale-sensitive contrib modules.

15 years agoAdd release notes for 8.5alpha1
Peter Eisentraut [Mon, 17 Aug 2009 22:14:44 +0000 (22:14 +0000)]
Add release notes for 8.5alpha1

15 years agoMake version.sgml depend on configure instead of Makefile.global. This
Peter Eisentraut [Mon, 17 Aug 2009 21:29:30 +0000 (21:29 +0000)]
Make version.sgml depend on configure instead of Makefile.global.  This
cheats a bit, but it avoids unsatisfied dependencies in distribution
tarballs.  (found by make distcheck)

15 years agoDepartment of marginal improvements: teach tupconvert.c to avoid doing a
Tom Lane [Mon, 17 Aug 2009 20:34:31 +0000 (20:34 +0000)]
Department of marginal improvements: teach tupconvert.c to avoid doing a
physical conversion when there are dropped columns in the same places in
the input and output tupdescs.  This avoids possible performance loss from
the recent patch to improve dropped-column handling, in some cases where
the old code would have worked.

15 years agoFix imprecise documentation of random(): it never returns 1.0.
Tom Lane [Sun, 16 Aug 2009 19:55:21 +0000 (19:55 +0000)]
Fix imprecise documentation of random(): it never returns 1.0.
This was changed in 8.2 but the documentation was not corrected.
Per gripe from Sam Mason.

15 years agoFix incorrect encoding-aware name truncation in makeArrayTypeName().
Tom Lane [Sun, 16 Aug 2009 18:14:34 +0000 (18:14 +0000)]
Fix incorrect encoding-aware name truncation in makeArrayTypeName().

truncate_identifier won't do anything if the passed-in strlen is already
less than NAMEDATALEN, which it always would be given the strlcpy usage.
This has been broken since the arrays-of-composite-types code went in.

Arguably truncate_identifier is suffering from excessive optimization
and should always process the string, but for the moment I'll take the
more localized patch.

Per bug #4987.

15 years agoRemove Wisconsin benchmark files.
Tom Lane [Sat, 15 Aug 2009 16:16:01 +0000 (16:16 +0000)]
Remove Wisconsin benchmark files.

This test is clearly not being used anymore, since it's been broken for
long periods of time without anyone noticing.  Per discussion, it's not
worth keeping in our source tree.

15 years agoMake sure that 'make distclean' cleans out all files that are not meant
Tom Lane [Sat, 15 Aug 2009 01:56:35 +0000 (01:56 +0000)]
Make sure that 'make distclean' cleans out all files that are not meant
to be shipped.  Also, allow 'make clean' to remove intermediate working files.

15 years agoClarify the documentation about PL/Perl nested subroutines, per Josh
Peter Eisentraut [Sat, 15 Aug 2009 00:33:12 +0000 (00:33 +0000)]
Clarify the documentation about PL/Perl nested subroutines, per Josh
Berkus.

15 years agoRemove the test case that depends on the platform's float output format.
Peter Eisentraut [Fri, 14 Aug 2009 23:25:51 +0000 (23:25 +0000)]
Remove the test case that depends on the platform's float output format.

15 years agoBe able to easily figure out the target directory of "make dist".
Alvaro Herrera [Fri, 14 Aug 2009 21:37:18 +0000 (21:37 +0000)]
Be able to easily figure out the target directory of "make dist".

15 years agoRepair breakage of Wisconsin benchmark due to change of command line syntax
Tom Lane [Fri, 14 Aug 2009 18:49:34 +0000 (18:49 +0000)]
Repair breakage of Wisconsin benchmark due to change of command line syntax
for standalone backends.

Although we probably ought to just remove this long-obsolete test case from
our code, it seems worthwhile to document the issue and fix in CVS first.

Jeff Janes

15 years agoAdd prefix support for synonym dictionary
Teodor Sigaev [Fri, 14 Aug 2009 14:53:20 +0000 (14:53 +0000)]
Add prefix support for synonym dictionary

15 years agoPL/Python regression tests for data type handling
Peter Eisentraut [Fri, 14 Aug 2009 13:42:16 +0000 (13:42 +0000)]
PL/Python regression tests for data type handling

Add some checks on various data types are converted into and out of Python.
This is extracted from Caleb Welton's patch for improved bytea support,
but much expanded.

15 years agoMade sure sqlca is reset for declare cursor in Informix mode as pointed out by
Michael Meskes [Fri, 14 Aug 2009 13:28:22 +0000 (13:28 +0000)]
Made sure sqlca is reset for declare cursor in Informix mode as pointed out by
Böszörményi Zoltán <zb@cybertec.at>.

15 years agoDomain support in PL/Python
Peter Eisentraut [Fri, 14 Aug 2009 13:12:21 +0000 (13:12 +0000)]
Domain support in PL/Python

When examining what Python type to convert a PostgreSQL type to on input,
look at the base type of the input type, otherwise all domains end up
defaulting to string.

15 years agoRemove stray character in type description
Peter Eisentraut [Thu, 13 Aug 2009 21:14:31 +0000 (21:14 +0000)]
Remove stray character in type description

15 years agoAugment test coverage in PL/Python, especially for error conditions.
Peter Eisentraut [Thu, 13 Aug 2009 20:50:05 +0000 (20:50 +0000)]
Augment test coverage in PL/Python, especially for error conditions.

15 years agoAdd a simple test case covering a join against an inheritance tree,
Tom Lane [Thu, 13 Aug 2009 17:14:38 +0000 (17:14 +0000)]
Add a simple test case covering a join against an inheritance tree,
since we're evidently not testing that at all right now :-(

15 years agoPut back adjust_appendrel_attrs()'s code for dealing with RestrictInfo.
Tom Lane [Thu, 13 Aug 2009 16:53:09 +0000 (16:53 +0000)]
Put back adjust_appendrel_attrs()'s code for dealing with RestrictInfo.
I mistakenly removed it last month, thinking it was no longer needed ---
but it is still needed for dealing with joininfo lists.  Fortunately this
bit of brain fade hadn't made it into any released versions yet.

15 years agoImprove error message for the case where a requested foreign key constraint
Tom Lane [Wed, 12 Aug 2009 23:00:12 +0000 (23:00 +0000)]
Improve error message for the case where a requested foreign key constraint
does match some unique index on the referenced table, but that index is
only deferrably unique.  We were doing this nicely for the
default-to-primary-key case, but were being lazy for the other case.

Dean Rasheed

15 years agoThe html-stamp and man-stamp files also need to be cvsignore'd.
Tom Lane [Wed, 12 Aug 2009 21:03:52 +0000 (21:03 +0000)]
The html-stamp and man-stamp files also need to be cvsignore'd.

15 years agoAllow backends to start up without use of the flat-file copy of pg_database.
Tom Lane [Wed, 12 Aug 2009 20:53:31 +0000 (20:53 +0000)]
Allow backends to start up without use of the flat-file copy of pg_database.

To make this work in the base case, pg_database now has a nailed-in-cache
relation descriptor that is initialized using hardwired knowledge in
relcache.c.  This means pg_database is added to the set of relations that
need to have a Schema_pg_xxx macro maintained in pg_attribute.h.  When this
path is taken, we'll have to do a seqscan of pg_database to find the row
we need.

In the normal case, we are able to do an indexscan to find the database's row
by name.  This is made possible by storing a global relcache init file that
describes only the shared catalogs and their indexes (and therefore is usable
by all backends in any database).  A new backend loads this cache file,
finds its database OID after an indexscan on pg_database, and then loads
the local relcache init file for that database.

This change should effectively eliminate number of databases as a factor
in backend startup time, even with large numbers of databases.  However,
the real reason for doing it is as a first step towards getting rid of
the flat files altogether.  There are still several other sub-projects
to be tackled before that can happen.

15 years agoFix old bug in log_autovacuum_min_duration code: it was relying on being able
Tom Lane [Wed, 12 Aug 2009 18:23:49 +0000 (18:23 +0000)]
Fix old bug in log_autovacuum_min_duration code: it was relying on being able
to access a Relation entry it had just closed.  I happened to be testing with
CLOBBER_CACHE_ALWAYS, which made this a guaranteed core dump (at least on
machines where sprintf %s isn't forgiving of a NULL pointer).  It's probably
quite unlikely that it would fail in the field, but a bug is a bug.  Fix by
moving the relation_close call down past the logging action.

15 years agoSplit the plpython regression test into test cases arranged by topic, instead
Peter Eisentraut [Wed, 12 Aug 2009 16:37:26 +0000 (16:37 +0000)]
Split the plpython regression test into test cases arranged by topic, instead
of the previous monolithic setup-create-run sequence, that was apparently
inherited from a previous test infrastructure, but makes working with the
tests and adding new ones weird.

15 years agoDocument the minimum required Python version.
Peter Eisentraut [Wed, 12 Aug 2009 16:32:35 +0000 (16:32 +0000)]
Document the minimum required Python version.

It turns out that Python 2.2 is the oldest version that PL/Python compiles
with, apparently related to the introduction of iterators.  Might as well
document this.

15 years agoAdd .cvsignore entries for documentation files
Peter Eisentraut [Tue, 11 Aug 2009 22:22:15 +0000 (22:22 +0000)]
Add .cvsignore entries for documentation files

15 years agoRemove unnecessary files from distribution
Peter Eisentraut [Tue, 11 Aug 2009 22:21:51 +0000 (22:21 +0000)]
Remove unnecessary files from distribution

15 years agoSimplify and speed up man page installation
Peter Eisentraut [Tue, 11 Aug 2009 21:53:06 +0000 (21:53 +0000)]
Simplify and speed up man page installation

15 years agoRefactor some $(JADE.tex.call)s
Alvaro Herrera [Tue, 11 Aug 2009 20:16:03 +0000 (20:16 +0000)]
Refactor some $(JADE.tex.call)s

15 years agoRemove tab in SGML.
Bruce Momjian [Tue, 11 Aug 2009 12:02:58 +0000 (12:02 +0000)]
Remove tab in SGML.

15 years agoFix URL to "The Hitch-Hiker's Guide to Evolutionary Computation".
Alvaro Herrera [Mon, 10 Aug 2009 22:41:38 +0000 (22:41 +0000)]
Fix URL to "The Hitch-Hiker's Guide to Evolutionary Computation".

Per Andreas Wenk, Andres Freund and Rob Wultsh.  Thanks, Robert Haas, for the
patch.

15 years agoFix number of columns declared for pg_user_mappings description table.
Alvaro Herrera [Mon, 10 Aug 2009 22:13:50 +0000 (22:13 +0000)]
Fix number of columns declared for pg_user_mappings description table.

15 years agoRefactor NUM_cache_remove calls in error report path to a PG_TRY block.
Alvaro Herrera [Mon, 10 Aug 2009 20:16:05 +0000 (20:16 +0000)]
Refactor NUM_cache_remove calls in error report path to a PG_TRY block.

The code in the new block was not reindented; it will be fixed by pgindent
eventually.

15 years agoSupport EEEE (scientific notation) in to_char().
Tom Lane [Mon, 10 Aug 2009 18:29:27 +0000 (18:29 +0000)]
Support EEEE (scientific notation) in to_char().

Pavel Stehule, Brendan Jurd

15 years agoAdjust test_fsync code to be more sane.
Bruce Momjian [Mon, 10 Aug 2009 18:19:06 +0000 (18:19 +0000)]
Adjust test_fsync code to be more sane.

Backpatch to 8.4.X.

15 years agoAdjust extract(epoch) example to clarify that it includes fractional
Tom Lane [Mon, 10 Aug 2009 16:10:19 +0000 (16:10 +0000)]
Adjust extract(epoch) example to clarify that it includes fractional
seconds, per gripe from Richard Neill.  Also, add a cross-reference to
the to_timestamp function.

15 years agoExtend EXPLAIN to support output in XML or JSON format.
Tom Lane [Mon, 10 Aug 2009 05:46:50 +0000 (05:46 +0000)]
Extend EXPLAIN to support output in XML or JSON format.

There are probably still some adjustments to be made in the details
of the output, but this gets the basic structure in place.

Robert Haas

15 years agoRe-add documentation for --no-readline option of psql, mistakenly removed a decade...
Andrew Dunstan [Mon, 10 Aug 2009 02:39:04 +0000 (02:39 +0000)]
Re-add documentation for --no-readline option of psql, mistakenly removed a decade ago. Backpatch to release 7.4.

15 years agoShip documentation without intermediate tarballs
Peter Eisentraut [Sun, 9 Aug 2009 22:47:59 +0000 (22:47 +0000)]
Ship documentation without intermediate tarballs

Documentation files in HTML and man formats are now prepared for
distribution using the distprep make target, like everything else.  They
are placed in doc/src/sgml/html and manX and installed from there by
make install, if present.  The business with the tarballs in the tarball
is gone.

15 years agoDocument that LocalSetXLogInsertAllowed can be re-executed.
Tom Lane [Sat, 8 Aug 2009 16:39:17 +0000 (16:39 +0000)]
Document that LocalSetXLogInsertAllowed can be re-executed.
Per comment from Simon.

15 years agoModify parallel pg_restore to track pending and ready items by means of
Tom Lane [Fri, 7 Aug 2009 22:48:34 +0000 (22:48 +0000)]
Modify parallel pg_restore to track pending and ready items by means of
two new lists, rather than repeatedly rescanning the main TOC list.
This avoids a potential O(N^2) slowdown, although you'd need a *lot*
of tables to make that really significant; and it might simplify future
improvements in the scheduling algorithm by making the set of ready
items more easily inspectable.  The original thought that it would
in itself result in a more efficient job dispatch order doesn't seem
to have been borne out in testing, but it seems worth doing anyway.

15 years agoDocument that autovacuum may run ANALYZE
Alvaro Herrera [Fri, 7 Aug 2009 20:54:31 +0000 (20:54 +0000)]
Document that autovacuum may run ANALYZE

15 years agoExpand test coverage support to entire tree
Peter Eisentraut [Fri, 7 Aug 2009 20:50:22 +0000 (20:50 +0000)]
Expand test coverage support to entire tree

Test coverage support now covers the entire source tree, including
contrib, instead of just src/backend.  In a related but independent
development, the commands make coverage and make coverage-html can be run
in any directory.

This turned out to be much easier than feared.  Besides a few ad hoc fixes
to pass the make target down the tree, change all affected makefiles to
list their directories in the SUBDIRS variable, changed from variants like
DIRS and WANTED_DIRS.  MSVC build fix was attempted as well.

15 years agoTry to defend against the possibility that libpq is still in COPY_IN state
Tom Lane [Fri, 7 Aug 2009 20:16:11 +0000 (20:16 +0000)]
Try to defend against the possibility that libpq is still in COPY_IN state
when we reach the post-COPY "pump it dry" error recovery code that was added
2006-11-24.  Per a report from Neil Best, there is at least one code path
in which this occurs, leading to an infinite loop in code that's supposed
to be making it more robust not less so.  A reasonable response seems to be
to call PQputCopyEnd() again, so let's try that.

Back-patch to all versions that contain the cleanup loop.

15 years agorm_cleanup functions need to be allowed to write WAL entries. This oversight
Tom Lane [Fri, 7 Aug 2009 19:29:49 +0000 (19:29 +0000)]
rm_cleanup functions need to be allowed to write WAL entries.  This oversight
appears to explain the recent reports of "PANIC: cannot make new WAL entries
during recovery".

15 years agoRemove unused ecpg variable.
Bruce Momjian [Fri, 7 Aug 2009 16:47:53 +0000 (16:47 +0000)]
Remove unused ecpg variable.

15 years agoRemove long-since-unused file commands/version.h.
Tom Lane [Fri, 7 Aug 2009 16:19:57 +0000 (16:19 +0000)]
Remove long-since-unused file commands/version.h.
Noticed by Itagaki Takahiro.

15 years agoFix some omissions in the dependency-object-class support for SQL/MED objects.
Tom Lane [Fri, 7 Aug 2009 15:27:56 +0000 (15:27 +0000)]
Fix some omissions in the dependency-object-class support for SQL/MED objects.

Main problem found by Muhammad Aqeel, some cosmetic additions by me.

15 years agoAdded STRING datatype for Informix compatibility mode. This work is
Michael Meskes [Fri, 7 Aug 2009 10:51:21 +0000 (10:51 +0000)]
Added STRING datatype for Informix compatibility mode. This work is
based on a patch send in by Böszörményi Zoltán <zb@cybertec.at>.

15 years agoFast shutdown stop should forcibly disconnect any active backends, even
Heikki Linnakangas [Fri, 7 Aug 2009 05:58:55 +0000 (05:58 +0000)]
Fast shutdown stop should forcibly disconnect any active backends, even
if a smart shutdown is already in progress. Backpatch to 8.3, this was broken
in the patch that introduced "dead-end backends".

Per report by Itagaki Takahiro, patch by Fujii Masao.

15 years agoImprove plpgsql's ability to cope with rowtypes containing dropped columns,
Tom Lane [Thu, 6 Aug 2009 20:44:32 +0000 (20:44 +0000)]
Improve plpgsql's ability to cope with rowtypes containing dropped columns,
by supporting conversions in places that used to demand exact rowtype match.

Since this issue is certain to come up elsewhere (in fact, already has,
in ExecEvalConvertRowtype), factor out the support code into new core
functions for tuple conversion.  I chose to put these in a new source
file since heaptuple.c is already overly long.

Heavily revised version of a patch by Pavel Stehule.

15 years agoAvoid terminating the postmaster on a number of "can't happen" cases during
Magnus Hagander [Thu, 6 Aug 2009 09:50:22 +0000 (09:50 +0000)]
Avoid terminating the postmaster on a number of "can't happen" cases during
backend startup on Win32. Instead, log the error and just forget about
the potentially dangling process, since we can't do anything about it anyway.

15 years agoFix manpages related to SPI functions.
Alvaro Herrera [Wed, 5 Aug 2009 19:31:50 +0000 (19:31 +0000)]
Fix manpages related to SPI functions.

This patch adds declaration so that they end up in section 3, and adds
them to the Makefiles to install them.

Also, some synopses needed reflowing so that they look nice in 80-column
terminals.

15 years agoAdd matchorig, matchsynonyms, and keepsynonyms options to contrib/dict_xsyn.
Tom Lane [Wed, 5 Aug 2009 18:06:49 +0000 (18:06 +0000)]
Add matchorig, matchsynonyms, and keepsynonyms options to contrib/dict_xsyn.

Sergey Karpov

15 years agoImprove error messages in md.c. When a filesystem operation like open() or
Heikki Linnakangas [Wed, 5 Aug 2009 18:01:54 +0000 (18:01 +0000)]
Improve error messages in md.c. When a filesystem operation like open() or
fsync() fails, say "file" rather than "relation" when printing the filename.

This makes messages that display block numbers a bit confusing. For example,
in message 'could not read block 150000 of file "base/1234/5678.1"', 150000
is the block number from the beginning of the relation, ie. segment 0, not
150000th block within that segment. Per discussion, users aren't usually
interested in the exact location within the file, so we can live with that.

To ease constructing error messages, add FilePathName(File) function to
return the pathname of a virtual fd.

15 years agoImplement dblink_get_notify().
Joe Conway [Wed, 5 Aug 2009 16:11:07 +0000 (16:11 +0000)]
Implement  dblink_get_notify().

Adds the ability to retrieve async notifications using dblink,
via the addition of the function dblink_get_notify(). Original patch
by Marcus Kempe, suggestions by Tom Lane and Alvaro Herrera, patch
review and adjustments by Joe Conway.

15 years agoFixed copyright notice.
Michael Meskes [Wed, 5 Aug 2009 11:42:20 +0000 (11:42 +0000)]
Fixed copyright notice.

15 years agoUse DocBook XSL stylesheets for man page building
Peter Eisentraut [Tue, 4 Aug 2009 22:04:37 +0000 (22:04 +0000)]
Use DocBook XSL stylesheets for man page building

This switches the man page building process to use the DocBook XSL stylesheet
toolchain.  The previous targets for Docbook2X are removed. configure has been
updated to look for the new tools.  The Documentation appendix contains the
new build instructions.  There are also a few isolated tweaks in the
documentation to improve places that came out strangely in the man pages.

15 years agoFix pg_dump to do the right thing when escaping the contents of large objects.
Tom Lane [Tue, 4 Aug 2009 21:56:09 +0000 (21:56 +0000)]
Fix pg_dump to do the right thing when escaping the contents of large objects.

The previous implementation got it right in most cases but failed in one:
if you pg_dump into an archive with standard_conforming_strings enabled, then
pg_restore to a script file (not directly to a database), the script will set
standard_conforming_strings = on but then emit large object data as
nonstandardly-escaped strings.

At the moment the code is made to emit hex-format bytea strings when dumping
to a script file.  We might want to change to old-style escaping for backwards
compatibility, but that would be slower and bulkier.  If we do, it's just a
matter of reimplementing appendByteaLiteral().

This has been broken for a long time, but given the lack of field complaints
I'm not going to worry about back-patching.

15 years agoAvoid including miscadmin.h into plpgsql.h; instead include it into the two
Alvaro Herrera [Tue, 4 Aug 2009 21:22:46 +0000 (21:22 +0000)]
Avoid including miscadmin.h into plpgsql.h; instead include it into the two
source files that need it.

15 years agoFix an ecpg test, too. Are we there yet?
Tom Lane [Tue, 4 Aug 2009 21:09:39 +0000 (21:09 +0000)]
Fix an ecpg test, too.  Are we there yet?

15 years agoFix some more regression tests (missed these because they're only
Tom Lane [Tue, 4 Aug 2009 20:10:00 +0000 (20:10 +0000)]
Fix some more regression tests (missed these because they're only
run when built with --with-openssl).

15 years agoSuppress pointer-signedness warning.
Tom Lane [Tue, 4 Aug 2009 19:46:51 +0000 (19:46 +0000)]
Suppress pointer-signedness warning.

15 years agoOoops, missed that a couple of contrib modules have calls to byteacmp.
Tom Lane [Tue, 4 Aug 2009 18:49:50 +0000 (18:49 +0000)]
Ooops, missed that a couple of contrib modules have calls to byteacmp.
Add bytea.h inclusions as needed.  Some of the contrib regression tests
need to be de-hexified, too.  Per buildfarm.

15 years agoTeach PQescapeByteaConn() to use hex format when the target connection is
Tom Lane [Tue, 4 Aug 2009 18:05:42 +0000 (18:05 +0000)]
Teach PQescapeByteaConn() to use hex format when the target connection is
to a server >= 8.5.  Per my proposal in discussion of hex-format patch.

15 years agoSupport hex-string input and output for type BYTEA.
Tom Lane [Tue, 4 Aug 2009 16:08:37 +0000 (16:08 +0000)]
Support hex-string input and output for type BYTEA.

Both hex format and the traditional "escape" format are automatically
handled on input.  The output format is selected by the new GUC variable
bytea_output.

As committed, bytea_output defaults to HEX, which is an *incompatible
change*.  We will keep it this way for awhile for testing purposes, but
should consider whether to switch to the more backwards-compatible
default of ESCAPE before 8.5 is released.

Peter Eisentraut

15 years agoCause pg_proc.probin to be declared as text, not bytea. Everything was
Tom Lane [Tue, 4 Aug 2009 04:04:12 +0000 (04:04 +0000)]
Cause pg_proc.probin to be declared as text, not bytea.  Everything was
already treating it as text anyway, to the point that I couldn't find anything
to change except the datatype markings in catalog/*.h.  The only effect that
the bytea declaration had was to cause byteaout() to be invoked when pg_dump
(or another client program) inspected the column value.  Since pg_dump wasn't
expecting that, but just treating what it got as text, the net result is that
dump and reload would mangle any backslashes or non-ASCII characters in the
filename string for a C-language function.  That is a very long-standing bug,
but given the lack of field complaints it doesn't seem worth trying to find
a back-patchable fix.  We'll just make this change to fix it going forward.

This change will also forestall problems after the planned change to let bytea
emit hex output instead of escaped characters.

15 years agoImplement has_sequence_privilege()
Joe Conway [Mon, 3 Aug 2009 21:11:40 +0000 (21:11 +0000)]
Implement has_sequence_privilege()

Add family of functions that did not exist earlier,
mainly due to historical omission. Original patch by
Abhijit Menon-Sen, with review and modifications by
Joe Conway. catversion.h bumped.

15 years agoPortability and documentation fixes for threaded pgbench patch.
Tom Lane [Mon, 3 Aug 2009 18:30:55 +0000 (18:30 +0000)]
Portability and documentation fixes for threaded pgbench patch.

15 years agoMulti-threaded version of pgbench contributed by ITAGAKI Takahiro,
Tatsuo Ishii [Mon, 3 Aug 2009 15:18:14 +0000 (15:18 +0000)]
Multi-threaded version of pgbench contributed by ITAGAKI Takahiro,
reviewed by Greg Smith and Josh Williams.

Following is the proposal from ITAGAKI Takahiro:

Pgbench is a famous tool to measure postgres performance, but nowadays
it does not work well because it cannot use multiple CPUs. On the other
hand, postgres server can use CPUs very well, so the bottle-neck of
workload is *in pgbench*.

Multi-threading would be a solution. The attached patch adds -j
(number of jobs) option to pgbench. If the value N is greater than 1,
pgbench runs with N threads. Connections are equally-divided into
them (ex. -c64 -j4 => 4 threads with 16 connections each). It can
run on POSIX platforms with pthread and on Windows with win32 threads.

Here are results of multi-threaded pgbench runs on Fedora 11 with intel
core i7 (8 logical cores = 4 physical cores * HT). -j8 (8 threads) was
the best and the tps is 4.5 times of -j1, that is a traditional result.

$ pgbench -i -s10
$ pgbench -n -S -c64 -j1   =>  tps = 11600.158593
$ pgbench -n -S -c64 -j2   =>  tps = 17947.100954
$ pgbench -n -S -c64 -j4   =>  tps = 26571.124001
$ pgbench -n -S -c64 -j8   =>  tps = 52725.470403
$ pgbench -n -S -c64 -j16  =>  tps = 38976.675319
$ pgbench -n -S -c64 -j32  =>  tps = 28998.499601
$ pgbench -n -S -c64 -j64  =>  tps = 26701.877815

Is it acceptable to use pthread in contrib module?
If ok, I will add the patch to the next commitfest.

15 years agoAdd ALTER TABLE ... ALTER COLUMN ... SET STATISTICS DISTINCT
Tom Lane [Sun, 2 Aug 2009 22:14:53 +0000 (22:14 +0000)]
Add ALTER TABLE ... ALTER COLUMN ... SET STATISTICS DISTINCT

Robert Haas

15 years agoDepartment of second thoughts: let's show the exact key during unique index
Tom Lane [Sat, 1 Aug 2009 20:59:17 +0000 (20:59 +0000)]
Department of second thoughts: let's show the exact key during unique index
build failures, too.  Refactor a bit more since that error message isn't
spelled the same.

15 years agoImprove unique-constraint-violation error messages to include the exact
Tom Lane [Sat, 1 Aug 2009 19:59:41 +0000 (19:59 +0000)]
Improve unique-constraint-violation error messages to include the exact
values being complained of.

In passing, also remove the arbitrary length limitation in the similar
error detail message for foreign key violations.

Itagaki Takahiro

15 years agoCreate a multiplexing structure for signals to Postgres child processes.
Tom Lane [Fri, 31 Jul 2009 20:26:23 +0000 (20:26 +0000)]
Create a multiplexing structure for signals to Postgres child processes.

This patch gets us out from under the Unix limitation of two user-defined
signal types.  We already had done something similar for signals directed to
the postmaster process; this adds multiplexing for signals directed to
backends and auxiliary processes (so long as they're connected to shared
memory).

As proof of concept, replace the former usage of SIGUSR1 and SIGUSR2
for backends with use of the multiplexing mechanism.  There are still some
hard-wired definitions of SIGUSR1 and SIGUSR2 for other process types,
but getting rid of those doesn't seem interesting at the moment.

Fujii Masao

15 years agoMake sure FD_SETSIZE is set before we include any Windows
Magnus Hagander [Thu, 30 Jul 2009 09:28:00 +0000 (09:28 +0000)]
Make sure FD_SETSIZE is set before we include any Windows
header files.

Josh Williams

15 years agoMerge the Constraint and FkConstraint node types into a single type.
Tom Lane [Thu, 30 Jul 2009 02:45:38 +0000 (02:45 +0000)]
Merge the Constraint and FkConstraint node types into a single type.

This was foreseen to be a good idea long ago, but nobody had got round
to doing it.  The recent patch for deferred unique constraints made
transformConstraintAttrs() ugly enough that I decided it was time.
This change will also greatly simplify parsing of deferred CHECK constraints,
if anyone ever gets around to implementing that.

While at it, add a location field to Constraint, and use that to provide
an error cursor for some of the constraint-related error messages.