Allow a string argument to the EXTRACT() function.
This is an extension to the SQL9x standard, but is consistant with usage
of the underlying date_part() function used to implement it.
Example: EXTRACT('YEAR',...)
No impact on regression tests.
Tom Lane [Mon, 30 Apr 2001 20:05:40 +0000 (20:05 +0000)]
exec_move_row() should be more forgiving of tuples with a different
number of columns than it was expecting, for reasons that are now
documented in the code...
Tom Lane [Mon, 30 Apr 2001 19:24:47 +0000 (19:24 +0000)]
Suppress pull-up of subqueries that are in the nullable side of an outer
join. This is needed to avoid improper evaluation of expressions that
should be nulled out, as in Victor Wagner's bug report of 4/27/01.
Pretty ugly solution, but no time to do anything better for 7.1.1.
Bruce Momjian [Sat, 28 Apr 2001 13:59:07 +0000 (13:59 +0000)]
In create_function there is a remark concerning SQL/PSM not
being ratified as yet. This is certainly no longer true, it wasn't
even true in Q2/1998 when I did a little research for Date's book.
SQL/PSM had been published on 1996-12-15 as ISO/IEC 9075:4. So you
might want to update that section.
Tom Lane [Wed, 25 Apr 2001 22:04:37 +0000 (22:04 +0000)]
Tweak nestloop costing to weight restart cost of inner path more heavily.
Without this, it was making some pretty silly decisions about whether an
expensive sub-SELECT should be the inner or outer side of a join...
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.