Add -V option to backend, to show version, since --version doesn't seem
to work everywhere. Also, on FreeBSD you need to set the optreset variable
to 1 before parsing the command line a second time with getopt().
Bruce Momjian [Mon, 6 Nov 2000 17:07:43 +0000 (17:07 +0000)]
Makefile.ports (copied from makefiles/Makefile.aix) is included before
the default target in GNUmakefile is reached. This patch calls that
default target.
Add tests for more INTERVAL syntax.
Add more tests for JOIN syntax.
All tests pass on my Linux box (except for the usual couple of lines
for geometry).
Fix INTERVAL output when year/month has different sign as day/hour etc.
Previously, all fields were unsigned, with only a trailing "ago" to
indicate negative intervals. Now, ISO format does not use "ago", and
and the traditional PostgreSQL format has the first numeric field unsigned
with "ago" supporting that field. So "1 month - 2 days ago" is two days
less than a month in the past.
Fix interval arithmetic across daylight savings time boundaries.
Previously, most math across boundaries introduced a one hour offset.
Allow some date/time functions to return NULL if called with NULL args.
Implement functions for AT TIME ZONE support.
Support "SAT" as an Australian time zone if USE_AUSTRALIAN_RULES
is defined.
Allow type resolution for UNKNOWN arguments to functions to fall back to
any available string type. Previously, all candidate choices must have
fallen within the same "type category" for PostgreSQL to be willing to
choose any of them.
Need to apply the same fixup to operator type resolution.
Add some configure checks for DocBook and related tools. With a somewhat
standard installation layout it should be possible to build the HTML
and print documentation without additional manual setup.
Tom Lane [Sun, 5 Nov 2000 01:42:07 +0000 (01:42 +0000)]
UNION select in a CREATE RULE caused a weird error, because transformRuleStmt
got confused by 'dummy' targetlist built for the UNION's toplevel query.
Fix by making dummy targetlist a little less cheesy.
Tom Lane [Sun, 5 Nov 2000 00:15:54 +0000 (00:15 +0000)]
Allow ORDER BY, LIMIT in sub-selects. Fix most (not all) cases where
the grammar did not allow redundant parentheses around sub-selects.
Distinguish LIMIT ALL from LIMIT 0; make the latter behave as one would
expect.
Remove .SECONDARY: target again, because GNU make 3.78.1 will get mighty
confused in src/interfaces/libpq for some reason. Seemingly, different
GNU make versions have several mutually conflicting problems with implicit
rule chains. Words are not sufficient...
Separate CFLAGS_SL and CXXFLAGS_SL, to allow building with C and C++
compilers from different providers. (Especially important since the
C++ compiler that goes with your favourite C compiler might not work.)
Add global .SECONDARY: target to not allow make to delete intermediate
target files in implicit rule chains. That might have been a cool idea
but it seems to be too buggy to work, as it caused spurious recompiles in
several places.
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.