summaryrefslogtreecommitdiff
path: root/src/backend
AgeCommit message (Collapse)Author
2007-11-22Actually ... it's pretty silly that parse_oper.c doesn't set up theTom Lane
opfuncid of an OpExpr initially, considering that it has the information at hand already. We'll still treat opfuncid as a cache rather than a guaranteed-valid value, but this change saves one more syscache lookup in the normal code path.
2007-11-22Save one syscache lookup when examining volatility or strictness ofTom Lane
OpExpr and related nodes. We're going to have to set the opfuncid of such nodes eventually (if we haven't already), so we might as well exploit the opportunity to cache the function OID. Buys back some of the extra planner overhead noted by Guillaume Smet, though I still need to fool with equivclass.c to really respond to that.
2007-11-22Add more comments about thousands separator handling.Bruce Momjian
2007-11-22Add comments about thousands separator logic.Bruce Momjian
2007-11-21When setting default thousands separator when locale has "", use logicBruce Momjian
so new thousands separator doesn't match decimal symbol.
2007-11-21Fix typo in comment.Bruce Momjian
2007-11-20Fix bogus length calculation that could lead to crash if the stringTom Lane
happened to be right up against the end of memory, per report from Matt Magoffin. While at it, avoid useless multiple copying of string by not depending on xmlStrncatNew.
2007-11-20Change descriptions of entity and tag objects to "XML entity" and "XML tag".Andrew Dunstan
Allow tag and entity names that follow XML rules. Provide for hexadecimal as well as decimal numeric entities. Adjust code names to coincide with new descriptions.
2007-11-16Improve GIN index build's tracking of memory usage by usingTom Lane
GetMemoryChunkSpace, not just the palloc request size. This brings the allocatedMemory counter close enough to reality (as measured by MemoryContextStats printouts) that I think we can get rid of the arbitrary factor-of-2 adjustment that was put into the code initially. Given the sensitivity of GIN build to work memory size, not using as much of work memory as we're allowed to seems a pretty bad idea.
2007-11-16Repair still another bug in the btree page split WAL reduction patch:Tom Lane
it failed for splits of non-leaf pages because in such pages the first data key on a page is suppressed, and so we can't just copy the first key from the right page to reconstitute the left page's high key. Problem found by Koichi Suzuki, patch by Heikki.
2007-11-16Fix tsvectorout() and tsqueryout() to escape backslesh, add test of that.Teodor Sigaev
Patch by Bruce Momjian <bruce@momjian.us> Backpatch is needed, but it's impossible to apply it directly
2007-11-16Small comment spacing improvement.Bruce Momjian
2007-11-16Run pgindent on remaining files now that LOOPBYTE is a usable macro.Bruce Momjian
2007-11-16Cleanup for new else/comment handling.Bruce Momjian
2007-11-16Fix stupid typo in recently-added code :-(Tom Lane
2007-11-16Modify LOOPBYTE/LOOPBIT macros to be more logical; rather than have theBruce Momjian
for() body passed as a parameter, make the macros act as simple headers to code blocks. This allows pgindent to be run on these files.
2007-11-15Fix pgindent to properly handle 'else' and single-line comments on theBruce Momjian
same line; previous fix was only partial. Re-run pgindent on files that need it.
2007-11-15Re-run pgindent with updated list of typedefs. (Updated README shouldBruce Momjian
avoid this problem in the future.)
2007-11-15When logging the recovery.conf parameters, show them quoted as they wouldPeter Eisentraut
appear in the configuration file.
2007-11-15Use ftruncate() not truncate() in mdunlink. Seems Windows doesn'tTom Lane
support the latter.
2007-11-15pgindent run for 8.3.Bruce Momjian
2007-11-15Translation updatesPeter Eisentraut
2007-11-15Prevent re-use of a deleted relation's relfilenode until after the nextTom Lane
checkpoint. This guards against an unlikely data-loss scenario in which we re-use the relfilenode, then crash, then replay the deletion and recreation of the file. Even then we'd be OK if all insertions into the new relation had been WAL-logged ... but that's not guaranteed given all the no-WAL-logging optimizations that have recently been added. Patch by Heikki Linnakangas, per a discussion last month.
2007-11-15Message improvementsPeter Eisentraut
2007-11-14Add a rank/(rank+1) normalization option to ts_rank(). While the usefulnessTom Lane
of this seems a bit marginal, if it's useful enough to be shown in the manual then we probably ought to support doing it without double evaluation of the ts_rank function. Per my proposal earlier today.
2007-11-14Fix incorrect calculation of elapsed_xlogs. Itagaki TakahiroTom Lane
2007-11-14Add an Accept parameter to "simple" dictionaries. The default of trueTom Lane
gives the old behavior; selecting false allows the dictionary to be used as a filter ahead of other dictionaries, because it will pass on rather than accept words that aren't in its stopword list. Jan Urbanski
2007-11-13Clean up some stray references to tsearch2.Tom Lane
2007-11-13Resurrect the code for the rewrite(ARRAY[...]) aggregate function,Tom Lane
and put it into contrib/tsearch2 compatibility module.
2007-11-11Ensure that typmod decoration on a datatype name is validated in all cases,Tom Lane
even in code paths where we don't pay any subsequent attention to the typmod value. This seems needed in view of the fact that 8.3's generalized typmod support will accept a lot of bogus syntax, such as "timestamp(foo)" or "record(int, 42)" --- if we allow such things to pass without comment, users will get confused. Per a recent example from Greg Stark. To implement this in a way that's not very vulnerable to future bugs-of-omission, refactor the API of parse_type.c's TypeName lookup routines so that typmod validation is folded into the base lookup operation. Callers can still choose not to receive the encoded typmod, but we'll check the decoration anyway if it's present.
2007-11-10Add missing closing / in xsd:restriction, and remove some unnecessaryTom Lane
spaces for consistency. Per bug #3734 from Ben Leslie; fix by Euler Taveira de Oliveira.
2007-11-10xmlGetUTF8Char()'s second argument is both input and output. FixTom Lane
uninitialized value, and avoid invoking the function nine separate times in the pg_xmlIsNameChar macro. Should resolve buildfarm failures. Per report from Ben Leslie.
2007-11-10Have text search thesaurus files use "?" for stop words.Bruce Momjian
Throw an error for actual stop words, rather than a warning. This fixes problems with cache reloading causing warning messages. Re-enable stop words in regression tests; was disabled by Tom. Document "?" as API change.
2007-11-10Reduce error level of ROLLBACK outside a transaction from WARNING toBruce Momjian
NOTICE.
2007-11-09Clean up ts_locale.h/.c. Fix broken and not-consistent-across-platformsTom Lane
behavior of wchar2char/char2wchar; this should resolve bug #3730. Avoid excess computations of pg_mblen in t_isalpha and friends. Const-ify APIs where possible.
2007-11-09Second pass at improving LIKE/regex estimation in non-C locales. It turnsTom Lane
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.
2007-11-09Add parameter krb_realm used by GSSAPI, SSPI and KerberosMagnus Hagander
to validate the realm of the connecting user. By default it's empty meaning no verification, which is the way Kerberos authentication has traditionally worked in PostgreSQL.
2007-11-09Allow XML processing instructions starting with "xml" while prohibitingPeter Eisentraut
those being exactly "xml". Bug #3735 from Ben Leslie
2007-11-09In tsearch code, remove !(A && B) via restructuring, for clarityBruce Momjian
2007-11-08If an index depends on no columns of its table, give it a dependency on theTom Lane
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.
2007-11-08Fix EquivalenceClass code to handle volatile sort expressions in a moreTom Lane
predictable manner; in particular that if you say ORDER BY output-column-ref, it will in fact sort by that specific column even if there are multiple syntactic matches. An example is SELECT random() AS a, random() AS b FROM ... ORDER BY b, a; While the use-case for this might be a bit debatable, it worked as expected in earlier releases, so we should preserve the behavior for 8.3. Per my recent proposal. While at it, fix convert_subquery_pathkeys() to handle RelabelType stripping in both directions; it needs this for the same reasons make_sort_from_pathkeys does.
2007-11-08Last week's patch for make_sort_from_pathkeys wasn't good enough: it hasTom Lane
to be able to discard top-level RelabelType nodes on *both* sides of the equivalence-class-to-target-list comparison, since make_pathkey_from_sortinfo might either add or remove a RelabelType. Also fix the latter to do the removal case cleanly. Per example from Peter.
2007-11-08After conferencing again with Bruce, put in more accurate XML error message.Peter Eisentraut
2007-11-08Wording changesPeter Eisentraut
2007-11-08Add sentence-ending periods.Peter Eisentraut
2007-11-08Improve error messagePeter Eisentraut
2007-11-07Improve the performance of LIKE/regex estimation in non-C locales, by makingTom Lane
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...
2007-11-07Fix patternsel() and callers to do the right thing for NOT LIKE and the otherTom Lane
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.
2007-11-07Use "alternative" instead of "alternate" where it is clearer.Peter Eisentraut
2007-11-06Some code review for xml.c:Tom Lane
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).