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.
Tom Lane [Fri, 30 Mar 2001 20:50:36 +0000 (20:50 +0000)]
Re-allow specification of a new default value for an inherited column
in CREATE TABLE, but give a warning notice. Clean up inconsistent
handling of defaults and NOT NULL flags from multiply-inherited columns.
Per pghackers discussion 28-Mar through 30-Mar.
Marc-Andre is changing where DateTime goes. This change allows the module
to work either way.
Change submitted by Andrew Kuchling <akuchlin@mems-exchange.org>
Tom Lane [Fri, 30 Mar 2001 05:25:51 +0000 (05:25 +0000)]
Add appropriately ifdef'd hack to make ARM compiler allocate ItemPointerData
as six bytes not eight. This fixes a regression test failure but more
importantly avoids wasting four bytes of pad space in every tuple header.
Also add some commentary about what's going on.
Tom Lane [Tue, 27 Mar 2001 18:02:19 +0000 (18:02 +0000)]
Quick hack to fix Oliver Elphick's problem with subselects in an
inheritance query: make duplicate copies of subplans in adjust_inherited_attrs.
When we redesign querytrees we really gotta do something about this
issue of whether querytrees are read-only and can share substructure
or not.
Bruce Momjian [Tue, 27 Mar 2001 14:56:20 +0000 (14:56 +0000)]
The following patch updates the FAQ_AIX and makes C++ code work with
more recent versions of the IBM C++ compiler (now called VisualAge C++).
The C++ part was previously broken (g++ and xlC), thus this is zero risk.
Only AIX specific parts are touched (1 Makefile.shlib line (link with $(COMPILER
) instead
of $(CC) and one shell script line (parameter -C to nm to not demangle C++ symbo
ls for
.exp file)).
I thus ask you to please apply this patch before release.
With or without this patch RC1 on AIX 4.3.2 RS6000 passes "gmake check" for both
the native
compiler vac.C 5.0.1 and gcc 2.95.2 :-)