Tom Lane [Sun, 16 Apr 2000 01:55:45 +0000 (01:55 +0000)]
get_relattval() should treat a NULL constant as a non-constant expression,
since it has no way to indicate to its caller that the constant is
actually NULL. This prevents coredump in cases like
WHERE textfield < null::text;
Tom Lane [Sat, 15 Apr 2000 19:13:08 +0000 (19:13 +0000)]
elog(NOTICE) during COPY incorrectly reset lineno to 0, causing any
subsequent elogs() in the same COPY operation to display the wrong
line number. Fix is to clear lineno only when elog level is such
that we will not return to caller.
Peter Eisentraut [Fri, 14 Apr 2000 23:43:44 +0000 (23:43 +0000)]
fixed another psql \e bug (handle newlines as whitespace)
repaired psql option scanning bug (special treatment to \g |pipe)
fixed ipcclean makefile
made configure look for Perl to handle psql help build gracefully
Fix (well, add) support for ISO "week" in date_part(). Needed for ODBC.
Fix spelling of "millennium".
Thanks to Mika Nystrom <mika@camembert.cs.caltech.edu> for spotting this.
Rename Digital Unix to Compaq Tru64 :(
Update platform support for HPUX, Linux-mips, Linux-ppc, mklinux,
NetBSD-m68k (may be a bit premature), and Solaris.
Tom Lane [Fri, 14 Apr 2000 03:05:35 +0000 (03:05 +0000)]
Fix silly definition order in config.h --- we had prototypes like
extern int inet_aton(const char *cp, struct in_addr * addr);
appearing before the optional #define for const, which was certain
to fail on a machine with neither const nor inet_aton().
Tom Lane [Fri, 14 Apr 2000 01:00:16 +0000 (01:00 +0000)]
#undef const, inline, signed, volatile, on the expectation that a C++
compiler will understand them. configure may have #define'd them to
empty because the local C compiler doesn't understand them, but this
may very well cause a C++ compilation to fail, so don't do it in C++.
Tom Lane [Fri, 14 Apr 2000 00:51:58 +0000 (00:51 +0000)]
Skip setsockopt(SO_REUSEADDR) for the Unix-domain postmaster socket on
all platforms, not just SCO. The operation is undefined for Unix-domain
sockets anyway. It seems SCO is not the only platform that complains
instead of treating the call as a no-op.
Tom Lane [Fri, 14 Apr 2000 00:42:06 +0000 (00:42 +0000)]
If configure finds that inet_aton() is not present on this platform,
include the version from backend/port into libpq.
There is a second-rate implementation of inet_aton() already present
in fe-connect.c, #ifdef'd WIN32. That ought to be removed in favor
of using the better version from port/. However, since I'm not in a
position to test the WIN32 code, I will leave well enough alone for
this release...
Tom Lane [Fri, 14 Apr 2000 00:19:17 +0000 (00:19 +0000)]
Repair bug reported by Wickstrom: backend would crash if WHERE clause
contained a sub-SELECT nested within an AND/OR tree that cnfify()
thought it should rearrange. Same physical sub-SELECT node could
end up linked into multiple places in resulting expression tree.
This is harmless for most node types, but not for SubLink.
Repair bug by making physical copies of subexpressions that get
logically duplicated by cnfify(). Also, tweak the heuristic that
decides whether it's a good idea to do cnfify() --- we don't really
want that to happen when it would cause multiple copies of a subselect
to be generated, I think.
Internal functions to support newest ODBC driver {fn ...} conventions.
Includes compiled code to support pre-7.0 backends, but for 7.0 only
requires executing odbc.sql.
Bruce Momjian [Tue, 11 Apr 2000 14:43:54 +0000 (14:43 +0000)]
Attached is are diffs for CREATE/ALTER table doc I've
forgotten in my mailbox (sorry). Haven't tried to apply and
since I don't have working sgml stuff cannot check.
Tom Lane [Mon, 10 Apr 2000 23:41:52 +0000 (23:41 +0000)]
Tweak smgrblindwrt per advice from Vadim: add parameter indicating
whether to do fsync or not, and if so (which should be seldom) just
do the fsync immediately. This way we need not build data structures
in md.c/fd.c for blind writes.
Bruce Momjian [Mon, 10 Apr 2000 19:25:29 +0000 (19:25 +0000)]
The constant in backend/utils/misc/trace.c, line 32 limits the length of
logged queries to 1024, truncating longer queries. That is about half of
the size I need (I have a union that is 2K long). Can someone consider
bumping it to 4K or so? Patch attached...
Tom Lane [Sun, 9 Apr 2000 04:43:20 +0000 (04:43 +0000)]
Buffer manager modifications to keep a local buffer-dirtied bit as well
as a shared dirtybit for each shared buffer. The shared dirtybit still
controls writing the buffer, but the local bit controls whether we need
to fsync the buffer's file. This arrangement fixes a bug that allowed
some required fsyncs to be missed, and should improve performance as well.
For more info see my post of same date on pghackers.
Tom Lane [Sat, 8 Apr 2000 19:29:40 +0000 (19:29 +0000)]
Tweak TypeCategory to treat new BIT types as of STRING category, rather
than not knowing what they are at all. Perhaps they should have their own
type category? Hard to say. In the meantime, doing it this way allows
SELECT 'unknown' || 'unknown' to continue being resolved as textcat,
instead of spitting out an ambiguous-operator error.
Tom Lane [Sat, 8 Apr 2000 00:21:15 +0000 (00:21 +0000)]
Add copyObject logic for TruncateStmt and a few other utility-statement
parse node types. This allows these statements to be placed in a plpgsql
function. Also, see to it that statement types not handled by the copy
logic will draw an appropriate elog(ERROR), instead of leaving a null
pointer that will cause coredump later on. More utility statements could
be added if anyone felt like turning the crank.
Add transcendental math functions (sine, cosine, etc)
Add a random number generator and seed setter (random(), SET SEED)
Fix up the interval*float8 math to carry partial months
into the time field.
Add float8*interval so we have symmetry in the available math.
Fix the parser and define.c to accept SQL92 types as field arguments.
Fix the parser to accept SQL92 types for CREATE TYPE, etc. This is
necessary to allow...
Bit/varbit support in contrib/bit cleaned up to compile and load
cleanly. Still needs some work before final release.
Implement the "SOME" keyword as a synonym for "ANY" per SQL92.
Implement ascii(text), ichar(int4), repeat(text,int4) to help
support the ODBC driver.
Enable the TRUNCATE() function mapping in the ODBC driver.
Tom Lane [Fri, 7 Apr 2000 00:59:17 +0000 (00:59 +0000)]
Fix (I hope) resource leakage in EvalPlanQual: open subplans must be
properly shut down in EndPlan, else we fail to free buffers and so forth
that they hold.
Tom Lane [Fri, 7 Apr 2000 00:30:41 +0000 (00:30 +0000)]
Partial fix for EvalPlanQual bugs reported by Magnus Hagander, 3-Apr.
Ensure that outer tuple link needed for inner indexscan qual evaluation
gets set in the EvalPlanQual case. This stops coredump, but we still
have resource leaks due to failure to clean up EvalPlanQual properly...
Bruce Momjian [Wed, 5 Apr 2000 14:47:21 +0000 (14:47 +0000)]
Please forget all I said about gcc and AIX in my previous mail.
It does work with the following patch applied and gcc 2.95.2 .
Use --with-template=aix_gcc to compile the whole lot with gcc.
The geometry regression test produces different precision.
With optimization I run into regression failures starting at oidjoins,
thus no -O2. Anybody else try gcc 2.95.2 and -O2 on beta4 ?
This is an important patch, since recent versions of the IBM compiler
are not for free, and thus most questions I get concern gcc.