aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Add support for XML build option to MSVC build scripts.Tom Lane2006-12-29
| | | | Magnus Hagander
* Fix multiple breakages in last XML patch.Tom Lane2006-12-29
|
* De-escape XML names when reverse-compiling XML expressions.Peter Eisentraut2006-12-29
|
* Fix up btree's initial scankey processing to be able to detect redundantTom Lane2006-12-28
| | | | | | or contradictory keys even in cross-data-type scenarios. This is another benefit of the opfamily rewrite: we can find the needed comparison operators now.
* Enable btree_predicate_proof() to make proofs involving cross-data-typeTom Lane2006-12-28
| | | | | predicate operators. The hard stuff turns out to be already done in the previous commit, we need merely open the floodgates...
* Add send and recv functions for xml type.Peter Eisentraut2006-12-28
|
* Handle content and document options in xmlparse() correctly.Peter Eisentraut2006-12-28
|
* Add a defense to prevent core dumps if 8.2 version of rank_cd() is used withTom Lane2006-12-28
| | | | | | | | the 8.1 SQL function definition for it. Per report from Rajesh Kumar Mallah, such a DBA error doesn't seem at all improbable, and the cost of checking for it is not very high compared to the cost of running this function. (It would have been better to change the C name of the function so it wouldn't be called by the old SQL definition, but it's too late for that now in the 8.2 branch.)
* fflush the \o file, if any, after each backslash command. We alreadyTom Lane2006-12-28
| | | | | do this for ordinary SQL commands, so it seems consistent to do it for backslash commands too. Per gripe from Rajesh Kumar Mallah.
* Revert exports.list change pending closer study.Tom Lane2006-12-28
|
* Use a more backward-compatible syntax for exports.list on Linux.Tom Lane2006-12-27
| | | | Per Thorkil Olesen.
* Clean up pgindent handling of comments after 'else' by only movingBruce Momjian2006-12-27
| | | | multi-line comments to the next line.
* Modify local buffer management to request memory for local buffers in blocksTom Lane2006-12-27
| | | | | | | | | | | of increasing size, instead of one at a time. This reduces the memory management overhead when num_temp_buffers is large: in the previous coding we would actually waste 50% of the space used for temp buffers, because aset.c would round the individual requests up to 16K. Problem noted while studying a performance issue reported by Steven Flatt. Back-patch as far as 8.1 --- older versions used few enough local buffers that the issue isn't significant for them.
* 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.
* 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.
* 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
|
* 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.
* Fix expected file.Peter Eisentraut2006-12-21
|
* Catalog version bump for SQL/XML changes.Peter Eisentraut2006-12-21
|
* Initial SQL/XML support: xml data type and initial set of functions.Peter Eisentraut2006-12-21
|
* 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.
* 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.
* 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
|
* 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.
* Allow augmenting CPPFLAGS from the configure command line. This generallyPeter Eisentraut2006-12-12
| | | | works, but some platform templates overwrote it without asking.
* Add a paramtypmod field to Param nodes. This is dead weight for ParamsTom Lane2006-12-10
| | | | | | | | | | representing externally-supplied values, since the APIs that carry such values only specify type not typmod. However, for PARAM_SUBLINK Params it is handy to carry the typmod of the sublink's output column. This is a much cleaner solution for the recently reported 'could not find pathkey item to sort' and 'failed to find unique expression in subplan tlist' bugs than my original 8.2-compatible patch. Besides, someday we might want to support typmods for external parameters ...
* Remove the logId/logSeg fields from pg_control, because they are not neededTom Lane2006-12-08
| | | | | | | | | | | | | | | | | | | in normal operation, and we can avoid rewriting pg_control at every log segment switch if we don't insist that these values be valid. Reducing the number of pg_control updates is a good idea for both performance and reliability. It does make pg_resetxlog's life a bit harder, but that seems a good tradeoff; and anyway the change to pg_resetxlog amounts to automating something people formerly needed to do by hand, namely look at the existing pg_xlog files to make sure the new WAL start point was past them. In passing, change the wording of xlog.c's "database system was interrupted" messages: describe the pg_control timestamp as "last known up at" rather than implying it is the exact time of service interruption. With this change the timestamp will generally be the time of the last checkpoint, which could be many minutes before the failure; and we've already seen indications that people tend to misinterpret the old wording. initdb forced due to change in pg_control layout. Simon Riggs and Tom Lane
* Fix the build for when SHOW_MEMORY_STATS is defined. The reference toNeil Conway2006-12-08
| | | | the nonexistent ShowStats variable is simply removed, per Gavin Sherry.
* Avoid double free of _SPI_current->tuptable. AtEOSubXact_SPI() now tries toTom Lane2006-12-08
| | | | | | | release it in a subtransaction abort, but this neglects possibility that someone outside SPI already did. Fix is for spi.c to forget about a tuptable as soon as it's handed it back to the caller. Per bug #2817 from Michael Andreen.
* Repair incorrect placement of WHERE clauses when there are multiple,Tom Lane2006-12-07
| | | | | | | rearrangeable outer joins and the WHERE clause is non-strict and mentions only nullable-side relations. New bug in 8.2, caused by new logic to allow rearranging outer joins. Per bug #2807 from Ross Cohen; thanks to Jeff Davis for producing a usable test case.
* Fix planning of SubLinks to ensure that Vars generated from transformation ofTom Lane2006-12-06
| | | | | | | | | | a sublink's test expression have the correct vartypmod, rather than defaulting to -1. There's at least one place where this is important because we're expecting these Vars to be exactly equal() to those appearing in the subplan itself. This is a pretty klugy solution --- it would likely be cleaner to change Param nodes to include a typmod field --- but we can't do that in the already-released 8.2 branch. Per bug report from Hubert Fongarnand.
* Add a txn_start column to pg_stat_activity. This makes it easier toNeil Conway2006-12-06
| | | | | | | | identify long-running transactions. Since we already need to record the transaction-start time (e.g. for now()), we don't need any additional system calls to report this information. Catversion bumped, initdb required.
* Various improvements to the GUC description strings. Punctuate andNeil Conway2006-12-06
| | | | | | capitalize the strings like sentences. Remove unnecessarily specific descriptions of the units used by GUC variables, since we now allow any reasonable unit to be specified.
* Fix pg_dump linking on Win32 with MSVS win32.mak:Bruce Momjian2006-12-04
| | | | | | | | | | | | | | The module link is insufficient.:-( ---- Sorry, japanese message change to xxx --- link.exe @C:\DOCUME~1\hi-saito\LOCALS~1\Temp\nmk03360. common.obj : error LNK2001: xxxxxx "_pg_qsort" xxxxxx pg_dump_sort.obj : error LNK2001: xxxxx "_pg_qsort" xxxxx .\Release\pg_dump.exe : fatal error LNK1120: xxxxxxx NMAKE : fatal error U1077: 'link.exe' : xxxxx '0x460' Stop. Hiroshi Saito