Dave Cramer [Thu, 21 Mar 2002 03:20:30 +0000 (03:20 +0000)]
Two versions of QueryExecutor, currently only version 2 works 100%
these versions adhere to the backend protocol better than previous version
fixes problem when an error occurs on the backend, and the connection is still used
previous versions were throwing an exception half way through the protocol, leaving it
indeterminate.
also removes empty query code, should speed things up a bit
Dave Cramer [Thu, 21 Mar 2002 02:52:37 +0000 (02:52 +0000)]
modifications to the way the protocol is handled to be consistent with
QueryExecutor. This includes:
1) only exit after we receive a 'Z' packet
2) append error messages to a buffer and throw the exception at the end
Dave Cramer [Thu, 21 Mar 2002 02:39:06 +0000 (02:39 +0000)]
Applied Anders patch to move the startup code out of Connection into StartupPacket
* Introduces a new class, StartupPacket.
* Moves a lot of constants from Connection to StartupPacket.
* Makes two instance variables in Connection into locals.
PyGreSQL causes a segfault when used with a Python executable that was
compiled with --with-pymalloc. This change fixes that. Thanks to
Dave Wallace <dwallace@udel.edu>
Bruce Momjian [Tue, 19 Mar 2002 14:15:55 +0000 (14:15 +0000)]
> > Users of contrib/tsearch needs after upgrading of module (compiling, installing)
> > to perform sql command:
> > update pg_amop set amopreqcheck = true where amopclaid =
> > (select oid from pg_opclass where opcname = 'gist_txtidx_ops');
>
> Oleg, sorry, I don't understand where this should appear. In the README
> file, and if so, where? Is this something only for people upgrading
> from 7.2?
Sorry Bruce, I was unclear. I have attached patch to Readme.tsearch
Also, It'd be worth to mention in Changes to point users of tsearch
about importang upgrade notices.
Bruce Momjian [Tue, 19 Mar 2002 14:14:44 +0000 (14:14 +0000)]
> > Users of contrib/tsearch needs after upgrading of module (compiling, installing)
> > to perform sql command:
> > update pg_amop set amopreqcheck = true where amopclaid =
> > (select oid from pg_opclass where opcname = 'gist_txtidx_ops');
>
> Oleg, sorry, I don't understand where this should appear. In the README
> file, and if so, where? Is this something only for people upgrading
> from 7.2?
Sorry Bruce, I was unclear. I have attached patch to Readme.tsearch
Also, It'd be worth to mention in Changes to point users of tsearch
about importang upgrade notices.
Bruce Momjian [Tue, 19 Mar 2002 02:58:20 +0000 (02:58 +0000)]
The attached patch cleans up the implementation of the TRUNCATE command;
in the current code, the authentication logic (check user, check the
relation we're operating on, etc) is done in tcop/utility.c, whereas the
actual TRUNCATE command in done in TruncateRelation() in
commands/createinh.c (which is really just a wrapper over
heap_truncate() in catalog/heap.c). This patch moves the authentication
logic into TruncateRelation(), as well as making some minor code
cleanups.
Bruce Momjian [Tue, 19 Mar 2002 02:57:15 +0000 (02:57 +0000)]
Fix for trigger handling:
* We should not even consider checking the row if it is no longer
* valid since it was either deleted (doesn't matter) or updated
* (in which case it'll be checked with its final values).
Bruce Momjian [Tue, 19 Mar 2002 02:47:57 +0000 (02:47 +0000)]
> I am backing out this patch. Please resubmit with this corrected. Thanks.
>
> I am running Python 1.5.
Therein lies the problem... :)
Since it appears you have the requirement of supporting old python
versions, attached is just the pgdb.py part of the patch (with a fix for
DateTime handling). It has the same functionality but certainly won't be
quite as fast. Given the absence of _PyString_Join in python1.5, it's a
pain to get the C variants working for all versions. The pgdb.py patch
does leaves the hooks in, should someone wish to do the optimization at a
later point.
Dave Cramer [Tue, 19 Mar 2002 01:32:48 +0000 (01:32 +0000)]
applied patch from Liam Stewart
If one is trying to compile a JDBC 1 driver and junit.jar is in the
CLASSPATH, then the build fails as ant tries to build the JDBC 2 test
classes. This patch fixes this problem by excluding the jdbc 2 files
unless the jdk1.2+ property is set.
Tom Lane [Sat, 16 Mar 2002 22:47:13 +0000 (22:47 +0000)]
Try to make array_in's behavior a tad less bizarre. Leading whitespace
before a data item is now always skipped, rather than only sometimes.
Backslashes not within double-quoted text are treated reasonably, as
are multiple sequences of quoted text in a single data item. But it
still seems rather prone to misbehavior if the input is not completely
syntactically correct --- in particular, garbage following a right brace
will be ignored.
Dave Cramer [Sat, 16 Mar 2002 02:15:23 +0000 (02:15 +0000)]
fixed QueryExecuter to deal with multiple errors
previously it was throwing a SQLException as soon as the error message was
received from the backend. This did not allow the protocol to finish properly
now, simply collects error messages from the backend until the query is done
and throws exception at the end
Also added setLogLevel to Driver.java, and made the log levels public
Tom Lane [Fri, 15 Mar 2002 19:20:36 +0000 (19:20 +0000)]
Repair two problems with WAL logging of sequence nextvalI() ops, as
per recent pghackers discussion: force a new WAL record at first nextval
after a checkpoint, and ensure that xlog is flushed to disk if a nextval
record is the only thing emitted by a transaction.
Bruce Momjian [Fri, 15 Mar 2002 15:55:58 +0000 (15:55 +0000)]
Fix for docs from Patrick Welche:
! DIFFERENCE (− or ∖): builds the set difference of
two tables. Let <classname>R</classname> and
<classname>S</classname>
again be two tables with the same
arity. <classname>R</classname> - <classname>S</classname>
--- 488,494 ----
<listitem>
<para>
! EXCEPT (− or ∖): builds the set difference of
Bruce Momjian [Thu, 14 Mar 2002 22:44:50 +0000 (22:44 +0000)]
The attached patch changes ALTER TABLE OWNER to also change the
ownership of any toast tables that belong to the table that is being
operated upon (as suggested by Tom Lane).
Tom Lane [Tue, 12 Mar 2002 00:52:10 +0000 (00:52 +0000)]
Restructure representation of join alias variables. An explicit JOIN
now has an RTE of its own, and references to its outputs now are Vars
referencing the JOIN RTE, rather than CASE-expressions. This allows
reverse-listing in ruleutils.c to use the correct alias easily, rather
than painfully reverse-engineering the alias namespace as it used to do.
Also, nested FULL JOINs work correctly, because the result of the inner
joins are simple Vars that the planner can cope with. This fixes a bug
reported a couple times now, notably by Tatsuo on 18-Nov-01. The alias
Vars are expanded into COALESCE expressions where needed at the very end
of planning, rather than during parsing.
Also, beginnings of support for showing plan qualifier expressions in
EXPLAIN. There are probably still cases that need work.
initdb forced due to change of stored-rule representation.
Hiroshi Inoue [Mon, 11 Mar 2002 10:25:57 +0000 (10:25 +0000)]
Bug fixes for the 2002-03-08 change.
1) Put back the error message for SQLError().
2) Change Disallow premature to handle the SELECTed
result.
3) Put back the behavior of AUTUCOMMIT mode change.
4) Fix SQLColumns for ODBC3.0.
5) Improve the handling of variable bookmark in ODBC3.0.
6) Enable Recognize Unique Index Button.
Bruce Momjian [Mon, 11 Mar 2002 04:39:14 +0000 (04:39 +0000)]
Back out this for Peter:
> This simple patch fixes broken Makefile, broken ApplySnapshot and
> makes all utilities honour --verbose command line option.
>
> --
> Yours, Alexey V. Borzov, Webmaster of RDW.ru
>
Bruce Momjian [Sun, 10 Mar 2002 06:12:23 +0000 (06:12 +0000)]
Update and remove items:
< * Remove brackets as multi-statement rule grouping, must use parens (Bruce)
> * -Remove brackets as multi-statement rule grouping, must use parens (Bruce) 458d457
< * Remove USING clause from pg_get_indexdef() if index is btree (Bruce)
Dave Cramer [Sat, 9 Mar 2002 17:36:14 +0000 (17:36 +0000)]
Added a check for not calling next() before getting objects from the result set,
moved the check for columnIndex into same call
check at the top of all getXXX
added appropriate error
Tom Lane [Sat, 9 Mar 2002 17:35:37 +0000 (17:35 +0000)]
Code review for improved-hashing patch. Fix some portability issues
(char != unsigned char, Datum != uint32); make use of new hash code in
dynahash hash tables and hash joins.
Dave Cramer [Sat, 9 Mar 2002 17:08:39 +0000 (17:08 +0000)]
Here is a small patch that cleans up some error reporting in the JDBC driver. PSQLExceptions are thrown instead of SQLExceptions and if a warning is received while waiting for the backend secret key, that warning is chained to the new Connection object instead of generating an exception. A couple new error messages have been added.
Bruce Momjian [Sat, 9 Mar 2002 05:11:38 +0000 (05:11 +0000)]
Wording improvements to runtime.sgml. Add mention in postgresql.conf
file that SIGHUP or "pg_ctl reload" are required for changes to take
affect on a running server.
Tom Lane [Fri, 8 Mar 2002 04:37:18 +0000 (04:37 +0000)]
Fix copying/equality-check bugs in GrantStmt and ConstraintsSetStmt,
per reports from Fernando Nasser. Also, rearrange order of declarations
in parsenodes.h as suggested by Fernando.
Bruce Momjian [Wed, 6 Mar 2002 20:49:46 +0000 (20:49 +0000)]
I've attached a patch which implements Bob Jenkin's hash function for
PostgreSQL. This hash function replaces the one used by hash indexes and
the catalog cache. Hash joins use a different, relatively poor-quality
hash function, but I'll fix that later.
As suggested by Tom Lane, this patch also changes the size of the fixed
hash table used by the catalog cache to be a power-of-2 (instead of a
prime: I chose 256 instead of 257). This allows the catcache to lookup
hash buckets using a simple bitmask. This should improve the performance
of the catalog cache slightly, since the previous method (modulo a
prime) was slow.
In my tests, this improves the performance of hash indexes by between 4%
and 8%; the performance when using btree indexes or seqscans is
basically unchanged.
Bruce Momjian [Wed, 6 Mar 2002 20:48:42 +0000 (20:48 +0000)]
Enable ALTER TABLE ADD PRIMARY KEY for pg_dump, for performance reasons
so index is not on table during COPY.
> > AFAICT, the patch I posted to -patches a little while to enable the
> > usage of ALTER TABLE ADD PRIMARY KEY by pg_dump hasn't been applied, nor
> > is it in the unapplied patches list. I was under the impression that
> > this was in the queue for application -- did it just get lost?
Bruce Momjian [Wed, 6 Mar 2002 20:39:45 +0000 (20:39 +0000)]
Here is a diff of changes to the psql source code implementing a simple
'list domains' command '\dD'. This is the interface component of
rbt@zort.ca's domain backend modifications.
Bruce Momjian [Wed, 6 Mar 2002 20:35:02 +0000 (20:35 +0000)]
Ok. Updated patch attached.
- domain.patch -> source patch against pgsql in cvs
- drop_domain.sgml and create_domain.sgml -> New doc/src/sgml/ref docs
- dominfo.txt -> basic domain related queries I used for testing
[ ADDED TO /doc]
Enables domains of array elements -> CREATE DOMAIN dom int4[3][2];
Uses a typbasetype column to describe the origin of the domain.
Copies data to attnotnull rather than processing in execMain().
Some documentation differences from earlier.
If this is approved, I'll start working on pg_dump, and a \dD <domain>
option in psql, and regression tests. I don't really feel like doing
those until the system table structure settles for pg_type.
CHECKS when added, will also be copied to to the table attributes. FK
Constraints (if I ever figure out how) will be done similarly. Both
will lbe handled by MergeDomainAttributes() which is called shortly
before MergeAttributes().
Bruce Momjian [Wed, 6 Mar 2002 06:10:59 +0000 (06:10 +0000)]
Change made to elog:
o Change all current CVS messages of NOTICE to WARNING. We were going
to do this just before 7.3 beta but it has to be done now, as you will
see below.
o Change current INFO messages that should be controlled by
client_min_messages to NOTICE.
o Force remaining INFO messages, like from EXPLAIN, VACUUM VERBOSE, etc.
to always go to the client.
o Remove INFO from the client_min_messages options and add NOTICE.
Seems we do need three non-ERROR elog levels to handle the various
behaviors we need for these messages.