- May 25, 2004
-
-
Bruce Momjian authored
Adjust get_*_path functions to be limited to MAXPGPATH.
-
- May 23, 2004
-
-
Tom Lane authored
remove the ancient (and always pretty dodgy) assumption in parse_clause.c that a query can't have an empty targetlist.
-
Tom Lane authored
(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 authored
(ie, when not inside a transaction block), so that we can avoid holding locks longer than necessary. Per trouble report from Philip Warner.
-
- May 22, 2004
-
-
Tom Lane authored
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.
-
- May 21, 2004
- May 20, 2004
-
-
Bruce Momjian authored
-
Bruce Momjian authored
-
- May 19, 2004
-
-
Bruce Momjian authored
-
Bruce Momjian authored
so we make is_absolute_path a macro so libpq doesn't use path.o.
-
- May 18, 2004
-
-
Bruce Momjian authored
-
- May 17, 2004
-
-
Bruce Momjian authored
Create new get_* functions to access compiled-in paths and adjust if relative installs are to be used. Clean up substitute_libpath_macro() code.
-
Neil Conway authored
error codes for certain error conditions, as specified by SQL2003.
-
- May 15, 2004
-
-
Neil Conway authored
-
- May 14, 2004
-
-
Neil Conway authored
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.
-
Neil Conway authored
-patches.
-
Bruce Momjian authored
last, not first. This fits our style better.
-
Tom Lane authored
so as to deliver more useful error messages for mistakes like 'PASSEDBYVALUE = f'. Per gripe from Gaetano Mendola.
-
Bruce Momjian authored
backend startup.
-
- May 12, 2004
-
-
Bruce Momjian authored
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 *.
-
- May 11, 2004
-
-
Bruce Momjian authored
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 authored
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 authored
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.
-
- May 08, 2004
-
-
Tom Lane authored
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 authored
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 authored
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.
-
- May 07, 2004
-
-
Tom Lane authored
safely be marked immutable, since their results don't depend on the TimeZone GUC variable. Per recent discussion.
-
Tom Lane authored
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.
-
- May 06, 2004
-
-
Tom Lane authored
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.
-
Tom Lane authored
Neil Conway.
-
- May 05, 2004
-
-
Tom Lane authored
-
Tom Lane authored
* ALTER ... ADD COLUMN with defaults and NOT NULL constraints works per SQL spec. A default is implemented by rewriting the table with the new value stored in each row. * ALTER COLUMN TYPE. You can change a column's datatype to anything you want, so long as you can specify how to convert the old value. Rewrites the table. (Possible future improvement: optimize no-op conversions such as varchar(N) to varchar(N+1).) * Multiple ALTER actions in a single ALTER TABLE command. You can perform any number of column additions, type changes, and constraint additions with only one pass over the table contents. Basic documentation provided in ALTER TABLE ref page, but some more docs work is needed. Original patch from Rod Taylor, additional work from Tom Lane.
-
- May 02, 2004
-
-
Bruce Momjian authored
-
Bruce Momjian authored
> Please find a attached a small patch that adds accessor functions > for "aclitem" so that it is not an opaque datatype. > > I needed these functions to browse aclitems from user land. I can load > them when necessary, but it seems to me that these accessors for a > backend type belong to the backend, so I submit them. > > Fabien Coelho
-
- May 01, 2004
-
-
Bruce Momjian authored
-
- Apr 30, 2004
-
-
Bruce Momjian authored
-
Bruce Momjian authored
-
Bruce Momjian authored
-