Add support for the CASE statement in the rewrite handling.
Allows (at least some) rules and views.
Still some trouble (crashes) with target CASE columns spanning tables,
but lots now works.
Fix up error messages when looking up functions and operators to not
make the sometimes misleading claim that more than one candidate was
identified. Now say "Unable to identify...".
Clean up error messages associated with rules and views.
Fix parser error message when an operator is not found
to not explicitly claim that there is more than one.
Add routines and synonyms to help with single-byte char type handling.
Fix one usage of substr() which mapped to the "Oracle compatibility" funcs
rather than the more recent (and closer to SQL92) function in varlena.c.
Add more DESC() entries for conversion functions.
Adjust handling of data type names to suppress double quotes
unless necessary.
Label internal bpchar types as "character" and varchar types as
"character varying" to be less Postgres-specific. These types map to
the SQL92 definitions anyway.
Redefine g_force_quotes to be the local variable force_quotes.
Pass this as an argument to fmtId().
These should help with handling the single-byte internal "char" type.
Switch around conditional code so that HAVE_TM_ZONE takes precedence
over HAVE_INT_TIMEZONE. This may help out linux/glibc2 and Dec Alpha.
Included #error precompiler macros to catch cases where neither is defined
but USE_POSIX_TIME is (shouldn't happen). Hopefully this isn't just
a gcc-ism.
Tom Lane [Sun, 13 Dec 1998 20:05:16 +0000 (20:05 +0000)]
Partial fix for vendor-cc-versus-gcc incompatibility on HPUX:
prefer aCC as c++ compiler if hpux_cc is selected as template.
Doesn't solve the problem if you have g++ and not aCC, however...
Tom Lane [Sun, 13 Dec 1998 20:03:07 +0000 (20:03 +0000)]
Use standard AC_PROG_INSTALL macro to search for install program,
instead of our own halfway-there code. Add AC_STRUCT_TIMEZONE call
to check whether tm_zone exists in struct tm. Revise reading of template
file so that templates can define any variables they feel like (and,
indeed, can execute arbitrary shell code) rather than being constrained
to a fixed set of variable names.
Bruce Momjian [Sun, 13 Dec 1998 04:37:51 +0000 (04:37 +0000)]
While investigating a user's complaint, I have found some memory
destructions in 6.4 source using purify.
(1) parser/gram.y:fmtId()
It writes n+3 bytes into n+1 byte-long memory area if mixed case or
non-ascii identifiers given.
(2) catalog/index.c:
ATTRIBUTE_TUPLE_SIZE bytes are allocated but
sizeof(FormData_pg_attribute) bytes are written. Note that
ATTRIBUTE_TUPLE_SIZE is smaller than
sizeof(FormData_pg_attribute). (for example, on solaris 2.6,
Bruce Momjian [Sun, 13 Dec 1998 02:50:20 +0000 (02:50 +0000)]
This patch fixes the undefined (according to C) and erroneous (under
Digital Uni x with both DEC cc and gcc) behaviour of modifying an
lvalue on the left side an d then using it on the right side of an
assignment. Since this code modifies the
dbname parameter, it was changing, for example, "dbname=template1"
into "dbname =emplate1".
Define routines and catalog entries for string min()/max() functions.
Extend new type coersion techniques to aggregates.
Clean up a few elog() messages.
Tom Lane [Sat, 5 Dec 1998 22:09:57 +0000 (22:09 +0000)]
Fix coredumping bug in pg_dump -z; also eliminate memory leaks
in the ACL code, and spell "GRANT RULE" correctly.
Apply patch from Oliver Elphick to not dump inherited constraints.
Apply patch from Constantin Teodorescu to dump table definitions with a
readable layout.
Tom Lane [Mon, 30 Nov 1998 00:30:05 +0000 (00:30 +0000)]
Portability fixes found needed for SunOS 4.1.x:
SunOS has tas(), but not memmove or strerror, and its sprintf() doesn't
return int. Also, older versions of GNU Make don't like rules with
empty left-hand sides...
Tom Lane [Sun, 29 Nov 1998 05:30:25 +0000 (05:30 +0000)]
Use autoconf to determine whether system has POSIX signals,
instead of relying on port's os.h to tell us. (Needed for HPUX
where system major version is not enough info.)
configure unsets USE_TK if X libraries not found.
doc/Makefile uses gzcat or zcat as found by autoconf.
Tom Lane [Sun, 29 Nov 1998 01:57:59 +0000 (01:57 +0000)]
Change exp() behavior to generate error on underflow rather
than silently returning zero on some machines. Correct float8 regress test
to agree. Also fix pow() overflow/underflow check to work correctly on
HPUX.
Tom Lane [Sun, 29 Nov 1998 01:47:42 +0000 (01:47 +0000)]
pq_getstr didn't handle buffer overrun correctly; it would
fail to consume the rest of the input string, and worse it would write
one more byte than it should into the buffer, probably resulting in coredump.
Fortunately there's a correct implementation next door in pqcomprim.c.
Tom Lane [Mon, 23 Nov 1998 04:40:58 +0000 (04:40 +0000)]
modify configure so that template/.similar entries can be
selected when they match a prefix of the value. The previous method,
which stripped all version data from and then tried to match that
against .similar entries, was entirely useless when .similar contained
several entries for different version numbers of a single OS name.
Tom Lane [Sun, 8 Nov 1998 19:38:34 +0000 (19:38 +0000)]
EXPLAIN VERBOSE had a very high probability of triggering
a backend core dump, because it was concatenating a potentially long
string onto another string that didn't necessarily have enough room.
Shame, shame.
Tom Lane [Sun, 8 Nov 1998 19:22:24 +0000 (19:22 +0000)]
Fix a potential infinite loop in appendStringInfo: would lock
up if first string to be appended to an empty StringInfo was longer
than the initial space allocation.
Also speed it up slightly.
Add "-N" flag to force double quotes around identifiers.
This is the default, but the new flag will allow overriding an alias,
for example. So psql -n -N will put in the double quotes,
and psql -n can be an alias for psql.
Also, add a few braces around a nested single-line conditional construct
to suppress compiler warnings about "an ambiguous else".
Cleanup for v6.4 release.
Make new file current.sgml to hold release info for the current release.
Should be moved to release.sgml before filling with next release info.
Marc G. Fournier [Sat, 31 Oct 1998 03:58:55 +0000 (03:58 +0000)]
Minor FreeBSD fixes put in place
From: SHIOZAKI Takehiko <takehi-s@ascii.co.jp>
I tried snapshot(Oct30) and made some patches.
# I think that it is confused to manage both Makefile.shlib and
# makefiles/Makefile.*, don't you?
* configure
Now FreeBSD 2.X is not supported..., so I added its entry.
If ELF_SYSTEM is set, gmake treat it defined even though
it is "false". So nothing should be set to use "ifdef".
BSD_SHLIB etc. may have same problems.
* Makefile.shlib
As you said, FreeBSD entry is much like BSD's.
I only added ELF_SYSTEM code.
* makefiles/Makefile.freebsd
Ifdef/else/endif can not be indented with TABs.
Minor editing and markup changes as a result of preparing the Postscript
documentation for v6.4.
Bigger updates to the installation instructions (install and config).
Remove obsolete file listing support resources which has not been updated
in a year an a half. Much of the info was wrong and is covered more
correctly elsewhere.
Minor fix for Jan to remove claim in SPI and trigger chapters that
Postgres is missing a procedural language. He correctly points out
that we now have two (thanks to him, but he modestly didn't mention
that).