summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2005-03-28Remove dead push/pop rollback code. Vadim once planned to implementTom Lane
transaction rollback via UNDO but I think that's highly unlikely to happen, so we may as well remove the stubs. (Someday we ought to rip out the stub xxx_undo routines, too.) Per Alvaro.
2005-03-28Rethink the order of expression preprocessing: eval_const_expressionsTom Lane
really ought to run before canonicalize_qual, because it can now produce forms that canonicalize_qual knows how to improve (eg, NOT clauses). Also, because eval_const_expressions already knows about flattening nested ANDs and ORs into N-argument form, the initial flatten_andors pass in canonicalize_qual is now completely redundant and can be removed. This doesn't save a whole lot of code, but the time and palloc traffic eliminated is a useful gain on large expression trees.
2005-03-27First steps towards index scans with heap access decoupled from indexTom Lane
access: define new index access method functions 'amgetmulti' that can fetch multiple TIDs per call. (The functions exist but are totally untested as yet.) Since I was modifying pg_am anyway, remove the no-longer-needed 'rel' parameter from amcostestimate functions, and also remove the vestigial amowner column that was creating useless work for Alvaro's shared-object-dependencies project. Initdb forced due to changes in pg_am.
2005-03-27Teach const-expression simplification to simplify boolean equality cases,Tom Lane
that is 'x = true' becomes 'x' and 'x = false' becomes 'NOT x'. This isn't all that amazingly useful in itself, but it ensures that we will recognize the different forms as being logically equivalent when checking partial index predicates. Per example from Patrick Clery.
2005-03-27Eliminate duplicate hasnulls bit testing in index tuple access, andTom Lane
clean up itup.h a little bit.
2005-03-27Add a back-link from IndexOptInfo structs to their parent RelOptInfoTom Lane
structs. There are many places in the planner where we were passing both a rel and an index to subroutines, and now need only pass the index struct. Notationally simpler, and perhaps a tad faster.
2005-03-26Expand the 'special index operator' machinery to handle special casesTom Lane
for boolean indexes. Previously we would only use such an index with WHERE clauses like 'indexkey = true' or 'indexkey = false'. The new code transforms the cases 'indexkey', 'NOT indexkey', 'indexkey IS TRUE', and 'indexkey IS FALSE' into one of these. While this is only marginally useful in itself, I intend soon to change constant-expression simplification so that 'foo = true' and 'foo = false' are reduced to just 'foo' and 'NOT foo' ... which would lose the ability to use boolean indexes for such queries at all, if the indexscan machinery couldn't make the reverse transformation.
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-26Use a bitmapset instead of a list for duplicate-column checking inTom Lane
checkInsertTargets(). Avoids O(N^2) behavior on wide target lists.
2005-03-26Rewrite rewriteTargetList() to avoid O(N^2) behavior on wide target lists.Tom Lane
2005-03-26Add Windows-specific variant comparison file.Tom Lane
2005-03-26Add another ORDER BY to rules test to eliminate platform-specificTom Lane
output ordering.
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-25Use 'cp' and 'chmod' in place of 'install' to install header files.Bruce Momjian
This reduces header file install from 8 seconds to 0.40 seconds.
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-25Improve EXPLAIN ANALYZE to show the time spent in each trigger whenTom Lane
executing a statement that fires triggers. Formerly this time was included in "Total runtime" but not otherwise accounted for. As a side benefit, we avoid re-opening relations when firing non-deferred AFTER triggers, because the trigger code can re-use the main executor's ResultRelInfo data structure.
2005-03-25Fix resource owner code to generate catcache and relcache leak warningsTom Lane
when open references remain during normal cleanup of a resource owner. This restores the system's ability to warn about leaks to what it was before 8.0. Not really a user-level bug, but helpful for development.
2005-03-25Have libpgport link before libpq so that PG client applications are moreBruce Momjian
immunte to changes in libpq's usage of pgport between major versions.
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-25Make initialization of special trigger variables a little more readable.Tom Lane
Correct one mis-setting of freeval (which could at worst leak a few bytes until the trigger exits, so it's no big deal).
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-24Revert ill-conceived change of libpq linkage --- breaks ecpg.Tom Lane
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-24Force PG client applications to link to non-shared libpgport beforeBruce Momjian
linking to libpq. This insulates applications from changes in libpq's usage of libpgport functions. Backpatched to 8.0.X.
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-24Set socket timer to 58 instead of 60 minutes for hour-old cleaners:Bruce Momjian
* Touch the socket and lock file at least every hour, to * ensure that they are not removed by overzealous /tmp-cleaning * tasks. Set to 58 minutes so a cleaner never sees the * file as an hour old.
2005-03-24Fix python regression testing script to bail out early if languageTom Lane
creation fails ... no point in running the tests.
2005-03-24Adjust plpython to convert \r\n and \r to \n in Python scripts,Tom Lane
per recent discussion concluding that this is the Right Thing. Add regression test check for this behavior. Michael Fuhr
2005-03-24Touch postmaster log file every hour, rather than every 10 minutes, toBruce Momjian
prevent complaints from laptop users who don't like their hard drives starting up every 10 minutes.
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-24Add missing error checking in readdir() loops.Tom Lane
2005-03-24Revert changes to CREATE TRIGGER and ALTER TABLE ADD FOREIGN KEY locking,Neil Conway
per request from Tom.
2005-03-23Adjust CREATE TRIGGER and ALTER TABLE ... ADD FOREIGN KEY to acquireNeil Conway
ExclusiveLock rather than AccessExclusiveLock. This will allow concurrent SELECT queries to proceed on the table. Per discussion with Andrew at SuperNews.
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-22Use InitFunctionCallInfoData() macro instead of MemSet in performanceTom Lane
critical places in execQual. By Atsushi Ogawa; some minor cleanup by moi.
2005-03-22Create a routine PageIndexMultiDelete() that replaces a loop aroundTom Lane
PageIndexTupleDelete() with a single pass of compactification --- logic mostly lifted from PageRepairFragmentation. I noticed while profiling that a VACUUM that's cleaning up a whole lot of deleted tuples would spend as much as a third of its CPU time in PageIndexTupleDelete; not too surprising considering the loop method was roughly O(N^2) in the number of tuples involved.
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-21Convert index-related tuple handling routines from char 'n'/' ' to boolTom Lane
convention for isnull flags. Also, remove the useless InsertIndexResult return struct from index AM aminsert calls --- there is no reason for the caller to know where in the index the tuple was inserted, and we were wasting a palloc cycle per insert to deliver this uninteresting value (plus nontrivial complexity in some AMs). I forced initdb because of the change in the signature of the aminsert routines, even though nothing really looks at those pg_proc entries...
2005-03-20Change the return value of HeapTupleSatisfiesUpdate() to be an enum,Neil Conway
rather than an integer, and fix the associated fallout. From Alvaro Herrera.
2005-03-20On Windows, use QueryPerformanceCounter instead of gettimeofday forTom Lane
EXPLAIN ANALYZE instrumentation. Magnus Hagander
2005-03-20Remove unnecessary calls of FlushRelationBuffers: there is no needTom Lane
to write out data that we are about to tell the filesystem to drop. smgr_internal_unlink already had a DropRelFileNodeBuffers call to get rid of dead buffers without a write after it's no longer possible to roll back the deleting transaction. Adding a similar call in smgrtruncate simplifies callers and makes the overall division of labor clearer. This patch removes the former behavior that VACUUM would write all dirty buffers of a relation unconditionally.
2005-03-20Add mention of why malloc() has to be used in snprintf.c.Bruce Momjian
2005-03-20Department of second thoughts. Remove FRONTEND from snprintf.c becauseBruce Momjian
snprintf is called before the memory system is started. We have to just malloc/free. There are no elogs in the code so we should be fine.
2005-03-20Fix typo in Makefile.Bruce Momjian
2005-03-20Another change for FRONTEND snprintf.c.Bruce Momjian
2005-03-20Mark snprintf.c as a file that uses FRONTEND and needs to a version inBruce Momjian
the server-side port library. Somehow I missed that change when I added memory allocation to snprintf.c.
2005-03-19Add temp_buffers GUC variable to allow users to determine the sizeTom Lane
of the local buffer arena for temporary table access.
2005-03-19Upgrade localbuf.c to use a hash table instead of linear search toTom Lane
find already-allocated local buffers. This is the last obstacle in the way of setting NLocBuffer to something reasonably large.