Commit Graph

12758 Commits

Author SHA1 Message Date
Bruce Momjian 3febb477e6 Reorganize code to allow path-relative installs.
Create new get_* functions to access compiled-in paths and adjust if
relative installs are to be used.

Clean up substitute_libpath_macro() code.
2004-05-17 14:35:34 +00:00
Bruce Momjian 85383214ea Rename backendbin to backend_exec in initdb.c. 2004-05-17 13:17:29 +00:00
Neil Conway 2871f60f23 Change ln(), log(), power(), and sqrt() to emit the correct SQLSTATE
error codes for certain error conditions, as specified by SQL2003.
2004-05-16 23:18:55 +00:00
Neil Conway 52c82d590a Remove an unused (and empty) header file. 2004-05-14 22:21:43 +00:00
Neil Conway 0079547bcb 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.
2004-05-14 21:42:30 +00:00
Neil Conway 0cb27df5c6 Improve documentation for SQLSTATE error codes, per recent thread on
-patches.
2004-05-14 18:04:02 +00:00
Bruce Momjian 9f944f0443 Adjust find_my_exec/find_other_exec() so that the return parameter is
last, not first.  This fits our style better.
2004-05-14 17:04:48 +00:00
Bruce Momjian 550735cd73 Remove extra 'then'. 2004-05-14 16:29:12 +00:00
Tom Lane c53d6e927f 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.
2004-05-14 16:11:25 +00:00
Tom Lane 02409a4813 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.
2004-05-14 00:20:38 +00:00
Bruce Momjian 0ec80be435 Properly quote variable for makefile use. 2004-05-14 00:10:52 +00:00
Bruce Momjian 3f41675f6a Move unixware thread stuff into Makefile.unixware. 2004-05-14 00:03:07 +00:00
Bruce Momjian 5e938d831a Force thread flags for all Unixware builds if threading is requested.
This is required because once you link with a library that uses threads,
all references to that library have to use thread flags.
2004-05-13 23:05:54 +00:00
Bruce Momjian f69ecb4f8c Reorganize backend code to more cleanly manage executable names and
backend startup.
2004-05-13 22:45:04 +00:00
Bruce Momjian 261eda55d3 No need for gcc thread stuff anymore, only cc. 2004-05-13 15:44:05 +00:00
Bruce Momjian 9f7283eb1b Remove warning about Unixware. 2004-05-13 14:07:19 +00:00
Bruce Momjian c2e8386440 Fix Win32 bug with missing errno for strerror(). 2004-05-13 01:47:12 +00:00
Tom Lane 4d924bdb46 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.
2004-05-12 22:38:44 +00:00
Bruce Momjian 0a54441cbf Here's a patch that will allow external modules like pl<lang> to set
additional flags for the dlltool and dllwrap commands. More info here:

	http://archives.postgresql.org/pgsql-hackers/2004-05/msg00350.php

Thomas Hallgren
2004-05-12 21:56:27 +00:00
Bruce Momjian b1ffacddfc 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 *.
2004-05-12 13:38:49 +00:00
Bruce Momjian b9ba13a80e Fix bug by passing arg[0] to find_my_binary(). 2004-05-12 03:48:42 +00:00
Tom Lane 3a0d95d181 Yawn ... still another place not quite ready for zero-column tables. 2004-05-11 22:43:55 +00:00
Bruce Momjian fda15b351a 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.
2004-05-11 21:57:15 +00:00
Tom Lane a2160c5eeb Add tests to enlargeStringInfo() to avoid possible buffer-overrun or
infinite-loop problems if a bogus data length is passed.
2004-05-11 20:07:26 +00:00
Tom Lane 5ddbe904c0 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.
2004-05-11 17:36:13 +00:00
Tom Lane bef764029b Fix oversights in processing of LIMIT expressions during planning. 2004-05-11 13:15:15 +00:00
Tom Lane 1697568d57 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.
2004-05-11 02:21:39 +00:00
Bruce Momjian 608b85a23c Clean up indenting of Makefile filenames. 2004-05-10 23:09:04 +00:00
Tom Lane 2f63232d30 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.
2004-05-10 22:44:49 +00:00
Bruce Momjian c50faf944d Add variables names to static prototypes in initdb.c. 2004-05-10 20:51:58 +00:00
Michael Meskes 491dc124bf - Argh, just another bug in adjust_informix.
- Added "extern C" flags for C++ compiler. Hopefully I got that one right.
2004-05-10 13:46:06 +00:00
Tom Lane 7a3977c08d Fix a couple of oversights in new ALTER TABLE code that broke
ALTER SET STATISTICS for functional indexes.
2004-05-08 22:46:29 +00:00
Tom Lane c00b309932 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.
2004-05-08 21:21:18 +00:00
Tom Lane 4af3421161 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.
2004-05-08 19:09:25 +00:00
Bruce Momjian ef0ec907bd Improve style of new log_statement_stats error message, per Peter. 2004-05-08 02:11:46 +00:00
Tom Lane dd16b7aa9e 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.
2004-05-08 00:34:49 +00:00
Neil Conway 7c6baade7b Refactor CheckDropPermissions() to move some initialization code for
printing the proper error message out of the common path.
2004-05-07 19:12:26 +00:00
Tom Lane d905057853 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.
2004-05-07 16:57:16 +00:00
Michael Meskes 2b55612645 - Added additional test case.
- Fixed bug that reversed string length in typedefs.
- Added portability file to pgtypeslib.
2004-05-07 13:42:49 +00:00
Tom Lane 573aaa52bc NATURAL CROSS JOIN is a contradiction in terms, not to mention disallowed
by the SQL spec and by our parser.  Thanks to Jonathan Scott for finding
this longstanding error.
2004-05-07 03:19:44 +00:00
Bruce Momjian 63d0139061 Remove crude test for log_statement_stats in startup code now that we
have a more proper GUC based test.

Also change error return code to ERRCODE_INVALID_PARAMETER_VALUE so it
matches the old error return code.
2004-05-07 01:53:41 +00:00
Bruce Momjian ae96e629b8 Throw error if log_statement_stats is used with confliction options for
per-query stage stats.
2004-05-07 01:34:08 +00:00
Tom Lane 0bd61548ab Solve the 'Turkish problem' with undesirable locale behavior for case
conversion of basic ASCII letters.  Remove all uses of strcasecmp and
strncasecmp in favor of new functions pg_strcasecmp and pg_strncasecmp;
remove most but not all direct uses of toupper and tolower in favor of
pg_toupper and pg_tolower.  These functions use the same notions of
case folding already developed for identifier case conversion.  I left
the straight locale-based folding in place for situations where we are
just manipulating user data and not trying to match it to built-in
strings --- for example, the SQL upper() function is still locale
dependent.  Perhaps this will prove not to be what's wanted, but at
the moment we can initdb and pass regression tests in Turkish locale.
2004-05-07 00:24:59 +00:00
Bruce Momjian 38b85b15c1 sysv_shmem.c patch is to correct a bug that prevents the postmaster
recovering from an unexpected backend termination.

The remaining patches are to allow whitespace in db/install directory
names.

Claudio Natoli
2004-05-06 19:23:25 +00:00
Bruce Momjian 22a2c4b576 Erase MD5 user passwords when a user is renamed because the username is
used as salt for the MD5 password.
2004-05-06 16:59:16 +00:00
Tom Lane 8325a8d69e Make ALTER COLUMN TYPE preserve clustered status for indexes it doesn't
modify.  Also fix a passel of problems with ALTER TABLE CLUSTER ON:
failure to check that the index is safe to cluster on (or even belongs
to the indicated rel, or even exists), and failure to broadcast a relcache
flush event when changing an index's state.
2004-05-06 16:10:57 +00:00
Tom Lane eee6f9d5c2 Rewrite nodeRead() in a less obfuscated fashion, per discussion with
Neil Conway.
2004-05-06 14:01:33 +00:00
Neil Conway 839be02ee1 Fix grammatical error in comment. 2004-05-06 06:11:01 +00:00
Tom Lane 9e16195f3f Second try at a portable unsetenv(). 2004-05-05 21:18:29 +00:00
Tom Lane dadce6509a Don't assume that struct timeval's tv_sec field is the same datatype as
time_t; on some platforms they are not the same width.  Per Manfred Koizar.
2004-05-05 17:28:46 +00:00