aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* After conferencing again with Bruce, put in more accurate XML error message.Peter Eisentraut2007-11-08
|
* Adjust test results for message changes. Darn.Peter Eisentraut2007-11-08
|
* Wording changesPeter Eisentraut2007-11-08
|
* Add sentence-ending periods.Peter Eisentraut2007-11-08
|
* Improve error messagePeter Eisentraut2007-11-08
|
* Add missing newlines to error messages, and normalize wording a bit.Peter Eisentraut2007-11-08
|
* 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.
* Consistent capitalizationPeter Eisentraut2007-11-07
|
* Improve wordingPeter Eisentraut2007-11-07
|
* Error message cleanupPeter Eisentraut2007-11-07
|
* Use "alternative" instead of "alternate" where it is clearer.Peter Eisentraut2007-11-07
|
* Fixed two parser bugs.Michael Meskes2007-11-06
|
* Some code review for xml.c:Tom Lane2007-11-06
| | | | | | | | | | | | | | Add some more xml_init() calls that might not be necessary, but seem like a good idea to avoid possible problems like we saw in xmlelement(). Fix unsafe assumption that you can keep using the tupledesc of a relcache entry you don't have open. Add missing error checks for SearchSysCache failure. Get rid of handwritten array traversal in xpath() and O(N^2), broken-for-nulls array access code in map_sql_value_to_xml_value(), in favor of using deconstruct_array. Manually adjust a lot of line breaks in places where the code is otherwise gonna look pretty awful after pg_indent hacks it up (original author seems to have liked to lay out code for a 200-column window).
* Fix xmlelement() to initialize libxml correctly before using it, and to avoidTom Lane2007-11-05
| | | | | | | | | | assuming that evaluation of its input expressions won't change the state of libxml. This requires refactoring xml_init() to not call xmlInitParser(), since now not all of its callers want that. I also tweaked things to avoid repeated execution of one-time-only tests inside xml_init(), though this is mostly for clarity rather than in hopes of saving any noticeable amount of runtime. Per report from Sheikh Amjad and subsequent discussion. In passing, fix a couple of inadequately schema-qualified queries.
* Fix deprecated-by-C-spec usage: storage class should come before constTom Lane2007-11-05
| | | | decoration. Zdenek Kotala
* Improve conversion of legacy CREATE CONSTRAINT TRIGGER representation ofTom Lane2007-11-05
| | | | | | | | | | | | | | | | | | foreign keys, one more time. Insist on matching up all three triggers before we create a constraint; this will avoid creation of duplicate constraints in scenarios where a broken FK constraint was repaired by re-adding the constraint without removing the old partial trigger set. Basically, this will work nicely in all cases where the FK was actually functioning correctly in the database that was dumped. It will fail to restore an FK in just one case where we theoretically could restore it: where we find the referenced table's triggers and not the referencing table's trigger. However, in such a scenario it's likely that the user doesn't even realize he still has an FK at all (since the more-likely-to-fail cases aren't enforced), and we'd probably not accomplish much except to cause the reload to fail because the data doesn't meet the FK constraint. Also make the NOTICE logging still more verbose, by adding detail about which of the triggers were found. This seems about all we can do without solving the problem of getting the user's attention at session end.
* Document that configure option only affects contrib:Bruce Momjian2007-11-05
| | | | --with-ossp-uuid use OSSP UUID library when building /contrib/uuid-ossp
* Properly pass third argument to open() in fsync test program.Bruce Momjian2007-11-05
| | | | Hiroshi Saito
* Add a note about another issue that needs to be considered beforeTom Lane2007-11-05
| | | | changing the TOAST size thresholds.
* Use LOG instead of DEBUG2 for logging invalid cancel requests. (That is,Neil Conway2007-11-05
| | | | | cancel requests with an incorrect key, or with a non-existent PID). Per recent discussion on -hackers.
* Minor improvements to code for converting legacy CREATE CONSTRAINT TRIGGERTom Lane2007-11-04
| | | | | | | | | | | commands into proper foreign-key constraints. Believe the constraint name given in the trigger arguments in preference to the trigger name --- to judge from Olivier Prenant's example, pg_dump must at some time have used the autogenerated trigger name there, though AFAICT no current release branch tip does. Improve the emitted NOTICEs to provide more detail (PK table's name and column names). Handle the case where pg_dump forgot to provide the FROM table (a bug that never did get fixed in 7.0.x apparently). This commit doesn't do anything about the question of what to do with incomplete trigger groups.
* Prevent continuing disk-space bloat when profiling (with PROFILE_PID_DIRTom Lane2007-11-04
| | | | | | | | | | enabled) and autovacuum is on. Since there will be a steady stream of autovac worker processes exiting and dropping gmon.out files, allowing them to make separate subdirectories results in serious bloat; and it seems unlikely that anyone will care about those profiles anyway. Limit the damage by forcing all autovac workers to dump in one subdirectory, PGDATA/gprof/avworker/. Per report from Jšrg Beyer and subsequent discussion.
* Teach CREATE CONSTRAINT TRIGGER to convert old-style foreign keyTom Lane2007-11-04
| | | | | | | | trigger definitions into regular foreign key constraints. This seems necessary given that some people evidently never did get around to running adddepend on their schemas, and without some sort of hack the old definitions will no longer work. Per report from Olivier Prenant and subsequent investigation.
* Ensure that EquivalenceClasses generated from ORDER BY keys contain properTom Lane2007-11-02
| | | | | | | | | RelabelType nodes when the sort key is binary-compatible with the sort operator rather than having exactly its input type. We did this correctly for index columns but not sort keys, leading to failure to notice that a varchar index matches an ORDER BY request. This requires a bit more work in make_sort_from_pathkeys, but not anyplace else that I can find. Per bug report and subsequent discussion.
* More precise error messagePeter Eisentraut2007-10-31
|
* removed from CVSMarc G. Fournier2007-10-30
|
* simple script to pull together a very small (<500k) tar file that buildsMarc G. Fournier2007-10-30
| | | | | | | | | *just* libpq ... its not perfect, as it pulls in more files then is necessarily required to build, but as it is, it requires one simple patch to configure.in in order to work ... Tested on FreeBSD ... patch for configure.in hasn't been applied, but putting the script in place so that it doesn't get lost ...
* In the previous commit message, I forgot to credit Simon Riggs who providedAlvaro Herrera2007-10-29
| | | | the patch, which I modified only slightly before applying.
* Mention the index name in 'could not create unique index' errors,Tom Lane2007-10-29
| | | | per suggestion from Rene Gollent.
* Remove the hack in the grammar that "optimized away" DEFAULT NULL clauses.Tom Lane2007-10-29
| | | | | | | | | | | | | | | 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.
* - 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>
* Make variable static, per Tom.Magnus Hagander2007-10-29
|
* 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.
* Add compat file for dynamically loading the functions that MinGW is missingMagnus Hagander2007-10-29
| | | | | the imports for. Add RegisterWaitForSingleObject() to the list of such functions, which should take care of the current buildfarm breakage.
* New versions of mingw have gettimeofday(), so add an autoconf testMagnus Hagander2007-10-29
| | | | for this.
* Make pg_dump and friends consistently report both the filename and theTom Lane2007-10-28
| | | | | | errno string when complaining of fopen failures. Per gripe from Bob Pawley, it's not always instantly obvious to the user which name we tried to open.
* 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 text search parsing rules for hyphenated words so that digit stringsTom Lane2007-10-27
| | | | | | | 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.
* Add some rudimentary tracing code to the default text search parser, to helpTom Lane2007-10-27
| | | | | | in debugging its state-machine rules. Const-ify all the constant tables. Minor other code cleanup, including using "token" rather than "lexeme" to describe the output strings.
* Rename default text search parser's "uri" token type to "url_path",Tom Lane2007-10-27
| | | | | | 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.
* Avoid considering both sort directions as equally useful for merging.Tom Lane2007-10-27
| | | | | | | | | This doubles the planning workload for mergejoins while not actually accomplishing much. The only useful case is where one of the directions matches the query's ORDER BY request; therefore, put a thumb on the scales in that direction, and otherwise arbitrarily consider only the ASC direction. (This is a lot easier now than it would've been before 8.3, since we have more semantic knowledge embedded in PathKeys now.)
* Stamp 8.3beta2.REL8_3_BETA2Tom Lane2007-10-27
|
* Translation updatesPeter Eisentraut2007-10-27
|
* Change win32 child-death tracking code to use a threadpool to wait forMagnus Hagander2007-10-26
| | | | | | | | childprocess deaths instead of using one thread per child. This drastastically reduces the address space usage and should allow for more backends running. Also change the win32_waitpid functionality to use an IO Completion Port for queueing child death notices instead of using a fixed-size array.
* Allow an autovacuum worker to be interrupted automatically when it is foundAlvaro Herrera2007-10-26
| | | | | to be locking another process (except when it's working to prevent Xid wraparound problems).
* 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.
* Avoid having backend-only code compiled into ecpg. Per Zdenek KotalaTom Lane2007-10-26
|
* Avoid including any backend-only stuff in the zic utility program.Tom Lane2007-10-26
| | | | Per gripe from Zdenek Kotala, though not exactly his patch.
* Make initdb's selection of default text search configuration dependTom Lane2007-10-25
| | | | | | only on the 'language' part of the locale name, ignoring the country code. We may need to be smarter later when there are more built-in configurations, but for now this is good enough and avoids having to bloat the table.