Tom Lane [Fri, 10 Jan 2003 21:08:15 +0000 (21:08 +0000)]
Further tweaking of parsetree & plantree representation of SubLinks.
Simplify SubLink by storing just a List of operator OIDs, instead of
a list of incomplete OpExprs --- that was a bizarre and bulky choice,
with no redeeming social value since we have to build new OpExprs
anyway when forming the plan tree.
Tom Lane [Thu, 9 Jan 2003 20:50:53 +0000 (20:50 +0000)]
Adjust parser so that 'x NOT IN (subselect)' is converted to
'NOT (x IN (subselect))', that is 'NOT (x = ANY (subselect))',
rather than 'x <> ALL (subselect)' as we formerly did. This
opens the door to optimizing NOT IN the same way as IN, whereas
there's no hope of optimizing the expression using <>. Also,
convert 'x <> ALL (subselect)' to the NOT(IN) style, so that
the optimization will be available when processing rules dumped
by older Postgres versions.
initdb forced due to small change in SubLink node representation.
Tom Lane [Thu, 9 Jan 2003 01:06:57 +0000 (01:06 +0000)]
Repair inconsistent rounding behavior for timestamp, time, interval,
per gripe from Csaba Nagy. There is still potential for platform-specific
behavior for values that are exactly halfway between integers, but at
least we now get the expected answer for all other cases.
Tom Lane [Thu, 9 Jan 2003 00:58:41 +0000 (00:58 +0000)]
Add missing pg_proc entry for interval_scale(). The lack of this entry
causes interval rounding not to work as expected in 7.3, for example
SELECT '18:17:15.6'::interval(0) does not round the value.
I did not force initdb, but one is needed to install the added row.
Bruce Momjian [Wed, 8 Jan 2003 23:18:25 +0000 (23:18 +0000)]
The second was that renegotiation was just plain broken. I can't
believe I didn't notice this before -- once 64k was sent to/from the
server the client would crash. Basicly, in 7.3 the server SSL code set
the initial state to "about to renegotiate" without actually starting
the renegotiation. In addition, the server and client didn't properly
handle the SSL_ERROR_WANT_(READ|WRITE) error. This is fixed in the
second patch.
Bruce Momjian [Wed, 8 Jan 2003 22:56:58 +0000 (22:56 +0000)]
I was playing around with 7.3.1 and found some more SSL problems. The
first, that I missed when checking over 7.3.1, was that the client
method was switched to SSLv23 along with the server. The SSLv23 client
method does SSLv2 by default, but can also understand SSLv3. In our
situation the SSLv2 backwords compatibility is really only needed on the
server. This is the first patch.
The last thing is that I found a way for the server to understand SSLv2
HELLO messages (sent by pre-7.3 clients) but then get them to talk
SSLv3. This is the last one.
Bruce Momjian [Wed, 8 Jan 2003 22:54:06 +0000 (22:54 +0000)]
Fix dumping of DEFERRABLE/INITIALLY DEFERRED:
> The big problem is that while pg_dump's dump_trigger() looks at
> tginitdeferred and dumps accordingly, pg_get_constraintdef doesn't look
> at tginitdeferred, and therefore doesn't record the requirement as part
> of ALTER TABLE ADD CONSTRAINT.
pg_get_constraintdef should probably be looking at condeferrable and
condeferred in the pg_constraint row it's looking at. Maybe something
like the attached.
Bruce Momjian [Wed, 8 Jan 2003 22:28:32 +0000 (22:28 +0000)]
This trivial patch implements disabled, deferred triggers, per my
proposal on -hackers a couple days ago. The 'tgenabled' status of the
trigger is consulted when the trigger is added to the deferred queue
(i.e. when the event occurs that fires the trigger), not when the
deferred event is executed.
No regression tests, as another bug prevents them (the pg_trigger row
for a trigger is only loaded once per session, so any changes to it are
not noticed unless the client disconnects and reconnects).
Tom Lane [Wed, 8 Jan 2003 22:06:23 +0000 (22:06 +0000)]
Reconsider old decision to try to constant-fold default and constraint
expressions before they are stored. This seems like not such a hot idea,
particularly now that the constant-folder will try to inline SQL functions.
Tom Lane [Wed, 8 Jan 2003 19:41:40 +0000 (19:41 +0000)]
Fix for bug #866. 7.3 contains new logic for avoiding redundant calls to
the index AM when we know we are fetching a unique row. However, this
logic did not consider the possibility that it would be asked to fetch
backwards. Also fix mark/restore to work correctly in this scenario.
Tom Lane [Wed, 8 Jan 2003 00:22:27 +0000 (00:22 +0000)]
Code review for FETCH/MOVE 0 changes. Improve documentation, do the
right thing with the destination when FETCH 0 can't return a row,
don't try to stuff LONG_MAX into an int value.
Tom Lane [Tue, 7 Jan 2003 20:56:07 +0000 (20:56 +0000)]
Apply the proper version of Christopher Kings-Lynne's describe patch
(ie, the one with describe-schema support). Minor code review.
Adjust display of casts to use standard type names.
Tom Lane [Tue, 7 Jan 2003 01:19:12 +0000 (01:19 +0000)]
Tweak mdnblocks() to avoid doing lseek() on segments that it has
previously determined not to be the last segment of a relation.
This reduces the expected cost to one seek, rather than one seek per
segment. We can get away with this because truncation of a relation
will cause a relcache flush and so the md.c file descriptor will be
closed; when it is re-opened we will re-determine the last segment.
Bruce Momjian [Mon, 6 Jan 2003 03:18:27 +0000 (03:18 +0000)]
Enable IPv6 connections to the server, and add pg_hba.conf IPv6 entries
if the OS supports it. Code will still compile on non-IPv6-aware
machines (feature added by Bruce).
Tom Lane [Mon, 6 Jan 2003 01:20:40 +0000 (01:20 +0000)]
Add note explaining that a mergejoinable equality operator is now
required if a datatype is to be accepted by GROUP BY, DISTINCT, or
ORDER BY. This is documentation for code changes made pursuant to
pgsql-hackers discussion around 29-Nov-02.
Tom Lane [Sun, 5 Jan 2003 00:56:40 +0000 (00:56 +0000)]
Fix inherited UPDATE for cases where child column numbering doesn't
match parent table. This used to work, but was broken in 7.3 by
rearrangement of code that handles targetlist sorting. Add a regression
test to catch future breakage.
Tom Lane [Sat, 4 Jan 2003 00:46:08 +0000 (00:46 +0000)]
Partial code review for ALTER DOMAIN patch. Incorporates Rod Taylor's
patches of 9-Dec (permissions fix) and 13-Dec (performance) as well as
a partial fix for locking issues: concurrent DROP COLUMN should not
create trouble anymore. But concurrent DROP TABLE is still a risk, and
there is no protection at all against creating a column of a domain while
we are altering the domain.
Tom Lane [Thu, 2 Jan 2003 19:29:22 +0000 (19:29 +0000)]
Enforces NOT NULL constraints to be applied against new PRIMARY KEY
columns in DefineIndex. So, ALTER TABLE ... PRIMARY KEY will now
automatically add the NOT NULL constraint. It appeared the alter_table
regression test wanted this to occur, as after the change the regression
test better matched in inline 'fails'/'succeeds' comments.
Tom Lane [Wed, 1 Jan 2003 21:57:05 +0000 (21:57 +0000)]
fastpath code neglected to check whether user has privileges to call the
target function. Also, move SetQuerySnapshot() call to avoid assert
failure when a fastpath call is attempted in an aborted transaction.
Tom Lane [Wed, 1 Jan 2003 20:35:39 +0000 (20:35 +0000)]
Awhile back I wrote that freebsd.h was probably broken in the places where
it diverged from netbsd.h and openbsd.h. This has now been confirmed.
Accordingly, make all three exactly alike.
Tom Lane [Mon, 30 Dec 2002 22:10:54 +0000 (22:10 +0000)]
Adjust Tcl-related code to compile cleanly with Tcl 8.4 (add const modifiers as
needed). Some desultory const-ification of SPI interface to support this.
Bruce Momjian [Mon, 30 Dec 2002 21:07:26 +0000 (21:07 +0000)]
Attached is a patch to provide makefiles, etc. to allow the compilation
of the libpq interface static and dynamic libraries with the freely
downloadable Borland C++ compiler version 5.5 and/or C++ Builder.
Tom Lane [Mon, 30 Dec 2002 15:21:23 +0000 (15:21 +0000)]
Better solution to integer overflow problem in hash batch-number
computation: reduce the bucket number mod nbatch. This changes the
association between original bucket numbers and batches, but that
doesn't matter. Minor other cleanups in hashjoin code to help
centralize decisions.
Tom Lane [Sun, 29 Dec 2002 22:28:50 +0000 (22:28 +0000)]
Adjust hash table sizing algorithm to avoid integer overflow in
ExecHashJoinGetBatch(). Fixes core dump on large hash joins, as in
example from Rae Stiening.
Bruce Momjian [Tue, 24 Dec 2002 22:06:53 +0000 (22:06 +0000)]
Add developer organizations:
< * Bruce is Bruce Momjian <pgman@candle.pha.pa.us>
< * Christopher is Christopher Kings-Lynne <chriskl@familyhealth.com.au>
< * D'Arcy is D'Arcy J.M. Cain <darcy@druid.net>
> * Bruce is Bruce Momjian <pgman@candle.pha.pa.us> of Software Research Assoc.
> * 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.
460,461c461,462
< * Fernando Nasser <fnasser@redhat.com>
< * Gavin Sherry <swm@linuxworld.com.au>
> * Fernando Nasser <fnasser@redhat.com> of Red Hat
> * Gavin Sherry <swm@linuxworld.com.au> of Alcove Systems Engineering
464,466c465,467
< * Jan is Jan Wieck <wieck@sapserv.debis.de>
< * Liam is Liam Stewart <liams@redhat.com>
< * Marc is Marc Fournier <scrappy@hub.org>
> * Jan is Jan Wieck <JanWieck@Yahoo.com> of PeerDirect Corp.
> * Liam is Liam Stewart <liams@redhat.com> of Red Hat
> * Marc is Marc Fournier <scrappy@hub.org> of PostgreSQL, Inc.
468,469c469
< * Marko is Marko Kreen <marko@l-t.ee>
< * Michael is Michael Meskes <meskes@postgresql.org>
> * Michael is Michael Meskes <meskes@postgresql.org> of Credativ 472c472
< * Peter M is Peter T Mount <peter@retep.org.uk>
> * Peter M is Peter T Mount <peter@retep.org.uk> of Retep Software 474c474
< * Philip is Philip Warner <pjw@rhyme.com.au>
> * Philip is Philip Warner <pjw@rhyme.com.au> of Albatross Consulting Pty. Ltd. 477d476
< * Ryan is Ryan Bradetich <rbrad@hpb50023.boi.hp.com>
479,483c478,481
< * Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp>
< * Thomas is Thomas Lockhart <lockhart@fourpalms.org>
< * Tom is Tom Lane <tgl@sss.pgh.pa.us>
< * TomH is Tom I Helbekkmo <tih@Hamartun.Priv.no>
< * Vadim is Vadim B. Mikheev <vadim4o@email.com>
> * Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp> of Software Research Assoc.
> * Thomas is Thomas Lockhart <lockhart@fourpalms.org> of Jet Propulsion Labratory
> * Tom is Tom Lane <tgl@sss.pgh.pa.us> of Red Hat
> * Vadim is Vadim B. Mikheev <vadim4o@email.com> of Sector Data
Tom Lane [Sat, 21 Dec 2002 22:45:09 +0000 (22:45 +0000)]
pg_dump should consider information_schema to be a system schema.
Also, tweak -C option (emit CREATE DATABASE command) to emit encoding
name rather than encoding number, for consistency with pg_dumpall
and better cross-version portability.
Tom Lane [Sat, 21 Dec 2002 01:07:07 +0000 (01:07 +0000)]
Fix possible buffer overrun in \d command: substr(..., 128) produces
a result of at most 128 chars, but that could be more than 128 bytes.
Also ensure we don't try to pfree uninitialized pointers during error
cleanup.