aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* GIN index build's allocatedMemory counter needs to be long, not uint32.Tom Lane2007-11-16
| | | | | | | | | Else, in a 64-bit machine with maintenance_work_mem set to above 4Gb, the counter overflows and we never recognize having reached the maintenance_work_mem limit. I believe this explains out-of-memory failure recently reported by Sean Davis. This is a bug, so backpatch to 8.2.
* Backpatch: Fix tsvector_out() and tsquery_out() to escape backslesh, add ↵Teodor Sigaev2007-11-16
| | | | | | test of that. Patch by Bruce Momjian <bruce@momjian.us>
* Update timezone data files to release 2007i of the zic database.Tom Lane2007-11-15
|
* Have crosstab variants treat NULL rowid as a category in its own right,Joe Conway2007-11-10
| | | | | per suggestion from Tom Lane. This fixes crash-bug reported by Stefan Schwarzer.
* Second pass at improving LIKE/regex estimation in non-C locales. It turnsTom Lane2007-11-09
| | | | | | | | | | out that it's actually quite likely that a string that is an extension of the given prefix will sort as larger than the "greater" string our previous code created. To provide some defense against that, do the comparisons against a modified string instead of just the bare prefix. We tack on "Z", "z", "y", or "9", whichever is seen as largest in the current locale. Testing suggests that this is sufficient at least for cases involving ASCII data.
* If an index depends on no columns of its table, give it a dependency on theTom Lane2007-11-08
| | | | | | | | | whole table instead, to ensure that it goes away when the table is dropped. Per bug #3723 from Sam Mason. Backpatch as far as 7.4; AFAICT 7.3 does not have the issue, because it doesn't have general-purpose expression indexes and so there must be at least one column referenced by an index.
* Improve the performance of LIKE/regex estimation in non-C locales, by makingTom Lane2007-11-07
| | | | | | | | | | | | | | | | make_greater_string() try harder to generate a string that's actually greater than its input string. Before we just assumed that making a string that was memcmp-greater was enough, but it is easy to generate examples where this is not so when the locale is not C. Instead, loop until the relevant comparison function agrees that the generated string is greater than the input. Unfortunately this is probably not enough to guarantee that the generated string is greater than all extensions of the input, so we cannot relax the restriction to C locale for the LIKE/regex index optimization. But it should at least improve the odds of getting a useful selectivity estimate in prefix_selectivity(). Per example from Guillaume Smet. Backpatch to 8.1, mainly because that's what the complainant is using...
* Fix patternsel() and callers to do the right thing for NOT LIKE and the otherTom Lane2007-11-07
| | | | | | | | | | | | | | negated-match operators. patternsel had been using the supplied operator as though it were a positive-match operator, and thus obtaining a wrong result, which was even more wrong after the caller subtracted it from 1. Seems cleanest to give patternsel an explicit "negate" argument so that it knows what's going on. Also install the same factorization scheme for pattern join selectivity estimators; even though they are just stubs at the moment, this may keep someone from making the same type of mistake when they get filled out. Per report from Greg Mullane. Backpatch to 8.2 --- previous releases do not show the problem because patternsel() doesn't actually use the operator directly.
* Fixed two parser bugs.Michael Meskes2007-11-06
|
* Update shared-memory-size info for 8.2 branch.Tom Lane2007-11-01
|
* - Add check of already changed page while replay WAL. This touches onlyTeodor Sigaev2007-10-29
| | | | | | | | | | | | | ginRedoInsert(), because other ginRedo* functions rewrite whole page or make changes which could be applied several times without consistent's loss - Remove check of identifying of corresponding split record: it's possible that replaying of WAL starts after actual page split, but before removing of that split from incomplete splits list. In this case, that check cause FATAL error. Per stress test which reproduces bug reported by Craig McElroy <craig.mcelroy@contegix.com>
* Fix coredump during replay WAL after crash. Change entrySplitPage() to preventTeodor Sigaev2007-10-29
| | | | | | | | usage of any information from system catalog, because it could be called during replay of WAL. Per bug report from Craig McElroy <craig.mcelroy@contegix.com>. Patch doesn't change on-disk storage.
* Fix a couple of issues with pg_dump's handling of inheritance child tablesTom Lane2007-10-28
| | | | | | | | | | | | | | | | | | that have default expressions different from their parent. First, if the parent table's default expression has to be split out as a separate ALTER TABLE command, we need a dependency constraint to ensure that the child's command is given second. This is because the ALTER TABLE on the parent will propagate to the child. (We can't prevent that by using ONLY on the parent's command, since it's possible that other children exist that should receive the inherited default.) Second, if the child has a NULL default where the parent does not, we have to explicitly say DEFAULT NULL on the child in order for this state to be preserved after reload. (The latter actually doesn't work right because of a backend bug, but that is a separate issue.) Backpatch as far as 8.0. 7.x pg_dump has enough issues with altered tables (due to lack of dependency analysis) that trying to fix this one doesn't seem very productive.
* Change have_join_order_restriction() so that we do not force a clauseless joinTom Lane2007-10-26
| | | | | | | | | | | | | | | | if either of the input relations can legally be joined to any other rels using join clauses. This avoids uselessly (and expensively) considering a lot of really stupid join paths when there is a join restriction with a large footprint, that is, lots of relations inside its LHS or RHS. My patch of 15-Feb-2007 had been causing the code to consider joining *every* combination of rels inside such a group, which is exponentially bad :-(. With this behavior, clauseless bushy joins will be done if necessary, but they'll be put off as long as possible. Per report from Jakub Ouhrabka. Backpatch to 8.2. We might someday want to backpatch to 8.1 as well, but 8.1 does not have the problem for OUTER JOIN nests, only for IN-clauses, so it's not clear anyone's very likely to hit it in practice; and the current patch doesn't apply cleanly to 8.1.
* Ugly patch to make ALTER SEQUENCE OWNED BY not affect the currval() stateTom Lane2007-10-25
| | | | | | | | of the sequence. Since OWNED BY never existed before 8.2, this seems unlikely to create any compatibility issues. Other forms of ALTER SEQUENCE continue to do what they did before, namely update currval to match the sequence's actual last_val. That seems wrong on consideration, but we'll not change it in a minor release --- 8.3 will make that fix.
* Fix an error in make_outerjoininfo introduced by my patch of 30-Aug: the codeTom Lane2007-10-24
| | | | | | | | | | | | | neglected to test whether an outer join's join-condition actually refers to the lower outer join it is looking at. (The comment correctly described what was supposed to happen, but the code didn't do it...) This often resulted in adding an unnecessary constraint on the join order of the two outer joins, which was bad enough. However, it also seems to expose a performance problem in an older patch (from 15-Feb): once we've decided that there is a join ordering constraint, we will start trying clauseless joins between every combination of rels within the constraint, which pointlessly eats up lots of time and space if there are numerous rels below the outer join. That probably needs to be revisited :-(. Per gripe from Jakub Ouhrabka.
* Back-patch some plpython patches previously made only in HEAD: changes ofTom Lane2007-10-15
| | | | | | | | 3-Apr and 4-Apr to declare interface functions properly and eliminate casts, thereby fixing potential problems on 64-bit machines; and changes of 13-Jul to volatile-qualify some variables to suppress compiler warnings. Per discussion, we're only worrying about Python 2.5 in PG 8.2 and up, so no need to patch further back.
* Fix ALTER COLUMN TYPE to preserve the tablespace and reloptions of indexesTom Lane2007-10-13
| | | | | | | | | | it affects. The original coding neglected tablespace entirely (causing the indexes to move to the database's default tablespace) and for an index belonging to a UNIQUE or PRIMARY KEY constraint, it would actually try to assign the parent table's reloptions to the index :-(. Per bug #3672 and subsequent investigation. 8.0 and 8.1 did not have reloptions, but the tablespace bug is present.
* Ensure that the result of evaluating a function during constant-expressionTom Lane2007-10-11
| | | | | | | simplification gets detoasted before it is incorporated into a Const node. Otherwise, if an immutable function were to return a TOAST pointer (an unlikely case, but it can be made to happen), we would end up with a plan that depends on the continued existence of the out-of-line toast datum.
* Don't try to free pgpassfile since it's a stack variable.Magnus Hagander2007-10-09
| | | | Martin Pitt
* Keep the planner from failing on "WHERE false AND something IN (SELECT ...)".Tom Lane2007-10-04
| | | | | | | | | | | | eval_const_expressions simplifies this to just "WHERE false", but we have already done pull_up_IN_clauses so the IN join will be done, or at least planned, anyway. The trouble case comes when the sub-SELECT is itself a join and we decide to implement the IN by unique-ifying the sub-SELECT outputs: with no remaining reference to the output Vars in WHERE, we won't have propagated the Vars up to the upper join point, leading to "variable not found in subplan target lists" error. Fix by adding an extra scan of in_info_list and forcing all Vars mentioned therein to be propagated up to the IN join point. Per bug report from Miroslav Sulc.
* Update timezone data files to release 2007h of the zic database.Tom Lane2007-10-04
| | | | Might as well have the latest when we wrap 8.3beta1.
* Disallow CLUSTER using an invalid index (that is, one left over from a failedTom Lane2007-09-29
| | | | | | CREATE INDEX CONCURRENTLY). Such an index might not have entries for every heap row and thus clustering with it would result in silent data loss. The scenario requires a pretty foolish DBA, but still ...
* Defend against openssl libraries that fail on keys longer than 128 bits;Tom Lane2007-09-29
| | | | which is the case at least on some Solaris versions. Marko Kreen
* Make archive recovery always start a new timeline, rather than only when aTom Lane2007-09-29
| | | | | | | recovery stop time was used. This avoids a corner-case risk of trying to overwrite an existing archived copy of the last WAL segment, and seems simpler and cleaner all around than the original definition. Per example from Jon Colverson and subsequent analysis by Simon.
* Fix Assert failure in ExpandColumnRefStar --- what I thought was a can'tTom Lane2007-09-27
| | | | | | | | | happen condition can happen given incorrect input. The real problem is that gram.y should try harder to distinguish * from "*" --- the latter is a legal column name per spec, and someday we ought to treat it that way. However fixing that is too invasive for a back-patch, and it's too late for the 8.3 cycle too. So just reduce the Assert to a plain elog for now. Per report from NikhilS.
* Fix crash of to_tsvector() function on huge input: compareWORD()Teodor Sigaev2007-09-26
| | | | | | | function didn't return correct result for word position greate than limit. Per report from Stuart Bishop <stuart@stuartbishop.net>
* Reduce the size of memory allocations by lazy vacuum when processing a smallAlvaro Herrera2007-09-24
| | | | | | | | | | | | | | | | table, by allocating just enough for a hardcoded number of dead tuples per page. The current estimate is 200 dead tuples per page. Per reports from Jeff Amiel, Erik Jones and Marko Kreen, and subsequent discussion. CVS: ---------------------------------------------------------------------- CVS: Enter Log. Lines beginning with `CVS:' are removed automatically CVS: CVS: Committing in . CVS: CVS: Modified Files: CVS: commands/vacuumlazy.c CVS: ----------------------------------------------------------------------
* Fix erroneous Assert() in syslogger process start in EXEC_BACKEND case,Tom Lane2007-09-22
| | | | | per ITAGAKI Takahiro. Also, rewrite syslogger_forkexec() in hopes of eliminating the confusion in the first place.
* Fix bogus calculation of potential output string length in translate().Tom Lane2007-09-22
|
* Prevent corr() from returning the wrong results for negative correlationNeil Conway2007-09-19
| | | | | | | | values. The previous coding essentially assumed that x = sqrt(x*x), which does not hold for x < 0. Thanks to Jie Zhang at Greenplum and Gavin Sherry for reporting this issue.
* Fix overflow in extract(epoch from interval) for intervals exceeding 68 years.Tom Lane2007-09-16
| | | | | Seems to have been introduced in 8.1 by careless SECS_PER_DAY search-and-replace.
* Update release notes for last-minute fix.REL8_2_5Tom Lane2007-09-16
|
* Fix aboriginal mistake in lazy VACUUM's code for truncating awayTom Lane2007-09-16
| | | | | | | | | | | | | no-longer-needed pages at the end of a table. We thought we could throw away pages containing HEAPTUPLE_DEAD tuples; but this is not so, because such tuples very likely have index entries pointing at them, and we wouldn't have removed the index entries. The problem only emerges in a somewhat unlikely race condition: the dead tuples have to have been inserted by a transaction that later aborted, and this has to have happened between VACUUM's initial scan of the page and then rechecking it for empty in count_nondeletable_pages. But that timespan will include an index-cleaning pass, so it's not all that hard to hit. This seems to explain a couple of previously unsolved bug reports.
* update configure for 8.2.5 ...Marc G. Fournier2007-09-14
|
* Fix markup that doesn't work in back branches.Tom Lane2007-09-14
|
* Minor editorialization on release notes.Tom Lane2007-09-14
|
* Fix missed version-stamping.Tom Lane2007-09-14
|
* Clarify tar documentation about return error codes.Bruce Momjian2007-09-14
| | | | Backpatch to 8.2.X.
* Update GNU tar error code documentation.Bruce Momjian2007-09-14
| | | | Backpatch to 8.2.X.
* Remove ill-considered (not to mention undocumented) attempt to makeTom Lane2007-09-14
| | | | | contrib/intarray's GIN opclass override the built-in default. Per bug #3048 and other complaints.
* Translation updatesPeter Eisentraut2007-09-13
|
* Update Japanese FAQ, backpatch.Bruce Momjian2007-09-13
| | | | Jun Kuwamura
* Update Japanese FAQ to current release number.Bruce Momjian2007-09-12
|
* Add a CHECK_FOR_INTERRUPTS call in the site where the vacuum delay pointAlvaro Herrera2007-09-12
| | | | was removed.
* Sync timezone data with 2007g zic release.Tom Lane2007-09-11
|
* Stamp releases 8.2.5, 8.1.10, 8.0.14, 7.4.18, 7.3.20.Bruce Momjian2007-09-11
| | | | Update FAQs for 8.2.5.
* StampBruce Momjian2007-09-11
|
* Make sure that open hash table scans are cleaned up when bgwriter tries toTom Lane2007-09-11
| | | | | | | | recover from elog(ERROR). Problem was created by introduction of hash seq search tracking awhile back, and affects all branches that have bgwriter; in HEAD the disease has snuck into autovacuum and walwriter too. (Not sure that the latter two use hash_seq_search at the moment, but surely they might someday.) Per report from Sergey Koposov.
* Fix header's size of structs defines in ispell.Teodor Sigaev2007-09-11
|