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.
Tom Lane [Fri, 14 May 2004 16:11:25 +0000 (16:11 +0000)]
Tighten parsing of boolean options to CREATE TYPE and related functions,
so as to deliver more useful error messages for mistakes like
'PASSEDBYVALUE = f'. Per gripe from Gaetano Mendola.
Tom Lane [Fri, 14 May 2004 00:20:38 +0000 (00:20 +0000)]
Propagate enlargeStringInfo() fixes into the equivalent code in
pqexpbuffer.c. While a client-side failure doesn't seem like a
security issue, it's still a bug.
Tom Lane [Wed, 12 May 2004 22:38:44 +0000 (22:38 +0000)]
Tighten up overflow check in path_recv, pursuant to code review inspired
by Ken Ashcraft's report. I think there is no actual bug here since if
the int32 value does wrap a little bit, palloc will still reject it.
Still it's better that the code be obviously correct.
Bruce Momjian [Wed, 12 May 2004 13:38:49 +0000 (13:38 +0000)]
Rename find_my_binary/find_other_binary to
find_my_exec/find_other_exec(). Remove passing of progname to these
functions as they can find that out from argv[0], which they already
have.
Make get_progname return const char *, and update all progname variables
to be const char *.
Bruce Momjian [Tue, 11 May 2004 21:57:15 +0000 (21:57 +0000)]
As part of the work for making relocatable installs, I have re-factored
all the code that looks for other binaries. I move FindExec into
port/exec.c (and renamed it to find_my_binary()). I also added
find_other_binary that looks for another binary in the same directory as
the calling program, and checks the version string.
The only behavior change was that initdb and pg_dump would look in the
hard-coded bindir directory if it can't find the requested binary in the
same directory as the caller. The new code throws an error. The old
behavior seemed too error prone for version mismatches.
Tom Lane [Tue, 11 May 2004 17:36:13 +0000 (17:36 +0000)]
Refactor low-level aclcheck code to provide useful interfaces for multi-bit
permissions tests in about the same amount of code as before. Exactly what
the GRANT/REVOKE code ought to be doing is still up for debate, but this
should be helpful in any case, and it already solves an efficiency problem
in executor startup.
Tom Lane [Tue, 11 May 2004 02:21:39 +0000 (02:21 +0000)]
Repair recalculation failure for nested sub-SELECTs, per bug report from
Didier Moens. Bug is new in 7.4, and was caused by not updating everyplace
I should've when replacing locParam markers by allParam.
Add a regression test to catch related errors in future.
Tom Lane [Mon, 10 May 2004 22:44:49 +0000 (22:44 +0000)]
Promote row expressions to full-fledged citizens of the expression syntax,
rather than allowing them only in a few special cases as before. In
particular you can now pass a ROW() construct to a function that accepts
a rowtype parameter. Internal generation of RowExprs fixes a number of
corner cases that used to not work very well, such as referencing the
whole-row result of a JOIN or subquery. This represents a further step in
the work I started a month or so back to make rowtype values into
first-class citizens.
Tom Lane [Sat, 8 May 2004 21:21:18 +0000 (21:21 +0000)]
Alter string format used for integer and OID lists in stored rules.
This simplifies and speeds up the reader by letting it get the representation
right the first time, rather than correcting it after-the-fact. Also,
after int and OID lists become separate node types per Neil's pending
patch, this will let us treat these lists as just plain Nodes instead
of requiring separate read/write macros the way we have now.
Tom Lane [Sat, 8 May 2004 19:09:25 +0000 (19:09 +0000)]
Get rid of rd_nblocks field in relcache entries. Turns out this was
costing us lots more to maintain than it was worth. On shared tables
it was of exactly zero benefit because we couldn't trust it to be
up to date. On temp tables it sometimes saved an lseek, but not often
enough to be worth getting excited about. And the real problem was that
we forced an lseek on every relcache flush in order to update the field.
So all in all it seems best to lose the complexity.
Tom Lane [Sat, 8 May 2004 00:34:49 +0000 (00:34 +0000)]
Get rid of cluster.c's apparatus for rebuilding a relation's indexes
in favor of using the REINDEX TABLE apparatus, which does the same thing
simpler and faster. Also, make TRUNCATE not use cluster.c at all, but
just assign a new relfilenode and REINDEX. This partially addresses
Hartmut Raschick's complaint from last December that 7.4's TRUNCATE is
an order of magnitude slower than prior releases. By getting rid of
a lot of unnecessary catalog updates, these changes buy back about a
factor of two (on my system). The remaining overhead seems associated
with creating and deleting storage files, which we may not be able to
do much about without abandoning transaction safety for TRUNCATE.
Tom Lane [Fri, 7 May 2004 16:57:16 +0000 (16:57 +0000)]
The timezone() family of functions (a/k/a AT TIME ZONE construct) can
safely be marked immutable, since their results don't depend on the
TimeZone GUC variable. Per recent discussion.
Tom Lane [Fri, 7 May 2004 13:09:12 +0000 (13:09 +0000)]
Suppress 'uninitialized variable' warning emitted by some (not all)
versions of gcc. The code is correct AFAICS, but it requires slightly
more analysis than usual to see that the variable can't be used uninitialized.