aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
...
* Fix incorrect permissions check in information_schema.key_column_usage view:Tom Lane2007-01-16
| | | | | | | | | | it was checking a pg_constraint OID instead of pg_class OID, resulting in "relation with OID nnnnn does not exist" failures for anyone who wasn't owner of the table being examined. Per bug #2848 from Laurence Rowe. Note: for existing 8.2 installations a simple version update won't fix this; the easiest fix is to CREATE OR REPLACE this view with the corrected definition.
* Enable autovacuum in the default configuration, per discussion.Alvaro Herrera2007-01-16
|
* Arrange for autovacuum to be killed when another operation wants to be aloneAlvaro Herrera2007-01-16
| | | | | | accessing it, like DROP DATABASE. This allows the regression tests to pass with autovacuum enabled, which open the gates for finally enabling autovacuum by default.
* Fix reverse compilation of IS DOCUMENT expression.Peter Eisentraut2007-01-14
|
* Add support for xmlval IS DOCUMENT expression.Peter Eisentraut2007-01-14
|
* Fix handling of CC (century) format spec in to_date/to_char. According toTom Lane2007-01-12
| | | | | | | | standard convention the 21st century runs from 2001-2100, not 2000-2099, so make it work like that. Per bug #2885 from Akio Iwaasa. Backpatch to 8.2, but no further, since this is really a definitional change; users of older branches are probably more interested in stability.
* Fix compiler warningPeter Eisentraut2007-01-12
|
* Use XML output escaping also in XMLFOREST.Peter Eisentraut2007-01-12
|
* Update error messsage wording.Bruce Momjian2007-01-12
|
* Update ORDER BY UNION function/exprssion wording (again).Bruce Momjian2007-01-12
|
* Add some notes about the basic mathematical laws that the system presumesTom Lane2007-01-12
| | | | | | hold true for operators in a btree operator family. This is mostly to clarify my own thinking about what the planner can assume for optimization purposes. (blowing dust off an old abstract-algebra textbook...)
* Allow for arbitrary data types as content in XMLELEMENT. The originalPeter Eisentraut2007-01-12
| | | | | coercion to type xml was a mistake. Escape values so they are valid XML character data.
* Fix a performance problem in databases with large numbers of tablesTom Lane2007-01-11
| | | | | | | | | | | (or other types of pg_class entry): the function pgstat_vacuum_tabstat, invoked during VACUUM startup, had runtime proportional to the number of stats table entries times the number of pg_class rows; in other words O(N^2) if the stats collector's information is reasonably complete. Replace list searching with a hash table to bring it back to O(N) behavior. Per report from kim at myemma.com. Back-patch as far as 8.1; 8.0 and before use different coding here.
* Update UNION/INTERSECT/EXCEPT ORDER BY error wording forBruce Momjian2007-01-11
| | | | expressions/functions.
* Improve error wording of ORDER BY in UNION that uses new expressions inBruce Momjian2007-01-11
| | | | ORDER BY.
* Teach nodeMergejoin how to handle DESC and/or NULLS FIRST sort orders.Tom Lane2007-01-11
| | | | So far only tested by hacking the planner ...
* Use libxml's xmlwriter API for producing XML elements, instead of doingPeter Eisentraut2007-01-10
| | | | | our own printing dance. This does a better job of quoting and escaping the values.
* Change the planner-to-executor API so that the planner tells the executorTom Lane2007-01-10
| | | | | | | | | | | | | | | | which comparison operators to use for plan nodes involving tuple comparison (Agg, Group, Unique, SetOp). Formerly the executor looked up the default equality operator for the datatype, which was really pretty shaky, since it's possible that the data being fed to the node is sorted according to some nondefault operator class that could have an incompatible idea of equality. The planner knows what it has sorted by and therefore can provide the right equality operator to use. Also, this change moves a couple of catalog lookups out of the executor and into the planner, which should help startup time for pre-planned queries by some small amount. Modify the planner to remove some other cavalier assumptions about always being able to use the default operators. Also add "nulls first/last" info to the Plan node for a mergejoin --- neither the executor nor the planner can cope yet, but at least the API is in place.
* Have log_temp_files be in kilobytes, remove trace call.Bruce Momjian2007-01-09
|
* Remove trace macro call from new log_temp_files, until it gets moreBruce Momjian2007-01-09
| | | | research.
* Enable another five tuple status bits by using the high bits of theBruce Momjian2007-01-09
| | | | | | nattr field, and rename the field. Heikki Linnakangas
* Add GUC log_temp_files to log the use of temporary files.Bruce Momjian2007-01-09
| | | | Bill Moran
* Add a citation to Seltzer and Yigit's Usenix '91 paper about hash tableTom Lane2007-01-09
| | | | | | | | | | management. The paper clearly describes many of the ideas embodied in our current hashing code, but as far as I could find out there is not a direct code heritage. (Mike Olsen recalls discussion of this paper at Postgres meetings but believes it "informed the Postgres implementation probably just at the design level". Margo herself says she wasn't involved with Postgres' hash code.) Credit where credit is due 'n all that, even if fifteen years after the fact.
* Support ORDER BY ... NULLS FIRST/LAST, and add ASC/DESC/NULLS FIRST/NULLS LASTTom Lane2007-01-09
| | | | | | | | | | | | per-column options for btree indexes. The planner's support for this is still pretty rudimentary; it does not yet know how to plan mergejoins with nondefault ordering options. The documentation is pretty rudimentary, too. I'll work on improving that stuff later. Note incompatible change from prior behavior: ORDER BY ... USING will now be rejected if the operator is not a less-than or greater-than member of some btree opclass. This prevents less-than-sane behavior if an operator that doesn't actually define a proper sort ordering is selected.
* Prevent duplicate attribute names in XMLELEMENT.Peter Eisentraut2007-01-08
|
* Tweak joinlist creation to avoid generating useless one-element subproblemsTom Lane2007-01-08
| | | | | | | | | | when collapsing of JOIN trees is stopped by join_collapse_limit. For instance a list of 11 LEFT JOINs with limit 8 now produces something like ((1 2 3 4 5 6 7 8) 9 10 11 12) instead of (((1 2 3 4 5 6 7 8) (9)) 10 11 12) The latter structure is really only required for a FULL JOIN. Noted while studying an example from Shane Ambler.
* Remove cost_hashjoin's very ancient hack to discourage (once, entirely forbid)Tom Lane2007-01-08
| | | | | | | | | | | hash joins with the estimated-larger relation on the inside. There are several cases where doing that makes perfect sense, and in cases where it doesn't, the regular cost computation really ought to be able to figure that out. Make some marginal tweaks in said computation to try to get results approximating reality a bit better. Per an example from Shane Ambler. Also, fix an oversight in the original patch to add seq_page_cost: the costs of spilling a hash join to disk should be scaled by seq_page_cost.
* Some fine-tuning of xmlpi in corner cases:Peter Eisentraut2007-01-07
| | | | | | - correct error codes - do syntax checks in correct order - strip leading spaces of argument
* Indent comments in makefiles better so they don't appear in the output.Peter Eisentraut2007-01-07
|
* Allow XML fragment to contain a XML declaration. For that, we need a smallPeter Eisentraut2007-01-07
| | | | | hand-crafted parser for the XML declaration, because libxml doesn't seem to allow this.
* Apply fix so pow() and exp() ERANGE is used only if result is not 0.Bruce Momjian2007-01-06
|
* Replace xmlroot with a properly functioning version that parses the value,Peter Eisentraut2007-01-06
| | | | | | | | | sets the items, and serializes the value back (rather than adding an arbitrary number of XML preambles as before). The libxml memory management via palloc had to be disabled because it crashes when libxml tries to access memory that was helpfully freed earlier by PostgreSQL. This needs further thought.
* Fix filtered_base_yylex() to save and restore base_yylval and base_yyllocTom Lane2007-01-06
| | | | | properly when doing a lookahead. The lack of this was causing various interesting misbehaviors when one tries to use "with" as a plain identifier.
* Check for ERANGE in exp() as well.Bruce Momjian2007-01-06
| | | | Improve release docs for ecpg regression tests.
* Improve dpow() check for ERANGE overflow for HPPA.Bruce Momjian2007-01-06
|
* Put back ERANGE test in dpow(). There are platforms that need this,Tom Lane2007-01-06
| | | | like my HPPA ...
* Update CVS HEAD for 2007 copyright. Back branches are typically notBruce Momjian2007-01-05
| | | | back-stamped for this.
* Update float dpow() comment about whick platforms had issues with Nan.Bruce Momjian2007-01-05
| | | | Stefan Kaltenbrunner
* Fix some small typos in comments. Greg StarkTom Lane2007-01-04
|
* Simplify assignment of Inf for pow Nan (don't worry about the sign).Bruce Momjian2007-01-04
|
* Fix erroneous implementation of -s in postmaster.c (the switch doesn't takeTom Lane2007-01-04
| | | | | | an optarg). Add some comments noting that code in three different files has to be kept in sync. Fix erroneous description of -S switch (it sets work_mem not silent_mode), and do some light copy-editing elsewhere in postgres-ref.
* Fix regex_fixed_prefix() to cope reasonably well with regex patterns of theTom Lane2007-01-03
| | | | | | | | | | form '^(foo)$'. Before, these could never be optimized into indexscans. The recent changes to make psql and pg_dump generate such patterns (for \d commands and -t and related switches, respectively) therefore represented a big performance hit for people with large pg_class catalogs, as seen in recent gripe from Erik Jones. While at it, be more paranoid about case-sensitivity checking in multibyte encodings, and fix some other corner cases in which a regex might be interpreted too liberally.
* Update pow() tests to check for both errno==EDOM _and_ result==Nan, andBruce Momjian2007-01-03
| | | | document why this happens. Remove exp() errno check because not needed.
* Fix erroneous error tests in pow/exp.Tom Lane2007-01-03
|
* Clean up smgr.c/md.c APIs as per discussion a couple months ago. Instead ofTom Lane2007-01-03
| | | | | | | | | | | | | | | | | | having md.c return a success/failure boolean to smgr.c, which was just going to elog anyway, let md.c issue the elog messages itself. This allows better error reporting, particularly in cases such as "short read" or "short write" which Peter was complaining of. Also, remove the kluge of allowing mdread() to return zeroes from a read-beyond-EOF: this is now an error condition except when InRecovery or zero_damaged_pages = true. (Hash indexes used to require that behavior, but no more.) Also, enforce that mdwrite() is to be used for rewriting existing blocks while mdextend() is to be used for extending the relation EOF. This restriction lets us get rid of the old ad-hoc defense against creating huge files by an accidental reference to a bogus block number: we'll only create new segments in mdextend() not mdwrite() or mdread(). (Again, when InRecovery we allow it anyway, since we need to allow updates of blocks that were later truncated away.) Also, clean up the original makeshift patch for bug #2737: move the responsibility for padding relation segments to full length into md.c.
* Attempt to return proper overflow/underflow messages for platforms thatBruce Momjian2007-01-03
| | | | only return Nan and set errno for pow/exp overflow/underflow.
* For float4/8, remove errno checks for pow() and exp() because only someBruce Momjian2007-01-03
| | | | | | platforms set errno, and we already have a check macro that detects under/overflow, so there is no reason for platform-specific code anymore.
* Widen the money type to 64 bits.D'Arcy J.M. Cain2007-01-03
|
* Adjust network errmsg("result is out of range") message to be consistentBruce Momjian2007-01-02
| | | | with other places.
* Some platforms set errno on pow(), exp() overflow, some do not, so ifBruce Momjian2007-01-02
| | | | isinf(), fall through to our own infinity checks.