Bruce Momjian [Mon, 14 Dec 1998 15:05:27 +0000 (15:05 +0000)]
Compilation of libpq for Win32 breaks on 6.4, because of a change that I
missed before the release. It's simply a symbol that is undefined. This
patch defines this symbol in "win32.h", so it should have no effect on any
other platforms. It should go into 6.4.1 if possible, since compilation is
completely broken without it.
I am also attaching a patch for the "win32.mak" file - it leaves a file
behind when doing "make clean" after the library is built on Visual C++ 6.0.
This is not at all as urgent, but I don't see it breaking here, so I think
it might as well go in there too?
Marc G. Fournier [Mon, 14 Dec 1998 08:11:17 +0000 (08:11 +0000)]
more cleanups...of note, appendStringInfo now performs like sprintf(),
where you state a format and arguments. the old behavior required
each appendStringInfo to have to have a sprintf() before it if any
formatting was required.
Also shortened several instances where there were multiple appendStringInfo()
calls in a row, doing nothing more then adding one more word to the String,
instead of doing them all in one call.
Bruce Momjian [Mon, 14 Dec 1998 04:59:58 +0000 (04:59 +0000)]
Current multi-byte related codes have a bug with SQL_ASCII
support. Included patches will solve it and should be applied to
both trees. Also, it fix the problem with \c command of psql when
switching different encoding databases.
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).