aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Improve memory management code to avoid inefficient behavior when a contextTom Lane2006-12-27
| | | | | | | | | | | | | | | has a small maxBlockSize: the maximum request size that we will treat as a "chunk" needs to be limited to fit in maxBlockSize. Otherwise we will round up the request size to the next power of 2, wasting space, which is a bit pointless if we aren't going to make the blocks big enough to fit additional stuff in them. The example motivating this is local buffer management, which makes repeated allocations of 8K (one BLCKSZ buffer) in TopMemoryContext, which has maxBlockSize = 8K because for the most part allocations there are small. This leads to each local buffer actually eating 16K of space, which adds up when there are thousands of them. I intend to change localbuf.c to aggregate its requests, which will prevent this particular misbehavior, but it seems likely that similar scenarios could arise elsewhere, so fixing the core problem seems wise as well.
* Print combining characters (those reported as having zero width byTom Lane2006-12-27
| | | | | | PQdsplen()) normally, instead of replacing them by \uXXXX sequences. Assume that they in fact occupy zero screen space for formatting purposes. Per gripe from Michael Fuhr and ensuing discussion.
* Use FROM clause in example UPDATE commands where appropriate. AlsoTom Lane2006-12-27
| | | | | remove long-obsolete statement that there isn't a check for infinite recursion in view rules.
* Use "dead" rather than "expired" for vacuumable rows.Bruce Momjian2006-12-27
|
* Fix failure due to accessing an already-freed tuple descriptor in a planTom Lane2006-12-26
| | | | | | | | | | | | involving HashAggregate over SubqueryScan (this is the known case, there may well be more). The bug is only latent in releases before 8.2 since they didn't try to access tupletable slots' descriptors during ExecDropTupleTable. The least bogus fix seems to be to make subqueries share the parent query's memory context, so that tupdescs they create will have the same lifespan as those of the parent query. There are comments in the code envisioning going even further by not having a separate child EState at all, but that will require rethinking executor access to range tables, which I don't want to tackle right now. Per bug report from Jean-Pierre Pelletier.
* Repair bug #2839: the various ExecReScan functions need to resetTom Lane2006-12-26
| | | | | | | | | ps_TupFromTlist in plan nodes that make use of it. This was being done correctly in join nodes and Result nodes but not in any relation-scan nodes. Bug would lead to bogus results if a set-returning function appeared in the targetlist of a subquery that could be rescanned after partial execution, for example a subquery within EXISTS(). Bug has been around forever :-( ... surprising it wasn't reported before.
* Repair bug #2836: SPI_execute_plan returned zero if none of the querytreesTom Lane2006-12-26
| | | | | | | | | were marked canSetTag. While it's certainly correct to return the result of the last one that is marked canSetTag, it's less clear what to do when none of them are. Since plpgsql will complain if zero is returned, the 8.2.0 behavior isn't good. I've fixed it to restore the prior behavior of returning the physically last query's result code when there are no canSetTag queries.
* Remove incorrect semicolon in example. Joachim WielandTom Lane2006-12-26
|
* Fix memory reallocation conditionTeodor Sigaev2006-12-26
|
* Call srandom() instead of srand().Tatsuo Ishii2006-12-26
| | | | | | | pgbench calls random() later, so it should have called srandom(). On most platforms except Windows srandom() is actually identical to srand(), so the bug only bites Windows users. per bug report from Akio Ishida.
* Make HISTCONTROL=ignoredups work again (broken by misordering ofTom Lane2006-12-24
| | | | operations during recent code refactoring). Per bug #2840 from Ned Crigler.
* Bring some order and sanity to error handling in the xml patch.Tom Lane2006-12-24
| | | | | | | | | | | Use a TRY block instead of (inadequate) ad-hoc coding to ensure that libxml is cleaned up after a failure. Report the intended SQLCODE instead of defaulting to XX000. Avoid risking use of a dangling pointer by keeping the persistent error buffer in TopMemoryContext. Be less trusting that error messages don't contain %. This patch doesn't do anything about changing the way the messages are put together --- this is just about mechanism.
* Fix machine-dependent crash in sqlchar_to_unicode(). Get rid ofTom Lane2006-12-24
| | | | | | | bletcherous and unsafe manipulation of global encoding setting. Clean up libxml reporting mechanism a bit (it still looks like a dangling-pointer crash waiting to happen, though, not to mention being far less than sane from a localization standpoint).
* Code review for XML patch. Instill a bit of sanity in the location ofTom Lane2006-12-24
| | | | | | | the XmlExpr code in various lists, use a representation that has some hope of reverse-listing correctly (though it's still a de-escaping function shy of correctness), generally try to make it look more like Postgres coding conventions.
* Suppress various compiler warnings in new xml code.Tom Lane2006-12-23
|
* Remove unnecessary parentheses in if() statements.Bruce Momjian2006-12-23
|
* Change a VACUUM manual page word from 'deleted' to 'expired', so DELETEBruce Momjian2006-12-23
| | | | and UPDATE are clearly covered by the term.
* Document that CREATE TYPE names should not begin with an underscore,Bruce Momjian2006-12-23
| | | | rather than being disallowed.
* For GUC values, check for partial string matches on 'on' and 'off', butBruce Momjian2006-12-23
| | | | | | require at least two characters for uniqueness. This now matches the behavior of other boolean strings we support, per report from Gurjeet Singh.
* Restructure operator classes to allow improved handling of cross-data-typeTom Lane2006-12-23
| | | | | | | | | | | | | | | | cases. Operator classes now exist within "operator families". While most families are equivalent to a single class, related classes can be grouped into one family to represent the fact that they are semantically compatible. Cross-type operators are now naturally adjunct parts of a family, without having to wedge them into a particular opclass as we had done originally. This commit restructures the catalogs and cleans up enough of the fallout so that everything still works at least as well as before, but most of the work needed to actually improve the planner's behavior will come later. Also, there are not yet CREATE/DROP/ALTER OPERATOR FAMILY commands; the only way to create a new family right now is to allow CREATE OPERATOR CLASS to make one by default. I owe some more documentation work, too. But that can all be done in smaller pieces once this infrastructure is in place.
* Add a link to the developer's FAQ for my article about how companies canBruce Momjian2006-12-22
| | | | work effectively with open source communities.
* Slight adjustments to xml documentation to reflect functionality justBruce Momjian2006-12-22
| | | | added.
* Fix expected file.Peter Eisentraut2006-12-21
|
* Catalog version bump for SQL/XML changes.Peter Eisentraut2006-12-21
|
* Fix convertion for 'PFX flag N num'Teodor Sigaev2006-12-21
|
* Initial SQL/XML support: xml data type and initial set of functions.Peter Eisentraut2006-12-21
|
* 8.3 release schedule is year 2007, not 2006.Bruce Momjian2006-12-20
|
* Add timeline for next release to developer's FAQ.Bruce Momjian2006-12-19
|
* Item done.Bruce Momjian2006-12-19
| | | | | < o Improve xid wraparound detection by recording per-table rather < than per-database
* Interpret a dbName param to PQsetdbLogin as a conninfo string if it contains ↵Andrew Dunstan2006-12-19
| | | | an = sign. Tom Lane and Andrew Dunstan.
* Set pg_am.amstrategies to zero for index AMs that don't have fixedTom Lane2006-12-18
| | | | | | | operator strategy numbers, ie, GiST and GIN. This is almost cosmetic enough to not need a catversion bump, but since the opr_sanity regression test has to change in sync with the catalog entry, I figured I'd better do one.
* fix thinko in placement of TimeValStruct typedef in Windows case, as ↵Andrew Dunstan2006-12-18
| | | | reported by Magnus.
* Fix typo:Bruce Momjian2006-12-17
| | | | | < While PostgreSQL clients runs fine limited-resource environments, the > While PostgreSQL clients runs fine in limited-resource environments, the
* Move entry into CLUSTER section:Bruce Momjian2006-12-17
| | | | | < * Make CLUSTER preserve recently-dead tuples per MVCC requirements > o Make CLUSTER preserve recently-dead tuples per MVCC requirements
* enable \timing oputput for \copy commandsAndrew Dunstan2006-12-16
|
* Fix some planner bugs exposed by reports from Arjen van der Meijden. TheseTom Lane2006-12-15
| | | | | | | | | | | | | | | | | | | | | | | | are all in new-in-8.2 logic associated with indexability of ScalarArrayOpExpr (IN-clauses) or amortization of indexscan costs across repeated indexscans on the inside of a nestloop. In particular: Fix some logic errors in the estimation for multiple scans induced by a ScalarArrayOpExpr indexqual. Include a small cost component in bitmap index scans to reflect the costs of manipulating the bitmap itself; this is mainly to prevent a bitmap scan from appearing to have the same cost as a plain indexscan for fetching a single tuple. Also add a per-index-scan-startup CPU cost component; while prior releases were clearly too pessimistic about the cost of repeated indexscans, the original 8.2 coding allowed the cost of an indexscan to effectively go to zero if repeated often enough, which is overly optimistic. Pay some attention to index correlation when estimating costs for a nestloop inner indexscan: this is significant when the plan fetches multiple heap tuples per iteration, since high correlation means those tuples are probably on the same or adjacent heap pages.
* Put JST back into the default set of timezone abbreviations;Tom Lane2006-12-15
| | | | was removed in an unexplainable moment of brain fade.
* Back out double-run of PDF/PS output. Requires building bookindex.sgmlBruce Momjian2006-12-15
| | | | | | | | | properly. Remove SGML docs about openjade performance patch, and instead add comment in style sheet where indenting code is commented out. Backpatch to 8.2.X.
* TODO item not wanted:Bruce Momjian2006-12-15
| | | | | | | | | | | > > * Embedded server (not wanted) > > While PostgreSQL clients runs fine limited-resource environments, the > server requires multiple processes and a stable pool of resources to > run reliabily and efficiently. Stripping down the PostgreSQL server > to run in the same process address space as the client application > would add too much complexity and failure cases.
* Link to summary XML email, rather than thread top:Bruce Momjian2006-12-15
| | | | | | | < * Consider changing documentation from SGML to XML > * Consider changing documentation format from SGML to XML < http://archives.postgresql.org/pgsql-docs/2006-12/msg00033.php > http://archives.postgresql.org/pgsql-docs/2006-12/msg00152.php
* Document issues for SGML and XML:Bruce Momjian2006-12-15
| | | | | | | | > > * Consider changing documentation from SGML to XML > > http://archives.postgresql.org/pgsql-docs/2006-12/msg00033.php >
* Document patch needed to get PDF and PS output in a reasonable amount ofBruce Momjian2006-12-15
| | | | time.
* Remove unneeded tab in file.Bruce Momjian2006-12-15
|
* Run Jade twice when outputting Postscript and PDF so the index isBruce Momjian2006-12-15
| | | | | | correct, add comments about other multiple runs in the Makefile. Backpatch to 8.2.X.
* Make --with-ldap build on Unixware, per Olivier Prenant.Tom Lane2006-12-14
|
* Remove Windows port^W^Wobsolete template file.Peter Eisentraut2006-12-14
|
* Activate WIN32_STACK_RLIMIT override only on platforms where this isPeter Eisentraut2006-12-14
| | | | necessary.
* Put back yet another improperly-removed #include, per Mark Kirkwood.Tom Lane2006-12-13
|
* Update entry:Bruce Momjian2006-12-12
| | | | | | < * Have EXPLAIN ANALYZE highlight poor optimizer estimates > * Have EXPLAIN ANALYZE issue NOTICE messages when the estimated and > actual row counts differ by a specified percentage
* Fix planner to do the right thing when a degenerate outer join (one whoseTom Lane2006-12-12
| | | | | | | joinclause doesn't use any outer-side vars) requires a "bushy" plan to be created. The normal heuristic to avoid joins with no joinclause has to be overridden in that case. Problem is new in 8.2; before that we forced the outer join order anyway. Per example from Teodor.