aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Make the locale location relocatable.Bruce Momjian2004-05-25
| | | | Adjust get_*_path functions to be limited to MAXPGPATH.
* This patch fixes the find_my_exec code for pgstat backends. Required forBruce Momjian2004-05-24
| | | | | | TZ stuff (and possibly others) to work in the pgstat backends. Magnus Hagander
* Avoid calling select_default_timezone() when backing out an unwanted TZTom Lane2004-05-23
| | | | | 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.
* New two-stage sampling method for ANALYZE, as per discussions a few weeksTom Lane2004-05-23
| | | | | | 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.
* Still another place to make the world safe for zero-column tables:Tom Lane2004-05-23
| | | | | remove the ancient (and always pretty dodgy) assumption in parse_clause.c that a query can't have an empty targetlist.
* Handle impending sinval queue overflow by means of a separate signalTom Lane2004-05-23
| | | | | | | | | | | | | | | | | (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.
* For multi-table ANALYZE, use per-table transactions when possibleTom Lane2004-05-22
| | | | | (ie, when not inside a transaction block), so that we can avoid holding locks longer than necessary. Per trouble report from Philip Warner.
* Reduce pg_listener lock taken by NOTIFY et al from AccessExclusiveLockTom Lane2004-05-22
| | | | | | 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.
* Use wide-character library routines, if available, for upper/lower/initcapTom Lane2004-05-22
| | | | | | | | | | 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.
* Put path configuration information into a .h file instead of clutteringTom Lane2004-05-21
| | | | | | several different module Makefiles with it. Also, do any adjustment of installation paths during configure, rather than every time Makefile.global is read.
* Put back #include <sys/time.h> in files that seem to need it on Linux.Tom Lane2004-05-21
|
* Integrate src/timezone library for all platforms. There is more we canTom Lane2004-05-21
| | | | | | 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.
* Fix speling.Tom Lane2004-05-20
|
* Improve error reporting behavior in parse_hba(): give more completeTom Lane2004-05-19
| | | | | error report for getaddrinfo failures, point at correct token for syntax errors in all cases, don't log redundant messages.
* Rename irix5 port to irix.Bruce Momjian2004-05-19
|
* Only do pkglib_path if needed.Bruce Momjian2004-05-19
|
* Only do find_my_exec if it doesn't come from the postmaster.Bruce Momjian2004-05-19
|
* Add get_pkglib_path to postmaster.cBruce Momjian2004-05-19
|
* Move find_my_exec lower so elog() works, per Tom.Bruce Momjian2004-05-19
|
* Minor correction for previous SQLSTATE patch: I changed dsqrt() to emit theNeil Conway2004-05-19
| | | | | right error code previously, and this patch applies an analogous change to numeric_sqrt().
* setRuleCheckAsUser has to be applied to any subqueries appearing in aTom Lane2004-05-18
| | | | | rule's event_qual, not only to the rule's action. Per example from Arturs Zoldners.
* Move get_pkglib_path up into main.c too.Bruce Momjian2004-05-18
|
* Move find_my_exec() way up into main.c so it is available to theBruce Momjian2004-05-18
| | | | | | | | 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.
* Clean up some relative path install issues with Claudio's help.Bruce Momjian2004-05-18
|
* Reorganize code to allow path-relative installs.Bruce Momjian2004-05-17
| | | | | | | Create new get_* functions to access compiled-in paths and adjust if relative installs are to be used. Clean up substitute_libpath_macro() code.
* Change ln(), log(), power(), and sqrt() to emit the correct SQLSTATENeil Conway2004-05-16
| | | | error codes for certain error conditions, as specified by SQL2003.
* Implement the width_bucket() function, per SQL2003. This commit only addsNeil Conway2004-05-14
| | | | | | | | | 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.
* Adjust find_my_exec/find_other_exec() so that the return parameter isBruce Momjian2004-05-14
| | | | last, not first. This fits our style better.
* Tighten parsing of boolean options to CREATE TYPE and related functions,Tom Lane2004-05-14
| | | | | so as to deliver more useful error messages for mistakes like 'PASSEDBYVALUE = f'. Per gripe from Gaetano Mendola.
* Reorganize backend code to more cleanly manage executable names andBruce Momjian2004-05-13
| | | | backend startup.
* Tighten up overflow check in path_recv, pursuant to code review inspiredTom Lane2004-05-12
| | | | | | 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.
* Rename find_my_binary/find_other_binary toBruce Momjian2004-05-12
| | | | | | | | | 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 *.
* Fix bug by passing arg[0] to find_my_binary().Bruce Momjian2004-05-12
|
* Yawn ... still another place not quite ready for zero-column tables.Tom Lane2004-05-11
|
* As part of the work for making relocatable installs, I have re-factoredBruce Momjian2004-05-11
| | | | | | | | | | | | 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.
* Add tests to enlargeStringInfo() to avoid possible buffer-overrun orTom Lane2004-05-11
| | | | infinite-loop problems if a bogus data length is passed.
* Refactor low-level aclcheck code to provide useful interfaces for multi-bitTom Lane2004-05-11
| | | | | | | 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.
* Fix oversights in processing of LIMIT expressions during planning.Tom Lane2004-05-11
|
* Repair recalculation failure for nested sub-SELECTs, per bug report fromTom Lane2004-05-11
| | | | | | 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.
* Promote row expressions to full-fledged citizens of the expression syntax,Tom Lane2004-05-10
| | | | | | | | | | 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.
* Fix a couple of oversights in new ALTER TABLE code that brokeTom Lane2004-05-08
| | | | ALTER SET STATISTICS for functional indexes.
* Alter string format used for integer and OID lists in stored rules.Tom Lane2004-05-08
| | | | | | | | 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.
* Get rid of rd_nblocks field in relcache entries. Turns out this wasTom Lane2004-05-08
| | | | | | | | | 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.
* Improve style of new log_statement_stats error message, per Peter.Bruce Momjian2004-05-08
|
* Get rid of cluster.c's apparatus for rebuilding a relation's indexesTom Lane2004-05-08
| | | | | | | | | | | | 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.
* Refactor CheckDropPermissions() to move some initialization code forNeil Conway2004-05-07
| | | | printing the proper error message out of the common path.
* NATURAL CROSS JOIN is a contradiction in terms, not to mention disallowedTom Lane2004-05-07
| | | | | by the SQL spec and by our parser. Thanks to Jonathan Scott for finding this longstanding error.
* Remove crude test for log_statement_stats in startup code now that weBruce Momjian2004-05-07
| | | | | | | 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.
* Throw error if log_statement_stats is used with confliction options forBruce Momjian2004-05-07
| | | | per-query stage stats.
* Solve the 'Turkish problem' with undesirable locale behavior for caseTom Lane2004-05-07
| | | | | | | | | | | | | 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.