1) Decrease the size of needlessly large buffers. For example, it
resolved the stack over flow errors reported by Johann Zuschlag.
2) Support {oj syntax for 71. servers.
A patch to fix the following bugs.
1) [ODBC] Psqlodbc and Centura: here it is a patch
posted by Matteo Cavalleli
2) [ODBC] pgsqODBC binding parameters II
posted by Ludek Finstrle
3) Invalid Page Fault in PSQLODBC.DLL
personal mail from Johann Zuschlag
Tom Lane [Sun, 22 Apr 2001 21:34:13 +0000 (21:34 +0000)]
Don't bomb out on indexes on system attributes other than 'oid'.
(Not sure such an index is actually useful, but just because it's
useless doesn't mean pg_dump should coredump.)
Peter Eisentraut [Sat, 21 Apr 2001 11:23:58 +0000 (11:23 +0000)]
Make sure that the postmaster options (from postmaster.opts[.default] or
-o option) are properly dequoted. Also, always pass an explicit -D option
to postmaster, don't rely on it being set in postmaster.opts.
Final markup for 7.1 hardcopy release. Mostly typo and table-fitting
adjustments. Note that many tables are being abused with *really* long
description columns. Should probably shrink those columns to be more
concise, and move some of the info to follow-on reference notes.
Add option --refentry to change \keepn (keep with next paragraph) to
\keep (keep current paragraph together). This fixes most troubles with
reference pages marked up with <refentry> tags.
Use on reference.rtf, generated by "make reference.rtf".
Tom Lane [Thu, 19 Apr 2001 04:29:02 +0000 (04:29 +0000)]
Kluge solution for Alex Pilosov's report of problems with whole-tuple
function arguments in join queries: copy the tuples into
TransactionCommandContext so they don't get recycled too soon. This is
horrid, but not any worse than 7.0 or before, which also leaked such
tuples until end of query. A proper fix will require allowing tuple
datums to be physically stored inside larger tuple datums, which opens
up a bunch of issues that can't realistically be solved for 7.1.1.
Tom Lane [Wed, 18 Apr 2001 22:25:31 +0000 (22:25 +0000)]
Further tweaking of error messages for cases involving attributes &
functions of join or subselect aliases. It'd be awfully nice if this
code knew for sure whether it was dealing with 'x.f' or 'f(x)' syntax;
maybe we can fix that in a future cycle.
Tom Lane [Tue, 17 Apr 2001 00:32:58 +0000 (00:32 +0000)]
Add some defenses to guard against case where a rule refers to a table
or view that's been dropped and then recreated with the same name (but,
perhaps, different columns). Eventually we'd like to support this but
for now all we can do is fail cleanly, rather than possibly coredumping
if we proceed using the obsolete rule.
Tom Lane [Mon, 16 Apr 2001 19:44:10 +0000 (19:44 +0000)]
Avoid reversing user-given order of WHERE clauses while attaching clauses
to specific base or join RelOptInfo nodes during planning. This preserves
the more-intuitive behavior of 7.0.* --- if you write an expensive clause
(such as a sub-select) last, it should get evaluated last. Someday we
ought to try to have some intelligence about the order of evaluation of
WHERE clauses, but for now we should not override what the user wrote.
Tom Lane [Mon, 16 Apr 2001 02:42:01 +0000 (02:42 +0000)]
getdatabaseencoding() and PG_encoding_to_char() were being sloppy about
converting char* strings to type 'name'. Imagine my surprise when 7.1
release coredumped upon start when compiled --enable-multibyte ...
Tom Lane [Mon, 16 Apr 2001 01:46:57 +0000 (01:46 +0000)]
Remove error report from pq_endmessage when pq_putmessage fails. The
only possible failure is in pq_flush, which will log a (better!) report
anyway --- so pq_endmessage is just cluttering the log with a redundant
entry. This matters when a client crashes partway through a large query,
since we will emit many broken-pipe reports before finishing the query
and exiting.
Tom Lane [Sun, 15 Apr 2001 03:14:18 +0000 (03:14 +0000)]
Constant expressions that appear in ORDER BY, GROUP BY, DISTINCT ON
lists should be reverse-compiled into targetlist index numbers, because
that's the only interpretation the parser allows for a constant in these
clauses. (Ergo, the only way they could have gotten into the list in
the first place is to have come from the targetlist; so this should always
work.) Per problem report from Peter E.
Tom Lane [Sun, 15 Apr 2001 00:48:17 +0000 (00:48 +0000)]
Prevent generation of invalid plans for RIGHT or FULL joins with multiple
join clauses. The mergejoin executor wants all the join clauses to appear
as merge quals, not as extra joinquals, for these kinds of joins. But the
planner would consider plans in which partially-sorted input paths were
used, leading to only some of the join clauses becoming merge quals.
This is fine for inner/left joins, not fine for right/full joins.
Tom Lane [Sat, 14 Apr 2001 02:10:57 +0000 (02:10 +0000)]
Another try at making numeric MODULO operator produce the right answer.
Although it was now using the right equation, it was making bogus choices
of the precision to compute intermediate results to. I'm not sure this
is really right even yet, but it's better than before ...
Utility to add the stylesheet "s0" definition to an RTF file.
This stylesheet must be present for Applixware to be happy generating
a ToC. M$Word does not seem to care one way or the other.
1) Fit the precision of floating point to that of server side
(fix by Hiroki kataoka).
2) Ensure the definition of atof()(#include stdlib.h).
(suggestion by Masaaki Sakaida).
Final (?) platform update for the 7.1 release. Includes new platform
NetBSD/PPC from Henry Hotz, several other platform updates, and move
QNX to the unsupported list for now.
Alter the previous test for "time with time zone" implicit time zone
(which failed miserably during DST) to just compare against a time
derived from a timestamp value.
Certainly not a direct check for a correct result, but should work
at any time of year.
Tom Lane [Fri, 6 Apr 2001 02:06:48 +0000 (02:06 +0000)]
Since plpgsql keeps its compiled function parsetrees until backend exit,
it needs to ensure that data structures attached to fmgr info records in
the trees will stick around that long, too. Current code was crashing
on cases like datatypes with old-style I/O functions.
Tom Lane [Wed, 4 Apr 2001 22:57:45 +0000 (22:57 +0000)]
Clean up AIX makefile to recognize subversions of AIX 4.1 correctly.
This patch is Peter E's, but I'm applying it on his behalf so it'll get
into 7.1RC3 tonight (I'm guessing Peter went to bed already).
Tom Lane [Wed, 4 Apr 2001 20:03:11 +0000 (20:03 +0000)]
Remove daylight-savings-time-dependent tests of 'time with time zone'
datatype. Perhaps someday we can figure out a way of getting reproducible
results from testing this type, but for now ...
Tom Lane [Tue, 3 Apr 2001 04:07:02 +0000 (04:07 +0000)]
Check for failure of malloc() and realloc() when allocating space for
VFD entries. On platforms where dereferencing a null pointer doesn't
lead to coredump, it's possible that this omission could have led to
unpleasant behavior like deleting the wrong file.
Tom Lane [Mon, 2 Apr 2001 23:30:04 +0000 (23:30 +0000)]
Restore pre-7.1 behavior of allowing DROP of a table whose underlying
physical file has disappeared. There is no really good reason why
relcache should be opening the underlying file at all, AFAICS.
In any case we needn't raise a hard error here.
Tom Lane [Mon, 2 Apr 2001 18:30:49 +0000 (18:30 +0000)]
Complain if the same column name is inherited from multiple parents
with different default values, unless the child table redeclares the
column with an explicit default. This was judged to be the approach
least likely to cause unpleasant surprises.
Philip Warner [Sun, 1 Apr 2001 05:42:51 +0000 (05:42 +0000)]
Patch to put rudimentary dependency support into pg_dump. This addresses
the UDT/function order problem.
- Rudimentary support for dependencies in archives.
Uses dependencies to modify the OID used in sorting TOC
entries. This will NOT handle multi-level dependencies,
but will manage simple relationships like UDTs & their functions.
- Treat OIDs with more respect (avoid using ints, use macros
for conversion & comparison).
Tom Lane [Sat, 31 Mar 2001 23:13:30 +0000 (23:13 +0000)]
pqWait() should check for exception status as well as read or write
ready. It appears that most (all?) Unixen will consider a socket to
be read or write ready if it has an error condition, but of course
Microsoft does things differently.