summaryrefslogtreecommitdiff
path: root/src/backend
AgeCommit message (Collapse)Author
2005-04-11Fix interaction between materializing holdable cursors and firingTom Lane
deferred triggers: either one can create more work for the other, so we have to loop till it's all gone. Per example from andrew@supernews. Add a regression test to help spot trouble in this area in future.
2005-04-11PersistHoldablePortal must establish the correct value for ActiveSnapshotTom Lane
while completing execution of the cursor's query. Otherwise we get wrong answers or even crashes from non-volatile functions called by the query. Per report from andrew@supernews.
2005-04-10Make constant-folding produce sane output for COALESCE(NULL,NULL),Tom Lane
that is a plain NULL and not a COALESCE with no inputs. Fixes crash reported by Michael Williamson.
2005-04-10SQL functions returning pass-by-reference types were copying the resultsTom Lane
into the wrong memory context, resulting in a query-lifespan memory leak. Bug is new in 8.0, I believe. Per report from Rae Stiening.
2005-04-04In cost_mergejoin, the early-exit effect should not apply to theTom Lane
outer side of an outer join. Per andrew@supernews.
2005-04-02Translation updatesPeter Eisentraut
2005-04-01Second try at making examine_variable and friends behave sanely inTom Lane
cases with binary-compatible relabeling. My first try was implicitly assuming that all operators scalarineqsel is used for have binary- compatible datatypes on both sides ... which is very wrong of course. Per report from Michael Fuhr.
2005-04-01Fix wrong week returnded by date_trunc('week') for early dates inBruce Momjian
January --- would return wrong year for 2005-01-01 and 2006-01-01. per report from Robert Creager. Backpatch to 8.0.X.
2005-03-31Flush any remaining statistics counts out to the collector at processTom Lane
exit. Without this, operations triggered during backend exit (such as temp table deletions) won't be counted ... which given heavy usage of temp tables can lead to pg_autovacuum falling way behind on the need to vacuum pg_class and pg_attribute. Per reports from Steve Crawford and others.
2005-03-26Fix a pair of related issues with estimation of inequalities that involveTom Lane
binary-compatible relabeling of one or both operands. examine_variable should avoid stripping RelabelType from non-variable expressions, so that they will continue to have the correct type; and convert_to_scalar should just use that type and ignore the other input type. This isn't perfect but it beats failing entirely. Per example from Michael Fuhr.
2005-03-26Prevent to_char(interval) from dumping core on month-related formatsTom Lane
when a zero-month interval is given. Per discussion with Karel. Also, some desultory const-labeling of constant tables. More could be done along that line.
2005-03-25Remove lazy_update_relstats; go back to having VACUUM just record theTom Lane
actual number of unremoved tuples as pg_class.reltuples. The idea of trying to estimate a steady state condition still seems attractive, but this particular implementation crashed and burned ...
2005-03-25Fix two bugs in change_owner_recurse_to_sequences: it was grabbing anTom Lane
overly strong lock on pg_depend, and it wasn't closing the rel when done. The latter bug was masked by the ResourceOwner code, which is something that should be changed.
2005-03-25Add missing min/max parameters to DefineCustomIntVariable() andTom Lane
DefineCustomRealVariable(). Thomas Hallgren
2005-03-25Fix to_date to behave reasonably when CC and YY fields are both used.Tom Lane
Karel Zak
2005-03-25Kerberos fixes from Magnus Hagander --- in theory Kerberos 5 authTom Lane
should work on Windows now. Also, rename set_noblock to pg_set_noblock; since it is included in libpq, the former name polluted application namespace.
2005-03-24array_map can't use the fn_extra field of the provided fcinfo struct asTom Lane
its private storage, because that belongs to the function that it is supposed to call. Per report from Ezequiel Tolnay.
2005-03-24Tweak planner to use a minimum size estimate of 10 pages for aTom Lane
never-yet-vacuumed relation. This restores the pre-8.0 behavior of avoiding seqscans during initial data loading, while still allowing reasonable optimization after a table has been vacuumed. Several regression test cases revert to 7.4-like behavior, which is probably a good sign. Per gripes from Keith Browne and others.
2005-03-24Change Win32 O_SYNC method to O_DSYNC because that is what the methodBruce Momjian
currently does. This is now the default Win32 wal sync method because we perfer o_datasync to fsync. Also, change Win32 fsync to a new wal sync method called fsync_writethrough because that is the behavior of _commit, which is what is used for fsync on Win32. Backpatch to 8.0.X.
2005-03-23WAL must log CREATE and DROP DATABASE operations *without* using anyTom Lane
explicit paths, so that the log can be replayed in a data directory with a different absolute path than the original had. To avoid forcing initdb in the 8.0 branch, continue to accept the old WAL log record types; they will never again be generated however, and the code can be dropped after the next forced initdb. Per report from Oleg Bartunov. We still need to think about what it really means to WAL-log CREATE TABLESPACE commands: we more or less have to put the absolute path into those, but how to replay in a different context??
2005-03-21Fix quote_ident to use quote_identifier rather than its own, not quiteTom Lane
up-to-speed logic; in particular this will cause it to quote names that match keywords. Remove unnecessary multibyte cruft from quote_literal (all backend-internal encodings are 8-bit-safe).
2005-03-18Need to reset local buffer pin counts, not only shared buffer pins,Tom Lane
before we attempt any file deletions in ShutdownPostgres. Per Tatsuo.
2005-03-18Need to release buffer pins before attempting to drop files duringTom Lane
backend exit. Per report from Bruce.
2005-03-18Treat EPERM as a non-error case when checking to see if old postmasterTom Lane
is still alive. This improves our odds of not getting fooled by an unrelated process when checking a stale lock file. Other checks already in place, plus one newly added in checkDataDir(), ensure that we cannot attempt to usurp the place of a postmaster belonging to a different userid, so there is no need to error out. Add comments indicating the importance of these other checks.
2005-03-16Add missing include for new lc_ctype_is_c() function.Bruce Momjian
Per Neil.
2005-03-16Prevent locale-aware handling of upper, lower, and initcap when theBruce Momjian
locale is C. Backpatch to 8.0.X because some operating systems were throwing errors for such operations, rather than ignoring the locale when it was C.
2005-03-12Fix ALTER DATABASE RENAME to allow the operation if user is a superuserTom Lane
who for some reason isn't marked usecreatedb. Per report from Alexander Pravking. Also fix sloppy coding in have_createdb_privilege().
2005-03-12Fix problem with infinite recursion between write_syslogger_file andTom Lane
elog if the former has trouble writing its file. Code review for Magnus' patch to redirect stderr to syslog on Windows (Bruce's version seems right, but did some minor prettification). Backpatch both changes to 8.0 branch.
2005-03-03Replace ARC cache management algorithm with the similar but slightlyTom Lane
simpler 2Q algorithm, to avoid possible problems with the pending patent on ARC. Testing so far suggests that there is little if any performance loss from doing this. Note that this patch is going into the 8.0 branch only; a much more extensive revision is planned for HEAD.
2005-03-01Release proclock immediately in RemoveFromWaitQueue() if it representsTom Lane
no held locks. This maintains the invariant that proclocks are present only for procs that are holding or awaiting a lock; when this is not true, LockRelease will fail. Per report from Stephen Clouse.
2005-03-01Adjust OR indexscan logic to not generate redundant condition-free ORTom Lane
indexscans involving partial indexes. These would always be dominated by a simple indexscan on such an index, so there's no point in considering them. Fixes overoptimism in a patch I applied last October.
2005-03-01Revert the logic for expanding AND/OR conditions in pred_test() to whatTom Lane
it was in 7.4, and add some comments explaining why it has to be this way. I broke it for OR'd index predicates in a fit of code cleanup last summer. Per example from Sergey Koshcheyev.
2005-02-19New arrangement to always let the bgwriter do checkpoints brokeTom Lane
CHECKPOINT and some other commands in the context of a standalone backend. Allow a standalone backend to do its own checkpoints.
2005-02-19Ensure that the resolved datatype of any unknown Param is propagatedTom Lane
into the sub-SELECT targetlist when it appears in the context INSERT INTO foo SELECT $1 ... Per report from Abhijit Menon-Sen.
2005-02-14ALTER LANGUAGE RENAME has never worked. Per Sergey Yatskevich.Tom Lane
2005-02-11Translation updatesPeter Eisentraut
2005-02-10Fix SPI cursor support to allow scanning the results of utility commandsTom Lane
that return tuples (such as EXPLAIN). Per gripe from Michael Fuhr. Side effect: fix an old bug that unintentionally disabled backward scans for all SPI-created cursors.
2005-02-09ALTER TABLE ADD COLUMN exhibits a significant memory leak when adding aNeil Conway
column with a default expression. In that situation, we need to rewrite the heap relation. To evaluate the new default expression, we use ExecEvalExpr(); however, this can allocate memory in the current memory context, and ATRewriteTable() does not switch out of the active portal's heap memory context. The end result is a rather large memory leak (on the order of gigabytes for a reasonably sized table). This patch changes ATRewriteTable() to switch to the per-tuple memory context before beginning the per-tuple loop. It also removes an explicit heap_freetuple() in the loop, since that is no longer needed. In an unrelated change, I noticed the code was scanning through the attributes of the new tuple descriptor for each tuple of the old table. I changed this to use precomputation, which should slightly speed up the loop. Thanks to steve@deefs.net for reporting the leak.
2005-02-06Repair CLUSTER failure after ALTER TABLE SET WITHOUT OIDS. Turns outTom Lane
there are corner cases involving dropping toasted columns in which the previous coding would fail, too: the new version of the table might not have any TOAST table, but we'd still propagate possibly-wide values of dropped columns forward.
2005-02-03Ensure that all details of the ARC algorithm are hidden within freelist.c.Tom Lane
This refactoring does not change any algorithms or data structures, just remove visibility of the ARC datastructures from other source files.
2005-02-02Improve performance of fmgr.c calling routines for cases with more thanTom Lane
two arguments. Per suggestions from A. Ogawa.
2005-02-02Adjust constant-folding of CASE expressions so that the simple comparisonTom Lane
form of CASE (eg, CASE 0 WHEN 1 THEN ...) can be constant-folded as it was in 7.4. Also, avoid constant-folding result expressions that are certainly unreachable --- the former coding was a bit cavalier about this and could generate unexpected results for all-constant CASE expressions. Add regression test cases. Per report from Vlad Marchenko.
2005-02-01Fix a bug induced by the list-rewrite that resulted in incrementing theNeil Conway
command counter more than necessary. Per report from Michael Fuhr.
2005-02-01Adjust estimate_num_groups() to not clamp per-relation group countTom Lane
estimate to less than the number of values estimated for any one grouping Var, as suggested by Manfred. This is intuitively right, and what's more it puts the plan choices in the subselect regression test back the way they were before ...
2005-02-01Sync inet formatting code with recent BIND releases. In particular,Tom Lane
fix bug with inconsistent selection of default mask length for "class D" addresses. Per report from Steve Atkins.
2005-01-30Translation updatesPeter Eisentraut
2005-01-28When dealing with multiple grouping columns coming from the same table,Tom Lane
clamp the estimated number of groups to table row count over 10, instead of table row count; this reflects a heuristic that people probably won't group over a near-unique set of columns, and the knowledge that we don't currently have any way to estimate the correlation of the columns better than guessing. This change creates a trivial plan change in one of the regression tests.
2005-01-28Improve planner's estimation of the space needed for HashAgg plans:Tom Lane
look at the actual aggregate transition datatypes and the actual overhead needed by nodeAgg.c, instead of using pessimistic round numbers. Per a discussion with Michael Tiemann.
2005-01-27Check that aggregate creator has the right to execute the transitionTom Lane
functions of the aggregate, at both aggregate creation and execution times.
2005-01-26Close all cursors created during a failed subtransaction. This is neededTom Lane
to avoid problems when a cursor depends on objects created or changed in the same subtransaction. We'd like to do better someday, but this seems the only workable answer for 8.0.1.