summaryrefslogtreecommitdiff
path: root/src/test
AgeCommit message (Collapse)Author
2008-01-19Make pg_regress clean out the testtablespace directory only on Windows.Tom Lane
On other platforms it's better to let the Makefile handle it, but we want the regression tests to be invokable without make on Windows. A batch file would be a better solution, but no time for that before 8.3. Per my discovery that this breaks testing under SELinux, and subsequent discussion.
2008-01-13Fix a regression test that fails if default_text_search_config isn'tTom Lane
'english'.
2008-01-11The original implementation of polymorphic aggregates didn't really get theTom Lane
checking of argument compatibility right; although the problem is only exposed with multiple-input aggregates in which some arguments are polymorphic and some are not. Per bug #3852 from Sokolov Yura.
2008-01-09Fix some planner issues found while investigating Kevin Grittner's reportTom Lane
of poorer planning in 8.3 than 8.2: 1. After pushing a constant across an outer join --- ie, given "a LEFT JOIN b ON (a.x = b.y) WHERE a.x = 42", we can deduce that b.y is sort of equal to 42, in the sense that we needn't fetch any b rows where it isn't 42 --- loop to see if any additional deductions can be made. Previous releases did that by recursing, but I had mistakenly thought that this was no longer necessary given the EquivalenceClass machinery. 2. Allow pushing constants across outer join conditions even if the condition is outerjoin_delayed due to a lower outer join. This is safe as long as the condition is strict and we re-test it at the upper join. 3. Keep the outer-join clause even if we successfully push a constant across it. This is *necessary* in the outerjoin_delayed case, but even in the simple case, it seems better to do this to ensure that the join search order heuristics will consider the join as reasonable to make. Mark such a clause as having selectivity 1.0, though, since it's not going to eliminate very many rows after application of the constant condition. 4. Tweak have_relevant_eclass_joinclause to report that two relations are joinable when they have vars that are equated to the same constant. We won't actually generate any joinclause from such an EquivalenceClass, but again it seems that in such a case it's a good idea to consider the join as worth costing out. 5. Fix a bug in select_mergejoin_clauses that was exposed by these changes: we have to reject candidate mergejoin clauses if either side was equated to a constant, because we can't construct a canonical pathkey list for such a clause. This is an implementation restriction that might be worth fixing someday, but it doesn't seem critical to get it done for 8.3.
2008-01-01Update copyrights in source tree to 2008.Bruce Momjian
2007-12-10Fix attribution for Rime of the Ancient Mariner (obviously it's beenTom Lane
too long since freshman English :-()
2007-12-09The E. J. Pratt verse used as a tsearch test case is unfortunately stillTom Lane
under copyright in the US and many other places. Substitute a little something from a poet who's more safely dead. Per gripe from Bjorn Munch.
2007-12-01Code review for LIKE ... INCLUDING INDEXES patch. Fix failure to propagateTom Lane
constraint status of copied indexes (bug #3774), as well as various other small bugs such as failure to pstrdup when needed. Allow INCLUDING INDEXES indexes to be merged with identical declared indexes (perhaps not real useful, but the code is there and having it not apply to LIKE indexes seems pretty unorthogonal). Avoid useless work in generateClonedIndexStmt(). Undo some poorly chosen API changes, and put a couple of routines in modules that seem to be better places for them.
2007-11-30Avoid incrementing the CommandCounter when CommandCounterIncrement is calledTom Lane
but no database changes have been made since the last CommandCounterIncrement. This should result in a significant improvement in the number of "commands" that can typically be performed within a transaction before hitting the 2^32 CommandId size limit. In particular this buys back (and more) the possible adverse consequences of my previous patch to fix plan caching behavior. The implementation requires tracking whether the current CommandCounter value has been "used" to mark any tuples. CommandCounter values stored into snapshots are presumed not to be used for this purpose. This requires some small executor changes, since the executor used to conflate the curcid of the snapshot it was using with the command ID to mark output tuples with. Separating these concepts allows some small simplifications in executor APIs. Something for the TODO list: look into having CommandCounterIncrement not do AcceptInvalidationMessages. It seems fairly bogus to be doing it there, but exactly where to do it instead isn't clear, and I'm disinclined to mess with asynchronous behavior during late beta.
2007-11-30Repair bug that allowed RevalidateCachedPlan to attempt to rebuild a cachedTom Lane
plan before the effects of DDL executed in an immediately prior SPI operation had been absorbed. Per report from Chris Wood. This patch has an unpleasant side effect of causing the number of CommandCounterIncrement()s done by a typical plpgsql function to approximately double. Amelioration of the consequences of that will be undertaken in a separate patch.
2007-11-27Fix pg_regress to check the directory it is actually reading files from,Tom Lane
not the image that (theoretically) should exist in the current directory. Jørgen Austvik
2007-11-27Make casts from xml to text independent of the XML option setting, thusPeter Eisentraut
immutable and indexable. Also fix the volatility settings of some other XML-related functions.
2007-11-26Fix select_common_type() so that it can select a domain type, if all inputsTom Lane
to a UNION, CASE, or related construct are of the same domain type. The main part of this routine smashes domains to their base types, which seems necessary because the logic involves TypeCategory() and IsPreferredType(), neither of which work usefully on domains. However, we can add a first pass that just detects whether all the inputs are exactly the same type, and if so accept that without question (so long as it's not UNKNOWN). Per recent gripe from Dean Rasheed. In passing, remove some tests for InvalidOid, which have clearly been dead code for quite some time now, because getBaseType() would fail on that input. Also, clarify the manual's not-very-precise description of the existing algorithm's behavior.
2007-11-25Fix XML tag namespace change inadvertantly missed from previous fix. AddAndrew Dunstan
regression test for XML names and numeric entities.
2007-11-24Add missed entry for new money regression test.Tom Lane
2007-11-24Add regression tests for MONEY type.D'Arcy J.M. Cain
2007-11-20Change descriptions of entity and tag objects to "XML entity" and "XML tag".Andrew Dunstan
Allow tag and entity names that follow XML rules. Provide for hexadecimal as well as decimal numeric entities. Adjust code names to coincide with new descriptions.
2007-11-16Fix tsvectorout() and tsqueryout() to escape backslesh, add test of that.Teodor Sigaev
Patch by Bruce Momjian <[email protected]> Backpatch is needed, but it's impossible to apply it directly
2007-11-15pgindent run for 8.3.Bruce Momjian
2007-11-10Have text search thesaurus files use "?" for stop words.Bruce Momjian
Throw an error for actual stop words, rather than a warning. This fixes problems with cache reloading causing warning messages. Re-enable stop words in regression tests; was disabled by Tom. Document "?" as API change.
2007-11-10Reduce error level of ROLLBACK outside a transaction from WARNING toBruce Momjian
NOTICE.
2007-11-09Add an expected-results file to get regression to pass cleanly in sv_SETom Lane
locale, which sorts a bit differently. Per recent gripe from Magnus.
2007-11-09Allow XML processing instructions starting with "xml" while prohibitingPeter Eisentraut
those being exactly "xml". Bug #3735 from Ben Leslie
2007-11-08After conferencing again with Bruce, put in more accurate XML error message.Peter Eisentraut
2007-11-08Adjust test results for message changes. Darn.Peter Eisentraut
2007-11-07Use "alternative" instead of "alternate" where it is clearer.Peter Eisentraut
2007-10-29Mention the index name in 'could not create unique index' errors,Tom Lane
per suggestion from Rene Gollent.
2007-10-29Remove the hack in the grammar that "optimized away" DEFAULT NULL clauses.Tom Lane
Instead put in a test to drop a NULL default at the last moment before storing the catalog entry. This changes the behavior in a couple of ways: * Specifying DEFAULT NULL when creating an inheritance child table will successfully suppress inheritance of any default expression from the parent's column, where formerly it failed to do so. * Specifying DEFAULT NULL for a column of a domain type will correctly override any default belonging to the domain; likewise for a sub-domain. The latter change happens because by the time the clause is checked, it won't be a simple null Const but a CoerceToDomain expression. Personally I think this should be back-patched, but there doesn't seem to be consensus for that on pgsql-hackers, so refraining.
2007-10-27Change text search parsing rules for hyphenated words so that digit stringsTom Lane
containing decimal points aren't considered part of a hyphenated word. Sync the hyphenated-word lookahead states with the subsequent part-by-part reparsing states so that we don't get different answers about how much text is part of the hyphenated word. Per my gripe of a few days ago.
2007-10-27Rename default text search parser's "uri" token type to "url_path",Tom Lane
per recommendation from Alvaro. This doesn't force initdb since the numeric token type in the catalogs doesn't change; but note that the expected regression test output changed.
2007-10-24Disallow scrolling of FOR UPDATE/FOR SHARE cursors, so as to avoid problemsTom Lane
in corner cases such as re-fetching a just-deleted row. We may be able to relax this someday, but let's find out how many people really care before we invest a lot of work in it. Per report from Heikki and subsequent discussion. While in the neighborhood, make the combination of INSENSITIVE and FOR UPDATE throw an error, since they are semantically incompatible. (Up to now we've accepted but just ignored the INSENSITIVE option of DECLARE CURSOR.)
2007-10-24Fix UPDATE/DELETE WHERE CURRENT OF to support repeated update and update-Tom Lane
then-delete on the current cursor row. The basic fix is that nodeTidscan.c has to apply heap_get_latest_tid() to the current-scan-TID obtained from the cursor query; this ensures we get the latest row version to work with. However, since that only works if the query plan is a TID scan, we also have to hack the planner to make sure only that type of plan will be selected. (Formerly, the planner might decide to apply a seqscan if the table is very small. This change is probably a Good Thing anyway, since it's hard to see how a seqscan could really win.) That means the execQual.c code to support CurrentOfExpr as a regular expression type is dead code, so replace it with just an elog(). Also, add regression tests covering these cases. Note that the added tests expose the fact that re-fetching an updated row misbehaves if the cursor used FOR UPDATE. That's an independent bug that should be fixed later. Per report from Dharmendra Goyal.
2007-10-24Remove the aggregate form of ts_rewrite(), since it doesn't work as desiredTom Lane
if there are zero rows to aggregate over, and the API seems both conceptually and notationally ugly anyway. We should look for something that improves on the tsquery-and-text-SELECT version (which is also pretty ugly but at least it works...), but it seems that will take query infrastructure that doesn't exist today. (Hm, I wonder if there's anything in or near SQL2003 window functions that would help?) Per discussion.
2007-10-23Rename and slightly redefine the default text search parser's "word"Tom Lane
categories, as per discussion. asciiword (formerly lword) is still ASCII-letters-only, and numword (formerly word) is still the most general mixed-alpha-and-digits case. But word (formerly nlword) is now any-group-of-letters-with-at-least-one-non-ASCII, rather than all-non-ASCII as before. This is no worse than before for parsing mixed Russian/English text, which seems to have been the design center for the original coding; and it should simplify matters for parsing most European languages. In particular it will not be necessary for any language to accept strings containing digits as being regular "words". The hyphenated-word categories are adjusted similarly.
2007-10-23Fix two-argument form of ts_rewrite() so it actually works for cases whereTom Lane
a later rewrite rule should change a subtree modified by an earlier one. Per my gripe of a few days ago.
2007-10-13Migrate the former contrib/txid module into core. This will make it easierTom Lane
for Slony and Skytools to depend on it. Per discussion.
2007-10-13Strengthen type_sanity's check on pg_type.typarray. It failed toTom Lane
complain about types that didn't have typarray set. Noted while working on txid patch.
2007-10-11Fix the plan-invalidation mechanism to treat regclass constants that refer toTom Lane
a relation as a reason to invalidate a plan when the relation changes. This handles scenarios such as dropping/recreating a sequence that is referenced by nextval('seq') in a cached plan. Rather than teach plancache.c all about digging through plan trees to find regclass Consts, we charge the planner's setrefs.c with making a list of the relation OIDs on which each plan depends. That way the list can be built cheaply during a plan tree traversal that has to happen anyway. Per bug #3662 and subsequent discussion.
2007-09-25Just-in-time background writing strategy. This code avoids re-scanningTom Lane
buffers that cannot possibly need to be cleaned, and estimates how many buffers it should try to clean based on moving averages of recent allocation requests and density of reusable buffers. The patch also adds a couple more columns to pg_stat_bgwriter to help measure the effectiveness of the bgwriter. Greg Smith, building on his own work and ideas from several other people, in particular a much older patch from Itagaki Takahiro.
2007-09-24Simplify and rename some GUC variables, per various recent discussions:Tom Lane
* stats_start_collector goes away; we always start the collector process, unless prevented by a problem with setting up the stats UDP socket. * stats_reset_on_server_start goes away; it seems useless in view of the availability of pg_stat_reset(). * stats_block_level and stats_row_level are merged into a single variable "track_counts", which controls all reports sent to the collector process. * stats_command_string is renamed to track_activities. * log_autovacuum is renamed to log_autovacuum_min_duration to better reflect its meaning. The log_autovacuum change is not a compatibility issue since it didn't exist before 8.3 anyway. The other changes need to be release-noted.
2007-09-24Remove "convert 'blah' using conversion_name" facility, because if itAndrew Dunstan
produces text it is an encoding hole and if not it's incompatible with the spec, whatever the spec means (which we're not sure about anyway).
2007-09-23Temporarily modify tsearch regression tests to suppress notice that comesTom Lane
out at erratic times, because it is creating a totally unacceptable level of noise in our buildfarm results. This patch can be reverted when and if the code is fixed to not issue notices during cache reload events.
2007-09-20HOT updates. When we update a tuple without changing any of its indexedTom Lane
columns, and the new version can be stored on the same heap page, we no longer generate extra index entries for the new version. Instead, index searches follow the HOT-chain links to ensure they find the correct tuple version. In addition, this patch introduces the ability to "prune" dead tuples on a per-page basis, without having to do a complete VACUUM pass to recover space. VACUUM is still needed to clean up dead index entries, however. Pavan Deolasee, with help from a bunch of other people.
2007-09-11Add regression tests for ispell, synonym and thesaurus dictionaries.Teodor Sigaev
Rename synonym.syn.sample and thesaurs.ths.sample to synonym_sample.syn and thesaurs_sample.ths accordingly to be able to use they in regression test. Ispell dictionary uses synthetic simple dictionary files.
2007-09-11Rename recently-added pg_stat_activity column from txn_start to xact_start,Tom Lane
for consistency with other column names such as in pg_stat_database.
2007-09-11Arrange for SET LOCAL's effects to persist until the end of the current topTom Lane
transaction, unless rolled back or overridden by a SET clause for the same variable attached to a surrounding function call. Per discussion, these seem the best semantics. Note that this is an INCOMPATIBLE CHANGE: in 8.0 through 8.2, SET LOCAL's effects disappeared at subtransaction commit (leading to behavior that made little sense at the SQL level). I took advantage of the opportunity to rewrite and simplify the GUC variable save/restore logic a little bit. The old idea of a "tentative" value is gone; it was a hangover from before we had a stack. Also, we no longer need a stack entry for every nesting level, but only for those in which a variable's value actually changed.
2007-09-09fix typo in regression Makefile.Andrew Dunstan
2007-09-09Provide for a file specifying non-standard config options for temp installAndrew Dunstan
for pg_regress, via --temp-config option. Pick this up in the make file via TEMP_CONFIG setting.
2007-09-05Implement lazy XID allocation: transactions that do not modify any databaseTom Lane
rows will normally never obtain an XID at all. We already did things this way for subtransactions, but this patch extends the concept to top-level transactions. In applications where there are lots of short read-only transactions, this should improve performance noticeably; not so much from removal of the actual XID-assignments, as from reduction of overhead that's driven by the rate of XID consumption. We add a concept of a "virtual transaction ID" so that active transactions can be uniquely identified even if they don't have a regular XID. This is a much lighter-weight concept: uniqueness of VXIDs is only guaranteed over the short term, and no on-disk record is made about them. Florian Pflug, with some editorialization by Tom.
2007-09-03Add an ORDER BY to nail down the expected row order from a query that'sTom Lane
been shown to be sensitive to concurrent autovacuum. Per Alvaro.