Tom Lane [Thu, 12 Aug 2004 21:00:34 +0000 (21:00 +0000)]
Allow commas in BEGIN, START TRANSACTION, and SET TRANSACTION, as required
by the SQL standard. For backwards compatibility, however, continue to
accept the syntax without. Minor editorialization in the reference pages
for these commands, too.
Bruce Momjian [Thu, 12 Aug 2004 19:45:24 +0000 (19:45 +0000)]
Add:
> * Allow finer control over the caching of prepared query plans
>
> Currently, queries prepared via the libpq API are planned on first
> execute using the supplied parameters --- allow SQL PREPARE to do the
> same. Also, allow control over replanning prepared queries either
> manually or automatically when statistics for execute parameters
> differ dramatically from those used during planning.
>
Bruce Momjian [Thu, 12 Aug 2004 18:32:52 +0000 (18:32 +0000)]
Add make_native_path() because Win32 COPY is an internal CMD.EXE command
and doesn't process forward slashes in the same way as external
commands. Quoting the first argument to COPY does not convert forward
to backward slashes, but COPY does properly process quoted forward
slashes in the second argument.
Win32 COPY works with quoted forward slashes in the first argument only if the
current directory is the same as the directory of the first argument.
Bruce Momjian [Thu, 12 Aug 2004 16:39:50 +0000 (16:39 +0000)]
Be more aggressive about adding flags to thread compiles. The configure
test only tests for building a binary, not building a shared library.
On Linux, you can build a binary with -pthread, but you can't build a
binary that uses a threaded shared library unless you also use -pthread
when building the binary, or adding -lpthread to the shared library
build. This patch has the effect of doing the later by adding both
-pthread and -lpthread when building libpq.
Tom Lane [Wed, 11 Aug 2004 18:06:01 +0000 (18:06 +0000)]
Add PQserverVersion() to libpq to provide more-convenient access to
the server version number. This commit also removes bogus DOS line
endings from libpqddll.def.
Tom Lane [Wed, 11 Aug 2004 16:53:28 +0000 (16:53 +0000)]
Fix function definition that somehow missed being ANSI-fied, and align
it with previous prototype to suppress complaints from picky compilers,
per report from Scott Bailey. Also, remove substitute strerror
definition --- not needed, since we link this with libpgport.
Tom Lane [Wed, 11 Aug 2004 04:07:16 +0000 (04:07 +0000)]
Fix failure to guarantee that a checkpoint will write out pg_clog updates
for transaction commits that occurred just before the checkpoint. This is
an EXTREMELY serious bug --- kudos to Satoshi Okada for creating a
reproducible test case to prove its existence.
Joe Conway [Wed, 11 Aug 2004 00:49:35 +0000 (00:49 +0000)]
Hashed crosstab was dying with an SPI_finish error when the source SQL
produced no rows. Now it returns 0 rows instead. Adjusted regression
test for this case.
Bruce Momjian [Tue, 10 Aug 2004 17:30:47 +0000 (17:30 +0000)]
Update DELETE FROM:
< * Allow DELETE to handle table aliases for self-joins
> * Allow an alias to be provided for the target table in UPDATE/DELETE
276,279c276,282
< There is no way to create a table alias for the deleted table for use
< in the DELETE WHERE clause. The agreed approach is to allow a USING
< clause to specify additional tables. UPDATE already has an optional
< FROM clause for this purpose.
> This is not SQL-spec but many DBMSs allow it.
>
> * Allow additional tables to be specified in DELETE for joins
>
> UPDATE already allows this (UPDATE...FROM) but we need similar
> functionality in DELETE. It's been agreed that the keyword should
> be USING, to avoid anything as confusing as DELETE FROM a FROM b.
Tom Lane [Mon, 9 Aug 2004 20:20:47 +0000 (20:20 +0000)]
Path-mangling logic was failing to account for paths containing mentions
of '.' or '..'. Extend canonicalize_path() to trim off trailing occurrences
of these things, and use it to fix up paths where needed (which I think is
only after places where we trim the last path component, but maybe some
others will turn up). Fixes Josh's complaint that './initdb' does not
work.
Tom Lane [Mon, 9 Aug 2004 16:26:06 +0000 (16:26 +0000)]
When expanding %p in archive_command or restore_command, translate
slashes to backslashes #ifdef WIN32. This is to cope with the fact
that Windows seems exceedingly unfriendly to slashes in shell commands,
as per recent discussion.
Bruce Momjian [Sun, 8 Aug 2004 06:44:36 +0000 (06:44 +0000)]
Allow libpgport to call memory allocation routines even though
CurrentMemoryContext is DLLIMPORT on Win32. Work around that by
creating stubs in the backend for palloc/pstrdup.
Also fix pg_dumpall to do proper quoting on Win32.
Joe Conway [Sun, 8 Aug 2004 05:01:55 +0000 (05:01 +0000)]
Tighened up syntax checking of array input processing considerably. Junk that
was previously allowed in odd places with odd results now causes an ERROR.
Also changed behavior with respect to whitespace -- trailing whitespace is
now ignored as well as leading whitespace (which has always been ignored).
Documentation updated to reflect change in whitespace handling. Also some
refactoring to what I believe is a more sensible order of several paragraphs.
Tom Lane [Sun, 8 Aug 2004 00:50:58 +0000 (00:50 +0000)]
Update plpgsql documentation for 8.0 (mostly, make use of named
function parameters and dollar quoting in examples; do some polishing
of the existing dollar-quoting docs). The 'how to port from Oracle'
section is looking pretty respectable these days ...
Tom Lane [Sat, 7 Aug 2004 17:40:49 +0000 (17:40 +0000)]
Don't try to rewrite NEW references in a utility statement in a rule.
There won't be any, and in fact there won't even be an RTE for NEW,
which was leading to a core dump in CVS tip. 7.4 and earlier manage
not to crash when applying ResolveNew in this scenario, but I think
it was just good fortune that they didn't. Per report from
Bernd Helmle.
Bruce Momjian [Fri, 6 Aug 2004 18:09:15 +0000 (18:09 +0000)]
I have noticed that the latex format in psql has some bugs:
o "_" is not escaped, and causes TeX to abort, thinking it's a
subscript outside of maths mode. Most of my table and field names
use underscores, so this is a really nasty one.
o The column count is calculated using the contents of opt_align. But
opt_align has one extra element, and so it's always one too many. I
changed it to count the column headings, like all the other output
formats. There may be a bug in computing opt_align that this patch
does not address, but I'm not yet familiar enough with the psql
source to fix this as well.
o The line drawing rules for each border setting (0-3) and expanded
mode didn't always match the documented behaviour and what other
formats (e.g. aligned) did. I made it as conformant as possible,
and also tidied the alignment of the first line of the footer, which
was incorrectly indented.
Tom Lane [Fri, 6 Aug 2004 18:05:49 +0000 (18:05 +0000)]
Use one, not zero, as the default lower bound for arrays of AclItems.
This avoids changing the displayed appearance of ACL columns now that
array_out decorates its output with bounds information when the lower
bound isn't one. Per gripe from Gaetano Mendola. Note that I did not
force initdb for this, although any database initdb'd in the last
couple of days is going to have some problems.
Bruce Momjian [Fri, 6 Aug 2004 17:52:44 +0000 (17:52 +0000)]
Modify:
> * Un-comment all variables in postgresql.conf
84,85c84,85
< By removing comments we prevent the confusion that commenting a line
< returns a modified value to its default, which it does not.
> By not showing commented-out variables, we discourage people from
> thinking that re-commenting a variable returns it to its default.
Tom Lane [Thu, 5 Aug 2004 23:32:13 +0000 (23:32 +0000)]
Create a built-in log rotation program, so that we no longer have to
recommend that people go get Apache's rotatelogs program. Additional
benefits are that configuration is done through GUC, rather than
externally, and that the postmaster can monitor the log rotator and
restart it after failure (though we certainly hope that won't happen
often).
Andreas Pflug, some rework by Tom Lane.
Joe Conway [Thu, 5 Aug 2004 03:30:44 +0000 (03:30 +0000)]
Require that array literals produce "rectangular" arrays, i.e. all the
subarrays of a given dimension have the same number of elements/subarrays.
Also repair a longstanding undocumented (as far as I can see) ability to
explicitly set array bounds in the array literal syntax. It now can
deal properly with negative array indicies. Modify array_out so that
arrays with non-standard lower bounds (i.e. not 1) are output with
the expicit dimension syntax. This fixes a longstanding issue whereby
arrays with non-default lower bounds had them changed to default
after a dump/reload cycle.
Modify regression tests and docs to suit, and add some minimal
documentation regarding the explicit dimension syntax.