Tom Lane [Mon, 13 Oct 2003 23:48:16 +0000 (23:48 +0000)]
pull_up_subqueries() should copy the subquery before starting to modify
it. Not sure why I'd thought it would be a good idea to do differently
way back when, but Greg Stark exposed the folly of doing so ...
Tom Lane [Mon, 13 Oct 2003 21:06:44 +0000 (21:06 +0000)]
Determine max_connections first, then see how large shared_buffers can
be made, to avoid corner cases where max_connections ends up unreasonably
small because shared_buffers is hogging too much shmem space. Per pghackers
discussion about a week ago. Also, fix the copy-newlines problem in a
more robust way, by using COPY FROM filename instead of COPY FROM STDIN;
per a suggestion from Peter.
Tom Lane [Mon, 13 Oct 2003 20:02:52 +0000 (20:02 +0000)]
Adjust setRelhassubclassInRelation() to not perform actual heap_update
when the pg_class.relhassubclass value is already correct. This should
avoid most cases of the 'tuple concurrently updated' problem that
Robert Creager recently complained about. Also remove a bunch of dead
code in StoreCatalogInheritance() --- it was still computing the complete
list of direct and indirect inheritance ancestors, though that list has
not been needed since we got rid of the pg_ipl catalog.
Bruce Momjian [Sat, 11 Oct 2003 16:30:55 +0000 (16:30 +0000)]
This patch will stop gcc from issuing warnings about type-punned objects
when -fstrict-aliasing is turned on, as it is in the latest gcc when you
use -O2
Bruce Momjian [Fri, 10 Oct 2003 02:08:42 +0000 (02:08 +0000)]
> That's a fairly useless place to put it, though, since someone would
> only think to look at sort_mem if they already had a clue. It should
> be mentioned under bulk data load (in performance tips chapter)
Attached is a doc patch that does this. The way I've worded it may not
be the best, though.
Bruce Momjian [Thu, 9 Oct 2003 19:13:48 +0000 (19:13 +0000)]
About section 8.5.1.5. ("Special Values"):
I suggest adding LOCALTIMESTAMP and LOCALTIME to the first paragraph.
Maybe it should be phrased as:
The following SQL-compatible functions can be used to obtain
current datetime-related values: CURRENT_DATE, CURRENT_TIME,
CURRENT_TIMESTAMP, LOCALTIME and LOCALTIMESTAMP.
(See Section 9.8.4.)
Jan Wieck [Thu, 9 Oct 2003 01:17:07 +0000 (01:17 +0000)]
Protected access to variable m_preparedCount via synchronized
function to prevent multiple threads using automatic cursors on
the same connection from stomping over each others cursor.
Bruce Momjian [Wed, 8 Oct 2003 21:44:06 +0000 (21:44 +0000)]
Add 2-phase info, add Win32 URL:
< o Sample implementation in contrib/rserv
29c28,29
< * Create native Win32 port [win32]
> * Create native Win32 port, http://momjian.postgresql.org/main/writings/pgsql/win32.html
> 367c367,368
< * Two-phase commit to implement distributed transactions
> * Add two-phase commit to all distributed transactions with
> offline/readonly server status or administrator notification for failure
Tom Lane [Mon, 6 Oct 2003 20:09:47 +0000 (20:09 +0000)]
Fix binary_oper_exact() so that the heuristic 'an unknown literal on
one side of a binary operator is probably supposed to be the same type
as the other operand' will be applied for domain types. This worked
in 7.3 but was broken in 7.4 due to code rearrangements. Mea culpa.
Tom Lane [Mon, 6 Oct 2003 16:38:28 +0000 (16:38 +0000)]
During ALTER TABLE ADD FOREIGN KEY, try to check the existing rows using
a single LEFT JOIN query instead of firing the check trigger for each
row individually. Stephan Szabo, with some kibitzing from Tom Lane and
Jan Wieck.
Michael Meskes [Mon, 6 Oct 2003 06:44:55 +0000 (06:44 +0000)]
- Fixed constant listing in execute using clause.
- Fixed typo in ecpg for Informix dec_t type.
- Fixed precision handling in Informix compat funxtions.
Tom Lane [Mon, 6 Oct 2003 02:38:53 +0000 (02:38 +0000)]
Modify COPY FROM to match the null-value string against the column value
before it is de-backslashed, not after. This allows the null string \N
to be reliably distinguished from the data value \N (which must be
represented as \\N). Per bug report from Manfred Koizar ... but it's
amazing this hasn't been reported before ...
Also, be consistent about encoding conversion for null string: the form
specified in the command is in the server encoding, but what is sent
to/from client must be in client encoding. This never worked quite
right before either.
Tom Lane [Mon, 6 Oct 2003 01:11:12 +0000 (01:11 +0000)]
Fix order of operations within SendQuery() so that the time spent in
data transfer during COPY is included in the \timing display. Also
avoid portability problems if tv_usec is unsigned on some platform.
Tom Lane [Sun, 5 Oct 2003 22:44:25 +0000 (22:44 +0000)]
Add a little more smarts to estimate_hash_bucketsize(): if there's no
statistics, but there is a unique index on the column, we can safely
assume it's well-distributed.
Tom Lane [Sat, 4 Oct 2003 21:05:21 +0000 (21:05 +0000)]
Document the always-true-but-previously-undocumented fact that PQfnumber()
will downcase the supplied field name unless it is double-quoted. Also,
upgrade the routine's handling of double quotes to match the backend,
in particular support doubled double quotes within quoted identifiers.
Per pgsql-interfaces discussion a couple weeks ago.
Tom Lane [Sat, 4 Oct 2003 18:22:59 +0000 (18:22 +0000)]
Fix pg_get_constraintdef() to ensure CHECK constraints are always shown
with required outer parentheses. Breakage seems to be leftover from
domain-constraint patches. This could be smarter about suppressing
extra parens, but at this stage of the release cycle I want certainty
not cuteness.
Bruce Momjian [Sat, 4 Oct 2003 18:19:57 +0000 (18:19 +0000)]
Modify:
< * Consider using MVCC to cache count(*) queries with no WHERE clause
> * Use a fixed row count and a +/- count with MVCC visibility rules
> to allow fast COUNT(*) queries with no WHERE clause(?)
Tom Lane [Fri, 3 Oct 2003 20:10:59 +0000 (20:10 +0000)]
Issue 'SET check_function_bodies = false' to suppress possible restore
failures in SQL functions, due to forward references or unqualified
references to objects in other schemas. Per recent discussion.
Tom Lane [Fri, 3 Oct 2003 19:26:49 +0000 (19:26 +0000)]
Add GUC parameter check_function_bodies to control whether validation
of function bodies is done at CREATE FUNCTION time. This is normally
true but can be set false to avoid problems with forward references,
wrong schema search path, etc. This is just the backend patch, still
need to adjust pg_dump to make use of it.
Tom Lane [Fri, 3 Oct 2003 18:26:14 +0000 (18:26 +0000)]
Cause PQescapeString to stop processing at a null character, rather
than generating an invalid output string. Per observation and patch
from Igor Shevchenko. Further code cleanup and documentation by
Tom Lane.
Tom Lane [Fri, 3 Oct 2003 17:04:48 +0000 (17:04 +0000)]
Remove assorted compilation failures introduced by latest ecpg changes.
Also remove -g, which has no business in CPPFLAGS in the first place,
let alone being hardwired there by a sub-Makefile.
Tom Lane [Thu, 2 Oct 2003 23:19:44 +0000 (23:19 +0000)]
Add a bit more locking to vac_update_relstats and vac_update_dbstats
to make them comparable to what UpdateStats does in the same situation.
I'm not certain two instances of vac_update_relstats could run in
parallel for the same relation, but parallel invocations of vac_update_dbstats
do seem possible.
Tom Lane [Thu, 2 Oct 2003 22:24:54 +0000 (22:24 +0000)]
When dumping CREATE INDEX, must show opclass name if the opclass isn't
in the schema search path. Otherwise pg_dump doesn't correctly dump
scenarios where a custom opclass is created in 'public' and then used
by indexes in other schemas.
Tom Lane [Thu, 2 Oct 2003 19:52:44 +0000 (19:52 +0000)]
Do not return from PQrequestCancel until postmaster has finished
processing the request; this ensures that the request won't be taken
to cancel a subsequently-issued query. Race condition originally
noted by Oliver Jowett in the context of JDBC, but libpq has it too.