Tom Lane [Mon, 24 May 2004 02:30:29 +0000 (02:30 +0000)]
Rewrite identify_system_timezone() to give it better-than-chance odds
of correctly identifying the system's daylight-savings transition rules.
This still begs the question of how to look through the zic database to
find a matching zone definition, but at least now we'll have some chance
of recognizing the match when we find it.
Tom Lane [Sun, 23 May 2004 23:12:11 +0000 (23:12 +0000)]
Avoid calling select_default_timezone() when backing out an unwanted TZ
setting. This is a temporary kluge to keep Alvaro happy; eventually we
should fix the TZ library API to make the problem really go away.
Tom Lane [Sun, 23 May 2004 22:24:08 +0000 (22:24 +0000)]
Use case-insensitive comparison so that explicitly setting timezone=unknown
in postgresql.conf does the right thing. variable.c got this right, but
not pgtz.c ...
Tom Lane [Sun, 23 May 2004 21:24:02 +0000 (21:24 +0000)]
New two-stage sampling method for ANALYZE, as per discussions a few weeks
ago. This should give significantly better results when the density of
live tuples is not uniform throughout a table. Manfred Koizar, with
minor kibitzing from Tom Lane.
Tom Lane [Sun, 23 May 2004 17:10:54 +0000 (17:10 +0000)]
Still another place to make the world safe for zero-column tables:
remove the ancient (and always pretty dodgy) assumption in parse_clause.c
that a query can't have an empty targetlist.
Tom Lane [Sun, 23 May 2004 03:50:45 +0000 (03:50 +0000)]
Handle impending sinval queue overflow by means of a separate signal
(SIGUSR1, which we have not been using recently) instead of piggybacking
on SIGUSR2-driven NOTIFY processing. This has several good results:
the processing needed to drain the sinval queue is a lot less than the
processing needed to answer a NOTIFY; there's less contention since we
don't have a bunch of backends all trying to acquire exclusive lock on
pg_listener; backends that are sitting inside a transaction block can
still drain the queue, whereas NOTIFY processing can't run if there's
an open transaction block. (This last is a fairly serious issue that
I don't think we ever recognized before --- with clients like JDBC that
tend to sit with open transaction blocks, the sinval queue draining
mechanism never really worked as intended, probably resulting in a lot
of useless cache-reset overhead.) This is the last of several proposed
changes in response to Philip Warner's recent report of sinval-induced
performance problems.
Tom Lane [Sat, 22 May 2004 23:14:38 +0000 (23:14 +0000)]
For multi-table ANALYZE, use per-table transactions when possible
(ie, when not inside a transaction block), so that we can avoid holding
locks longer than necessary. Per trouble report from Philip Warner.
Tom Lane [Sat, 22 May 2004 21:58:24 +0000 (21:58 +0000)]
Reduce pg_listener lock taken by NOTIFY et al from AccessExclusiveLock
to ExclusiveLock. This still serializes the operations of this module,
but doesn't conflict with concurrent ANALYZE operations. Per trouble
report from Philip Warner a few weeks ago.
Tom Lane [Sat, 22 May 2004 00:34:51 +0000 (00:34 +0000)]
Use wide-character library routines, if available, for upper/lower/initcap
functions. This allows these functions to work correctly with Unicode and
other multibyte encodings. Per prior discussion.
Also, revert my earlier change to move installation path mashing from
Makefile.global to configure. Turns out not to work well because configure
script is working with unexpanded variables, and so fails to match in
cases where it should match.
Tom Lane [Fri, 21 May 2004 21:56:02 +0000 (21:56 +0000)]
Handle inclusion of port modules 'correctly', viz the same way libpq
does it. Fixes OS X, which needs path.c. It may be that Win32 needs
some more port modules, but they are easily added.
Tom Lane [Fri, 21 May 2004 20:56:50 +0000 (20:56 +0000)]
Put path configuration information into a .h file instead of cluttering
several different module Makefiles with it. Also, do any adjustment
of installation paths during configure, rather than every time Makefile.global
is read.
Tom Lane [Fri, 21 May 2004 05:08:06 +0000 (05:08 +0000)]
Integrate src/timezone library for all platforms. There is more we can
and should do now that we control our own destiny for timezone handling,
but this commit gets the bulk of the picayune diffs in place.
Magnus Hagander and Tom Lane.
Tom Lane [Fri, 21 May 2004 00:14:38 +0000 (00:14 +0000)]
Revert addition of -lpgport, which breaks the build on platforms that
are sticky about non-PIC code in shared libraries. Windows will have
to find another solution (probably similar to the way libpq does it).
Bruce Momjian [Thu, 20 May 2004 16:36:14 +0000 (16:36 +0000)]
Remove pyton, spell check fix:
> * Support composite types as table columns
286,289d286
< * Python
< o Allow users to register their own types with pg_
< o Allow SELECT to return a dictionary of dictionaries
< o Allow COPY BINARY FROM 456d452
< * Support composite types as table columns
Bruce Momjian [Thu, 20 May 2004 15:57:26 +0000 (15:57 +0000)]
Updates from Tom:
< Bracketed items "[]" have more detailed.
> Bracketed items "[]" have more detail.
35,36d34
< * Remove unreferenced table files and temp tables during database vacuum
< or postmaster startup (Bruce)
68c66
< * Allow pg_dump to dump sequences using NO_MAXVALUE and NO_MINVALUE
> * -Allow pg_dump to dump sequences using NO_MAXVALUE and NO_MINVALUE
70c68
< * Prevent whole-row references from leaking memory, e.g. SELECT COUNT(tab.*)
> * -Prevent whole-row references from leaking memory, e.g. SELECT COUNT(tab.*)
76c74
< * Make LENGTH() of CHAR() not count trailing spaces
> * -Make LENGTH() of CHAR() not count trailing spaces 145c143
< * Allow SELECT * FROM tab WHERE int2col = 4 to use int2col index, int8,
> * -Allow SELECT * FROM tab WHERE int2col = 4 to use int2col index, int8, 179c177
< * Allow more ISOLATION LEVELS to be accepted, but issue a warning for them
> * -Allow more ISOLATION LEVELS to be accepted 186c184
< * Add GUC setting to make created tables default to WITHOUT OIDS
> * -Add GUC setting to make created tables default to WITHOUT OIDS 265d262
< * Allow fastpast to pass values in portable format 271c268
< * Move psql backslash database information into the backend, use nmumonic
> * Move psql backslash database information into the backend, use nmeumonic
275,283d271
< * JDBC
< o Comprehensive test suite. This may be available already.
< o JDBC-standard BLOB support
< o Error Codes (pending backend implementation)
< o Support both 'make' and 'ant'
< o Fix LargeObject API to handle OIDs as unsigned ints
< o Use cursors implicitly to avoid large results (see setCursorName())
< o Add LISTEN/NOTIFY support to the JDBC driver (Barry)
< 332c320
< * Have pg_dump -c clear the database using dependency information
> * -Have pg_dump -c clear the database using dependency information
367,368c355,356
< * Cache last known per-tuple offsets to speed long tuple access
< * Automatically place fixed-width, NOT NULL columns first in a table
> * Cache last known per-tuple offsets to speed long tuple access, adjusting
> for NULLs and TOAST values 467c455,456
< * Change representation of whole-tuple parameters to functions
> * -Change representation of whole-tuple parameters to functions
> * Support composite types as table columns
478,479d466
< * Allow the regression tests to start postmaster with -i so the tests
< can be run on systems that don't support unix-domain sockets
Tom Lane [Wed, 19 May 2004 22:06:16 +0000 (22:06 +0000)]
Improve error reporting behavior in parse_hba(): give more complete
error report for getaddrinfo failures, point at correct token for syntax
errors in all cases, don't log redundant messages.
Neil Conway [Wed, 19 May 2004 04:32:26 +0000 (04:32 +0000)]
Minor correction for previous SQLSTATE patch: I changed dsqrt() to emit the
right error code previously, and this patch applies an analogous change
to numeric_sqrt().
Tom Lane [Tue, 18 May 2004 22:49:51 +0000 (22:49 +0000)]
setRuleCheckAsUser has to be applied to any subqueries appearing in a
rule's event_qual, not only to the rule's action. Per example from
Arturs Zoldners.
Bruce Momjian [Tue, 18 May 2004 20:18:59 +0000 (20:18 +0000)]
Move find_my_exec() way up into main.c so it is available to the
timezone code and other places.
Remove elog() calls from find_my_exec; do fprintf(stderr) instead. We
can then remove the exec.c handling in the makefile because it doesn't
have to be built to suppress elog calls.
Neil Conway [Sun, 16 May 2004 23:22:08 +0000 (23:22 +0000)]
Add documentation for the new "dollar quoting" feature, and update existing
examples to use dollar quoting when appropriate. Original patch from David
Fetter, additional work and editorializing by Neil Conway.
Neil Conway [Fri, 14 May 2004 21:42:30 +0000 (21:42 +0000)]
Implement the width_bucket() function, per SQL2003. This commit only adds
a variant of the function for the 'numeric' datatype; it would be possible
to add additional variants for other datatypes, but I haven't done so yet.
This commit includes regression tests and minimal documentation; if we
want developers to actually use this function in applications, we'll
probably need to document what it does more fully.