Tom Lane [Fri, 3 Nov 2000 19:01:36 +0000 (19:01 +0000)]
Fix bug reported by bobson: aclinsert3 would delete the 'world' entry
from an ACL list if it had no permissions remaining, which confused
aclcheck terribly. Also clean up code a little.
Add configure check to see whether <string.h> and <strings.h> may both be
included, and then include <strings.h> if so. Several systems already
needed <strings.h> anyway. Some new systems that claim to conform to the
Unix 9x "standard" do not declare str[n]casemp() in string.h, and C99
compilers will not like that.
Peter Eisentraut [Tue, 31 Oct 2000 19:55:20 +0000 (19:55 +0000)]
This is the minimal version of the Darwin support patch from
Bruce Hartzler <bruceh@mail.utexas.edu>. It contains shared library
support, regression test map, and the usual template files. The dynamic
loader is missing, the spin lock code apparently doesn't assemble due to
syntax problems, and semaphores are to be hoped for from Apple.
Peter Eisentraut [Tue, 31 Oct 2000 13:59:53 +0000 (13:59 +0000)]
Change internal string representation of BitString node to include a
leading 'b', as it appears to be more convenient this way for the input
and node functions.
Peter Eisentraut [Tue, 31 Oct 2000 10:22:13 +0000 (10:22 +0000)]
Change the parser to convert SQL "position" and "substring" syntax to
position() and substring() functions, so that it works transparently for
bit types as well. Alias the text functions appropriately.
Add position() for bit types.
Add new constant node T_BitString that represents literals of the form
B'1001 and pass those to zpbit type.
Tatsuo Ishii [Mon, 30 Oct 2000 10:41:05 +0000 (10:41 +0000)]
Add support for code conversion between Unicode and other encodings.
Supported encodings are: EUC_JP, EUC_CN, EUC_KR, EUC_TW, Shift JIS,
Big5, ISO8859-[1-5].
TODO: testings! and documentations...
Tatsuo Ishii [Mon, 30 Oct 2000 07:17:31 +0000 (07:17 +0000)]
Add new configure option "--enable-uniconv" that enables automatic
code conversion between Unicode and other encodings. Note that
this option requires --enable-multibyte also.
The reason why this is optional is that the feature requires huge
mapping tables and I don't think every user need the feature.
Peter Eisentraut [Sun, 29 Oct 2000 13:17:34 +0000 (13:17 +0000)]
USE_POSIX_TIME replaced by HAVE_TM_ZONE || HAVE_INT_TIMEZONE, which are
equivalent.
In linux.h there were some #undef HAVE_INT_TIMEZONE, which are useless
because HAVE_TM_ZONE overrides it anyway, and messing with configure
results isn't cool.
Peter Eisentraut [Sat, 28 Oct 2000 22:14:14 +0000 (22:14 +0000)]
Make initdb safe against using
a) mismatching backend program, by checking --version output
b) mismatching bki files, by putting a version-identifying comment atop
those files.
Bruce Momjian [Sat, 28 Oct 2000 15:44:04 +0000 (15:44 +0000)]
Okay, here's my attempt at fixing the problems with parentheses in
subqueries. It passes the normal 'runcheck' tests, and I've tried
a few simple things like
select 1 as foo union (((((select 2))))) order by foo;
There are a few things that it doesn't do that have been talked
about here at least a little:
1) It doesn't allow things like "IN(((select 1)))" -- the select
here has to be at the top level. This is not new.
2) It does NOT preserve the odd syntax I found when I started looking
at this, where a SELECT statement could begin with parentheses. Thus,
(SELECT a from foo) order by a;
fails.
I have preserved the ability, used in the regression tests, to
have a single select statement in what appears to be a RuleActionMulti
(but wasn't -- the parens were part of select_clause syntax).
In my version, this is a special form.
This may cause some discussion: I have differentiated the two kinds
of RuleActionMulti. Perhaps nobody knew there were two kinds, because
I don't think the second form appears in the regression tests. This
one uses square brackets instead of parentheses, but originally was
otherwise the same as the one in parentheses. In this version of
gram.y, the square bracket form treats SELECT statements the same
as the other allowed statements. As discussed before on this list,
psql cannot make sense out of the results of such a thing, but an
application might. And I have designs on just such an application.
Peter Eisentraut [Fri, 27 Oct 2000 23:59:39 +0000 (23:59 +0000)]
Make use of system-specific linker option to embed shared library search
path into executables and shared libraries (-rpath or -R for most). Can be
disabled with --disable-rpath, since some binary packaging standards do not
like this option.
Tom Lane [Fri, 27 Oct 2000 01:55:23 +0000 (01:55 +0000)]
Disallow bits beyond the mask length for CIDR values, per discussion
on pghackers. Arrange for the sort ordering of general INET values
to be network part as major sort key, host part as minor sort key.
I did not force an initdb for this change, but anyone who's running
indexes on general INET values may need to recreate those indexes.
Tom Lane [Thu, 26 Oct 2000 21:38:24 +0000 (21:38 +0000)]
Re-implement LIMIT/OFFSET as a plan node type, instead of a hack in
ExecutorRun. This allows LIMIT to work in a view. Also, LIMIT in a
cursor declaration will behave in a reasonable fashion, whereas before
it was overridden by the FETCH count.
Tom Lane [Wed, 25 Oct 2000 19:44:44 +0000 (19:44 +0000)]
Support SET/SHOW/RESET client_encoding and server_encoding even when
MULTIBYTE support is not compiled (you just can't set them to anything
but SQL_ASCII). This should reduce interoperability problems between
MB-enabled clients and non-MB-enabled servers.
Tom Lane [Wed, 25 Oct 2000 18:56:16 +0000 (18:56 +0000)]
Accept CREATE DATABASE WITH ENCODING 'SQL_ASCII' even when MULTIBYTE
support is not present. This allows a non-MB server to load a pg_dumpall
script produced by an MB-enabled server, so long as only ASCII encoding
was used.
Peter Eisentraut [Wed, 25 Oct 2000 16:13:52 +0000 (16:13 +0000)]
Rearrange handling of -L linker options so that they are always before all
the -l options. (This was not the case when using the OpenSSL or Kerberos
options.) Also make sure that shared library links get to see all the -L
options. Get Kerberos 5 support to compile on Redhat 7.0. Add OpenSSL and
-lsocket (if used/found) to libpq link.
From Zoltan Kovacs back in April (sorry for the delay Zoltan!):
I modified the current ODBC driver for
* referential integrity error reporting,
* SELECT in transactions and
* disabling autocommit.
I tested these changes with Borland C++ Builder -> ODBCExpress ->
WinODBC driver (DLL) -> Postgres 7.0beta1 and Borland C++ Builder -> BDE ->
WinODBC driver (DLL) -> Postgres 7.0beta1. The patch is based on snapshot of
22th April (I don't think that someone has modified it since that: Byron
hasn't gave any sign of living for about a month and I didn't find any
comments about the ODBC driver on the list).
Tom Lane [Tue, 24 Oct 2000 20:59:35 +0000 (20:59 +0000)]
Do not execute fastpath function calls if in transaction ABORT state.
Just like queries, doing nothing is better than possibly getting weird
error messages. Also, improve comments.
Tom Lane [Tue, 24 Oct 2000 20:06:39 +0000 (20:06 +0000)]
Fix AbortOutOfAnyTransaction logic to avoid notice about
'AbortTransaction and not in in-progress state' when client disconnects
just after an error. Notice seems pretty harmless, so I'm not going
to worry about back-patching this into 7.0.* ...
Peter Eisentraut [Tue, 24 Oct 2000 17:41:50 +0000 (17:41 +0000)]
Don't call AC_SUBST (in libtool.m4) before AC_INIT. The m4 diversions get
messed up and we end up with the comments from included files in the output
"configure".
Tom Lane [Tue, 24 Oct 2000 03:34:53 +0000 (03:34 +0000)]
Reconsider page size for large objects: rather than stuffing disk pages
as full as possible, seems better to use a tuple size around BLCKSZ/4
so that less space is wasted when a LO tuple is updated. Also, this
lets us use a logical page size that's an exact power of two, avoiding
partial-page writes when client is sending us stuff in power-of-2
buffer chunks.
Tom Lane [Tue, 24 Oct 2000 03:14:08 +0000 (03:14 +0000)]
Remove arbitrary limit on number of simultaneously open large objects.
This used to make some sense under the old implementation, but now an
open LO is pretty darn cheap, so why restrict it?