aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Teach const-expression simplification to simplify boolean equality cases,Tom Lane2005-03-27
| | | | | | | 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.
* Eliminate duplicate hasnulls bit testing in index tuple access, andTom Lane2005-03-27
| | | | clean up itup.h a little bit.
* Add a back-link from IndexOptInfo structs to their parent RelOptInfoTom Lane2005-03-27
| | | | | | 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.
* Expand the 'special index operator' machinery to handle special casesTom Lane2005-03-26
| | | | | | | | | | | | 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.
* Fix a pair of related issues with estimation of inequalities that involveTom Lane2005-03-26
| | | | | | | | 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.
* Use a bitmapset instead of a list for duplicate-column checking inTom Lane2005-03-26
| | | | checkInsertTargets(). Avoids O(N^2) behavior on wide target lists.
* Rewrite rewriteTargetList() to avoid O(N^2) behavior on wide target lists.Tom Lane2005-03-26
|
* Add Windows-specific variant comparison file.Tom Lane2005-03-26
|
* Add another ORDER BY to rules test to eliminate platform-specificTom Lane2005-03-26
| | | | output ordering.
* Prevent to_char(interval) from dumping core on month-related formatsTom Lane2005-03-26
| | | | | | 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.
* Use 'cp' and 'chmod' in place of 'install' to install header files.Bruce Momjian2005-03-25
| | | | This reduces header file install from 8 seconds to 0.40 seconds.
* AddBruce Momjian2005-03-25
| | | | > o Do VACUUM FULL if table is nearly empty?
* Remove lazy_update_relstats; go back to having VACUUM just record theTom Lane2005-03-25
| | | | | | 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 ...
* Improve EXPLAIN ANALYZE to show the time spent in each trigger whenTom Lane2005-03-25
| | | | | | | | 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.
* Fix resource owner code to generate catcache and relcache leak warningsTom Lane2005-03-25
| | | | | | 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.
* Have libpgport link before libpq so that PG client applications are moreBruce Momjian2005-03-25
| | | | immunte to changes in libpq's usage of pgport between major versions.
* Fix two bugs in change_owner_recurse_to_sequences: it was grabbing anTom Lane2005-03-25
| | | | | | 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.
* Update and copy-edit description of privileges.Tom Lane2005-03-25
|
* Add missing min/max parameters to DefineCustomIntVariable() andTom Lane2005-03-25
| | | | DefineCustomRealVariable(). Thomas Hallgren
* Fix to_date to behave reasonably when CC and YY fields are both used.Tom Lane2005-03-25
| | | | Karel Zak
* Make initialization of special trigger variables a little more readable.Tom Lane2005-03-25
| | | | | Correct one mis-setting of freeval (which could at worst leak a few bytes until the trigger exits, so it's no big deal).
* Print URL in printed output..Bruce Momjian2005-03-25
|
* Add URL of how to report bugs:Bruce Momjian2005-03-25
| | | | http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
* Kerberos fixes from Magnus Hagander --- in theory Kerberos 5 authTom Lane2005-03-25
| | | | | | 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.
* Revert ill-conceived change of libpq linkage --- breaks ecpg.Tom Lane2005-03-24
|
* array_map can't use the fn_extra field of the provided fcinfo struct asTom Lane2005-03-24
| | | | | its private storage, because that belongs to the function that it is supposed to call. Per report from Ezequiel Tolnay.
* Force PG client applications to link to non-shared libpgport beforeBruce Momjian2005-03-24
| | | | | | | linking to libpq. This insulates applications from changes in libpq's usage of libpgport functions. Backpatched to 8.0.X.
* Tweak planner to use a minimum size estimate of 10 pages for aTom Lane2005-03-24
| | | | | | | | 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.
* Set socket timer to 58 instead of 60 minutes for hour-old cleaners:Bruce Momjian2005-03-24
| | | | | | | * 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.
* Fix python regression testing script to bail out early if languageTom Lane2005-03-24
| | | | creation fails ... no point in running the tests.
* Adjust plpython to convert \r\n and \r to \n in Python scripts,Tom Lane2005-03-24
| | | | | per recent discussion concluding that this is the Right Thing. Add regression test check for this behavior. Michael Fuhr
* Touch postmaster log file every hour, rather than every 10 minutes, toBruce Momjian2005-03-24
| | | | | prevent complaints from laptop users who don't like their hard drives starting up every 10 minutes.
* Add:Bruce Momjian2005-03-24
| | | | | < > * Add GUC to issue notice about queries that use unjoined tables
* Change Win32 O_SYNC method to O_DSYNC because that is what the methodBruce Momjian2005-03-24
| | | | | | | | | | | 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.
* Update INTERVAL items.Bruce Momjian2005-03-24
|
* Add missing error checking in readdir() loops.Tom Lane2005-03-24
|
* Change ANSI to ISO standard:Bruce Momjian2005-03-24
| | | | | | | | | | | | < * Add ANSI INTERVAL handling > * Add ISo INTERVAL handling < o Interpret syntax that isn't uniquely ANSI or PG, like '1:30' or < '1' as ANSI syntax, e.g. interpret '1:30' MINUTE TO SECOND as > o Interpret syntax that isn't uniquely ISO or PG, like '1:30' or > '1' as ISO syntax, e.g. interpret '1:30' MINUTE TO SECOND as 649c649 < * Add pre-parsing phase that converts non-ANSI syntax to supported > * Add pre-parsing phase that converts non-ISO syntax to supported
* Revert changes to CREATE TRIGGER and ALTER TABLE ADD FOREIGN KEY locking,Neil Conway2005-03-24
| | | | per request from Tom.
* Update wording:Bruce Momjian2005-03-23
| | | | | | | | | | | | < o Process mixed ANSI/PG syntax, and round value to requested < precision or generate an error < o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS < INTERVAL MONTH), and this should return '12 months' 194a191,194 > o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS > INTERVAL MONTH), and this should return '12 months' > o Round or truncate values to the requested precision, e.g. > INTERVAL '11 months' AS YEAR should return one or zero
* Update item on ambiguous INTERVAL syntax:Bruce Momjian2005-03-23
| | | | | | | | | | < o Add support for day-time syntax, INTERVAL '1 2:03:04' > o Add support for day-time syntax, INTERVAL '1 2:03:04' 192c192,194 < o Interpret INTERVAL '1:30' MINUTE TO SECOND as '1 minute 30 seconds' > o Interpret syntax that isn't uniquely ANSI or PG, like '1:30' or > '1' as ANSI syntax, e.g. interpret '1:30' MINUTE TO SECOND as > '1 minute 30 seconds'
* Update ANSI INTERVAL section:Bruce Momjian2005-03-23
| | | | | | | | | | | | | | | | | | | | | < * Add support for ANSI time INTERVAL syntax, INTERVAL '1 2:03:04' DAY TO SECOND < * Add support for ANSI date INTERVAL syntax, INTERVAL '20-6' YEAR TO MONTH < * Process mixed ANSI/PG INTERVAL syntax, and round value to requested precision < < Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS INTERVAL < MONTH), and this should return '12 months' < < * Interpret INTERVAL '1:30' MINUTE TO SECOND as '1 minute 30 seconds' > * Add ANSI INTERVAL handling > o Add support for day-time syntax, INTERVAL '1 2:03:04' > DAY TO SECOND > o Add support for year-month syntax, INTERVAL '50-6' YEAR TO MONTH > o Process mixed ANSI/PG syntax, and round value to requested > precision or generate an error > o Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS > INTERVAL MONTH), and this should return '12 months' > o Interpret INTERVAL '1:30' MINUTE TO SECOND as '1 minute 30 seconds' > o Support precision, CREATE TABLE foo (a INTERVAL MONTH(3))
* Add note about risks involved in replaying CREATE TABLESPACE commandsTom Lane2005-03-23
| | | | from WAL. A couple other grammatical improvements too.
* Update numbers in example:Bruce Momjian2005-03-23
| | | | | < * Add support for ANSI date INTERVAL syntax, INTERVAL '9-3' YEAR TO MONTH > * Add support for ANSI date INTERVAL syntax, INTERVAL '20-6' YEAR TO MONTH
* Update:Bruce Momjian2005-03-23
| | | | | < * Add support for ANSI date INTERVAL syntax, INTERVAL '1-2' YEAR TO MONTH > * Add support for ANSI date INTERVAL syntax, INTERVAL '9-3' YEAR TO MONTH
* Adjust CREATE TRIGGER and ALTER TABLE ... ADD FOREIGN KEY to acquireNeil Conway2005-03-23
| | | | | | ExclusiveLock rather than AccessExclusiveLock. This will allow concurrent SELECT queries to proceed on the table. Per discussion with Andrew at SuperNews.
* Add:Bruce Momjian2005-03-23
| | | | > o Add MOVE to PL/pgSQL
* Assign:Bruce Momjian2005-03-23
| | | | > o Update pg_dump and psql to use the new COPY libpq API (Christopher)
* Add:Bruce Momjian2005-03-23
| | | | | > > * Interpret INTERVAL '1:30' MINUTE TO SECOND as '1 minute 30 seconds'
* Add INTERVAL items:Bruce Momjian2005-03-23
| | | | | | | | | > * Add support for ANSI time INTERVAL syntax, INTERVAL '1 2:03:04' DAY TO SECOND > * Add support for ANSI date INTERVAL syntax, INTERVAL '1-2' YEAR TO MONTH > * Process mixed ANSI/PG INTERVAL syntax, and round value to requested precision 184a188,189 > Interpret INTERVAL '1 year' MONTH as CAST (INTERVAL '1 year' AS INTERVAL > MONTH), and this should return '12 months'
* Remove duplicate:Bruce Momjian2005-03-23
| | | | < * Allow a warm standby system to also allow read-only queries