aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* During btree index build, sort equal-keyed tuples according to theirTom Lane2004-03-17
| | | | | | | | TID (heap position). This doesn't do anything to the validity of the finished index, but by pretending to qsort() that there are no really equal keys in the sort, we can avoid performance problems with qsort implementations that have trouble with large numbers of equal keys. Patch from Manfred Koizar.
* Reimplement CASE val WHEN compval1 THEN ... WHEN compval2 THEN ... ENDTom Lane2004-03-17
| | | | | | | | so that the 'val' is computed only once, per recent discussion. The speedup is not much when 'val' is just a simple variable, but could be significant for larger expressions. More importantly this avoids issues with multiple evaluations of a volatile 'val', and it allows the CASE expression to be reverse-listed in its original form by ruleutils.c.
* Document SPI_push() and SPI_pop().Bruce Momjian2004-03-17
|
* Replace the switching function ExecEvalExpr() with a macro that jumpsTom Lane2004-03-17
| | | | | | | | | | | directly to the appropriate per-node execution function, using a function pointer stored by ExecInitExpr. This speeds things up by eliminating one level of function call. The function-pointer technique also enables further small improvements such as only making one-time tests once (and then changing the function pointer). Overall this seems to gain about 10% on evaluation of simple expressions, which isn't earthshaking but seems a worthwhile gain for a relatively small hack. Per recent discussion on pghackers.
* Remove double-rename used by Win32 on busy files. Not needed anymore.Bruce Momjian2004-03-16
|
* Check for EOF on pipe differs under win32, as it is based on a socketBruce Momjian2004-03-15
| | | | | | implementation. Claudio Natoli
* * postmaster.c: cleanup pmdaemonize under win32; missed failure messageBruce Momjian2004-03-15
| | | | | | | | | in CreateOptsFile * s_lock.c: minor comment fix * findbe.c: variables not used under win32 moved within #ifndef WIN32 case Claudio Natoli
* Windows uses codepages rather than the environment, so we work aroundBruce Momjian2004-03-15
| | | | | | | | that by querying the environment explicitly first for LC_COLLATE and LC_CTYPE. We have to do this because initdb passes those values in the environment. If there is nothing there we fall back on the codepage. Andrew Dunstan
* Remove GUC log_statement, log_pid, log_timestamp, log_source_port.Bruce Momjian2004-03-15
| | | | | | Functionality superceeded by log_line_prefix. Andrew Dunstan
* Add PQmbdsplen() which returns the "display length" of a character.Tatsuo Ishii2004-03-15
| | | | | Still some works needed: - UTF-8, MULE_INTERNAL always returns 1
* Localize our dependencies on the way to create NAN or INFINITY.Tom Lane2004-03-15
| | | | Per recent proposal to pghackers.
* Remove grotty special-case code in coerce_to_target_type() thatTom Lane2004-03-15
| | | | | | | implemented casts to varchar and bpchar using a cast-to-text function. This is a holdover from before we had pg_cast; it now makes more sense to just list these casts in pg_cast. While at it, add pg_cast entries for the other direction (casts from varchar/bpchar) where feasible.
* Tweak planner so that index expressions and predicates are matched toTom Lane2004-03-14
| | | | | queries without regard to whether coercions are stated explicitly or implicitly. Per suggestion from Stephan Szabo.
* Portability fixes and bug fixes for recent floating point input changes.Neil Conway2004-03-14
| | | | | | | | In particular, don't depend on strtod() to accept 'NaN' and 'Infinity' inputs (while this is required by C99, not all platforms are compliant with that yet). Also, don't require glibc's behavior from isinf(): it seems that on a lot of platforms isinf() does not itself distinguish between negative and positive infinity.
* Arrange to emit a CONTEXT: SQL function "foo" entry in an errorTom Lane2004-03-14
| | | | | | message that is reporting a prechecking error in a SQL function. This is to cue client-side code that the syntax error position, if any, is with respect to the function body and not the outer command.
* Generate a WARNING when the column types in a foreign key constraint areTom Lane2004-03-13
| | | | | | | incompatible enough to prevent indexscanning the referenced table. Also, improve the error message that pops out when we can't implement the FK at all for lack of a usable equality operator. Fabien Coelho, with some review by Tom Lane.
* Repair memory leakage introduced into the non-hashed aggregate case byTom Lane2004-03-13
| | | | | | | 7.4 rewrite for hashed aggregate support. If the transition data type is pass-by-reference, the transValue must be pfreed when starting a new group boundary, else we have a one-value-per-group leakage. Thanks to Rae Steining for providing a reproducible test case.
* Translation updatesDennis Bjorklund2004-03-12
|
* Translation updatesDennis Bjorklund2004-03-12
|
* Allow 'Infinity' and '-Infinity' as input to the float4 and float8Neil Conway2004-03-12
| | | | | | | | | types. Update the regression tests and the documentation to reflect this. Remove the UNSAFE_FLOATS #ifdef. This is only half the story: we still unconditionally reject floating point operations that result in +/- infinity. See recent thread on -hackers for more information.
* Revise int2/int4/int8/float4/float8 input routines to allow forNeil Conway2004-03-11
| | | | | | | | | | any amount of leading or trailing whitespace (where "whitespace" is defined by isspace()). This is for SQL conformance, as well as consistency with other numeric types (e.g. oid, numeric). Also refactor pg_atoi() to avoid looking at errno where not necessary, and add a bunch of regression tests for the input to these types.
* Add NOWAIT option to LOCK commandTatsuo Ishii2004-03-11
|
* Move non-blocking code into its own /port file, for code clarity.Bruce Momjian2004-03-10
|
* Corrects a typo, introduces missing variables, and rearranges theBruce Momjian2004-03-09
| | | | | | | | | | | initialization of stats process under EXEC_BACKEND. [A cleaner, rationalized approach to stat/backend/SSDataBase child processes under EXEC_BACKEND is on my TODO list. However this patch takes care of immediate concerns (ie. stats test now passes under win32)] Claudio Natoli
* Determines the PKGLIBDIR equivalent under win32. Requires pgsql lib andBruce Momjian2004-03-09
| | | | | | | | bin directories to be packaged under the same root directory (eg. <some path>/pgsql/bin and <some path>/pgsql/lib) for the win32 port, which does not appear to be an onerous restriction. Claudio Natoli
* Add ALSO keyword to CREATE RULE.Bruce Momjian2004-03-09
| | | | Fabien COELHO
* Add:Bruce Momjian2004-03-09
| | | | | | | | | | | | | #log_line_prefix = '' # e.g. '<%u%%%d> ' # %u=user name %d=database name # %r=remote host and port # %p=PID %t=timestamp %i=command tag # %c=session id %l=session line number # %s=session start timestamp # %x=stop here in non-session processes # %%='%' Andrew Dunstan
* Add comment about why ON COMMENT in non-current database throws just anBruce Momjian2004-03-08
| | | | warning.
* Test for whether a previous IN join restricts the current join was tooTom Lane2004-03-08
| | | | | strict, per discussion with Dennis Haney. Also, rearrange the preceding tests to avoid redundancy.
* When testing usability of a partial index, recognize that an indexTom Lane2004-03-07
| | | | | | | predicate of the form 'foo IS NOT NULL' is implied by a WHERE clause that uses 'foo' in any strict operator or function. Per suggestion and preliminary implementation by John Siracusa; some further hacking by moi.
* Per a brief conversation with Tom, I've created a patch for addingBruce Momjian2004-03-05
| | | | | | | | | support for 'week' within the date_trunc function. Within the patch I added a couple of test cases and associated target output, and changed the documentation to add 'week' appropriately. Robert Creager
* Win32:Bruce Momjian2004-03-05
| | | | | | | | | | | | | * Mostly, casting etc to remove compilation warnings in win32 only code. * main.c: set _IONBF to stdout/stderr under win32 (under win32, _IOLBF defaults to full buffering) * pg_resetxlog/Makefile: ensures dirmod.o gets cleaned (got bitten by this when, after "make clean"ing, switching compilation between Ming + Cygwin) Claudio Natoli
* Add new SPI functions for use by PL/Java:Bruce Momjian2004-03-05
| | | | | | | | +extern Oid SPI_getargtypeid(void *plan, int argIndex); +extern int SPI_getargcount(void *plan); +extern bool SPI_is_cursor_plan(void *plan); Thomas Hallgren
* Fix log_executor_stats for non-multi queries. Backpatch to 7.4.X.Bruce Momjian2004-03-05
|
* Emit a warning when an empty string is input to the oid, float4, andNeil Conway2004-03-04
| | | | | | | | float8 types. This begins the deprecation of this feature: in 7.6, this input will be rejected. Also added a new error code for warnings about deprecated features, and updated the regression tests.
* Remove useless rebuilding of subPlan list during ExecInitNode. Wouldn'tTom Lane2004-03-02
| | | | | have been there to start with, except for overly enthusiastic copy-and- paste ...
* Update obsolete comment.Tom Lane2004-03-02
|
* Junkfilter logic to force a projection step during SELECT INTO was tooTom Lane2004-03-02
| | | | | simplistic; it recognized SELECT * FROM but not SELECT * FROM LIMIT. Per bug report from Jeff Bohmer.
* Teach is_distinct_query to recognize that GROUP BY forces a subquery'sTom Lane2004-03-02
| | | | | output to be distinct, if all the GROUP BY columns appear in the output. Per suggestion from Dennis Haney.
* make_sort_from_pathkeys()'s method for choosing which of severalTom Lane2004-02-29
| | | | | | | | | | equivalent sort expressions to use was broken: you can't just look at the relation membership, you have to actually grovel over the individual Vars in each expression. I think this did work when it was written, but it was broken by subsequent optimizations that made join relations not propagate every single input variable upward. Must find the Var that got propagated, not choose one at random. Per bug report from Daniel O'Neill.
* Remove unneeded indxqual field in IndexScanState, and the useless workTom Lane2004-02-28
| | | | spent initializing it during indexscan startup.
* Adjust remove_redundant_join_clauses() so that when it has a choiceTom Lane2004-02-27
| | | | | | | of which redundant clause to remove, it removes the more expensive one. In simple scenarios the clauses will be like 'var = var' and there's no difference, but we are now capable of considering cases where there are sub-selects in the clauses, and it makes a BIG difference.
* genericcostestimate() neglected to include qual startup cost inTom Lane2004-02-27
| | | | | indexTotalCost. I think this may not make any real difference in 7.4, but it definitely is a problem with CVS tip's new equation.
* process_implied_equality must copy the substructure of the clauses itTom Lane2004-02-27
| | | | | is generating, to avoid problems when subselects are involved. Per report from Damon Hart.
* Fix a few omissions in the initcap() documentation & source codeNeil Conway2004-02-27
| | | | | | | comments, make some unrelated improvements to the functions documentation, and perform some minor consistency cleanup elsewhere. Original initcap() change from Dennis B., additional changes by Neil C.
* For application to HEAD, following community review.Bruce Momjian2004-02-25
| | | | | | | | | | | | | | * Changes incorrect CYGWIN defines to __CYGWIN__ * Some localtime returns NULL checks (when unchecked cause SEGVs under Win32 regression tests) * Rationalized CreateSharedMemoryAndSemaphores and AttachSharedMemoryAndSemaphores (Bruce, I finally remembered to do it); requires attention. Claudio Natoli
* Add %option nodefault to all our flex lexers. Fix a couple of rule gapsTom Lane2004-02-24
| | | | | | exposed thereby. AFAICT these would not lead to any worse problems than junk emitted on the backend's stdout, but we should have the option to catch possible worse errors in future.
* Implement dollar-quoting in the backend lexer and psql. DocumentationTom Lane2004-02-24
| | | | | | | is still lacking, as is support in plpgsql and other places, but this is the basic feature. Patch by Andrew Dunstan, some tweaking by Tom Lane. Also, enable %option nodefault in these two lexers, and patch some gaps revealed thereby.
* Replace opendir/closedir calls throughout the backend with AllocateDirTom Lane2004-02-23
| | | | | | | | | | and FreeDir routines modeled on the existing AllocateFile/FreeFile. Like the latter, these routines will avoid failing on EMFILE/ENFILE conditions whenever possible, and will prevent leakage of directory descriptors if an elog() occurs while one is open. Also, reduce PANIC to ERROR in MoveOfflineLogs() --- this is not critical code and there is no reason to force a DB restart on failure. All per recent trouble report from Olivier Hubaut.
* Do a direct probe during postmaster startup to determine the maximumTom Lane2004-02-23
| | | | | | number of openable files and the number already opened. This eliminates depending on sysconf(_SC_OPEN_MAX), and allows much saner behavior on platforms where open-file slots are used up by semaphores.