aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt
Commit message (Collapse)AuthorAge
* Wording improvementsPeter Eisentraut2007-12-27
|
* When given a nonzero column number, pg_get_indexdef() is only supposed toTom Lane2007-12-20
| | | | | | | | | print the index key variable or expression for that column. It was mistakenly printing ASC/DESC/NULLS FIRST/NULLS LAST decoration too --- and not only for the target column, but all columns. Someday we should have an option to extract that info (and the opclass decoration as well) for a single index column ... but today is not that day. Per bug #3829 and subsequent discussion.
* Fix thinko in encoding check for chr()Andrew Dunstan2007-12-18
|
* Make path_recv() and poly_recv() reject paths/polygons containing no points.Tom Lane2007-12-18
| | | | | | | | The zero-point case is sensible so far as the data structure is concerned, so maybe we ought to allow it sometime; but right now the textual input routines for these types don't allow it, and it seems that not all the functions for the types are prepared to cope. Report and patch by Merlin Moncure.
* Fix mergejoin cost estimation so that we consider the statistical ranges ofTom Lane2007-12-08
| | | | | | | | | | the two join variables at both ends: not only trailing rows that need not be scanned because there cannot be a match on the other side, but initial rows that will be scanned without possibly having a match. This allows a more realistic estimate of startup cost to be made, per recent pgsql-performance discussion. In passing, fix a couple of bugs that had crept into mergejoinscansel: it was not quite up to speed for the task of estimating descending-order scans, which is a new requirement in 8.3.
* Code review for LIKE ... INCLUDING INDEXES patch. Fix failure to propagateTom Lane2007-12-01
| | | | | | | | | | constraint status of copied indexes (bug #3774), as well as various other small bugs such as failure to pstrdup when needed. Allow INCLUDING INDEXES indexes to be merged with identical declared indexes (perhaps not real useful, but the code is there and having it not apply to LIKE indexes seems pretty unorthogonal). Avoid useless work in generateClonedIndexStmt(). Undo some poorly chosen API changes, and put a couple of routines in modules that seem to be better places for them.
* Make a cleanup pass over error reports in tsearch code. Use ereportTom Lane2007-11-28
| | | | | for user-facing errors, fix some poor choices of errcode, adhere to message style guide.
* Adjust the names of a couple of tsearch index support functions that hadTom Lane2007-11-28
| | | | | | | inappropriately generic-sounding names. This is more or less free since we already forced initdb for the next beta, and it may prevent confusion or name conflicts (particularly at the C-global-symbol level) down the road. Per my proposal yesterday.
* Fix XML Schema structure for char types without length (bug #3782)Peter Eisentraut2007-11-28
|
* Suppress compiler warning.Tom Lane2007-11-27
|
* Make casts from xml to text independent of the XML option setting, thusPeter Eisentraut2007-11-27
| | | | | immutable and indexable. Also fix the volatility settings of some other XML-related functions.
* Use double quotes for quoting xml attributes.Peter Eisentraut2007-11-25
|
* Slightly more paranoia and slightly better comments for use ofTom Lane2007-11-24
| | | | Windows-specific MultiByteToWideChar/WideCharToMultiByte calls.
* Clarify how MONEY trims off trailing thousands separator.Bruce Momjian2007-11-24
|
* Make the MONEY data type have a thousands separator != decimal symbol,Bruce Momjian2007-11-24
| | | | | | if the locale has the thousands separator as "". This now matches the to_char and psql numericlocale behavior. (Previously this data type was basically useless for such setups.)
* Fix white space in MONEY type code. Rename 'comma' to more genericBruce Momjian2007-11-23
| | | | 'ssymbol' as used in previous function.
* Add more comments about thousands separator handling.Bruce Momjian2007-11-22
|
* Add comments about thousands separator logic.Bruce Momjian2007-11-22
|
* When setting default thousands separator when locale has "", use logicBruce Momjian2007-11-21
| | | | so new thousands separator doesn't match decimal symbol.
* Fix typo in comment.Bruce Momjian2007-11-21
|
* Fix bogus length calculation that could lead to crash if the stringTom Lane2007-11-20
| | | | | | 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.
* Fix tsvectorout() and tsqueryout() to escape backslesh, add test of that.Teodor Sigaev2007-11-16
| | | | | | Patch by Bruce Momjian <bruce@momjian.us> Backpatch is needed, but it's impossible to apply it directly
* Small comment spacing improvement.Bruce Momjian2007-11-16
|
* Run pgindent on remaining files now that LOOPBYTE is a usable macro.Bruce Momjian2007-11-16
|
* Modify LOOPBYTE/LOOPBIT macros to be more logical; rather than have theBruce Momjian2007-11-16
| | | | | | | 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.
* Fix pgindent to properly handle 'else' and single-line comments on theBruce Momjian2007-11-15
| | | | | same line; previous fix was only partial. Re-run pgindent on files that need it.
* Re-run pgindent with updated list of typedefs. (Updated README shouldBruce Momjian2007-11-15
| | | | avoid this problem in the future.)
* pgindent run for 8.3.Bruce Momjian2007-11-15
|
* Add a rank/(rank+1) normalization option to ts_rank(). While the usefulnessTom Lane2007-11-14
| | | | | | 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.
* Resurrect the code for the rewrite(ARRAY[...]) aggregate function,Tom Lane2007-11-13
| | | | and put it into contrib/tsearch2 compatibility module.
* Add missing closing / in xsd:restriction, and remove some unnecessaryTom Lane2007-11-10
| | | | | spaces for consistency. Per bug #3734 from Ben Leslie; fix by Euler Taveira de Oliveira.
* xmlGetUTF8Char()'s second argument is both input and output. FixTom Lane2007-11-10
| | | | | | uninitialized value, and avoid invoking the function nine separate times in the pg_xmlIsNameChar macro. Should resolve buildfarm failures. Per report from Ben Leslie.
* Second pass at improving LIKE/regex estimation in non-C locales. It turnsTom Lane2007-11-09
| | | | | | | | | | 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.
* Allow XML processing instructions starting with "xml" while prohibitingPeter Eisentraut2007-11-09
| | | | those being exactly "xml". Bug #3735 from Ben Leslie
* After conferencing again with Bruce, put in more accurate XML error message.Peter Eisentraut2007-11-08
|
* Improve error messagePeter 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.
* 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.
* Set read_only = TRUE while evaluating input queries for ts_rewrite()Tom Lane2007-10-24
| | | | | | and ts_stat(), per my recent suggestion. Also add a possibly-not-needed- but-can't-hurt check for NULL SPI_tuptable, before we try to dereference same.
* Remove the aggregate form of ts_rewrite(), since it doesn't work as desiredTom Lane2007-10-24
| | | | | | | | | if there are zero rows to aggregate over, and the API seems both conceptually and notationally ugly anyway. We should look for something that improves on the tsquery-and-text-SELECT version (which is also pretty ugly but at least it works...), but it seems that will take query infrastructure that doesn't exist today. (Hm, I wonder if there's anything in or near SQL2003 window functions that would help?) Per discussion.
* Fix two-argument form of ts_rewrite() so it actually works for cases whereTom Lane2007-10-23
| | | | | a later rewrite rule should change a subtree modified by an earlier one. Per my gripe of a few days ago.
* Fix several bugs in tsvectorin, including crash due to uninitialized field andTom Lane2007-10-23
| | | | | | | | | | | | | miscomputation of required palloc size. The crash could only occur if the input contained lexemes both with and without positions, which is probably not common in practice. The miscomputation would definitely result in wasted space. Also fix some inconsistent coding around alignment of strings and positions in a tsvector value; these errors could also lead to crashes given mixed with/without position data and a machine that's picky about alignment. And be more careful about checking for overflow of string offsets. Patch is only against HEAD --- I have not looked to see if same bugs are in back-branch contrib/tsearch2 code.
* Fix shared tsvector/tsquery input code so that we don't say "syntax error inTom Lane2007-10-21
| | | | | tsvector" when we are really parsing a tsquery. Report the bogus input, too. Make styles of some related error messages more consistent.
* Adjust error message to agree with documentation. The tsearch documentationTom Lane2007-10-20
| | | | uniformly calls these things weights, not classes.
* Migrate the former contrib/txid module into core. This will make it easierTom Lane2007-10-13
| | | | for Slony and Skytools to depend on it. Per discussion.
* Guard against possible double free during error escape from XMLTom Lane2007-10-13
| | | | | functions. Patch for the reported issue from Kris Jurka, some other potential trouble spots plugged by Tom.
* Fix the inadvertent libpq ABI breakage discovered by Martin Pitt: theTom Lane2007-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | renumbering of encoding IDs done between 8.2 and 8.3 turns out to break 8.2 initdb and psql if they are run with an 8.3beta1 libpq.so. For the moment we can rearrange the order of enum pg_enc to keep the same number for everything except PG_JOHAB, which isn't a problem since there are no direct references to it in the 8.2 programs anyway. (This does force initdb unfortunately.) Going forward, we want to fix things so that encoding IDs can be changed without an ABI break, and this commit includes the changes needed to allow libpq's encoding IDs to be treated as fully independent of the backend's. The main issue is that libpq clients should not include pg_wchar.h or otherwise assume they know the specific values of libpq's encoding IDs, since they might encounter version skew between pg_wchar.h and the libpq.so they are using. To fix, have libpq officially export functions needed for encoding name<=>ID conversion and validity checking; it was doing this anyway unofficially. It's still the case that we can't renumber backend encoding IDs until the next bump in libpq's major version number, since doing so will break the 8.2-era client programs. However the code is now prepared to avoid this type of problem in future. Note that initdb is no longer a libpq client: we just pull in the two source files we need directly. The patch also fixes a few places that were being sloppy about checking for an unrecognized encoding name.
* Fix ALTER COLUMN TYPE to preserve the tablespace and reloptions of indexesTom Lane2007-10-13
| | | | | | | | | | it affects. The original coding neglected tablespace entirely (causing the indexes to move to the database's default tablespace) and for an index belonging to a UNIQUE or PRIMARY KEY constraint, it would actually try to assign the parent table's reloptions to the index :-(. Per bug #3672 and subsequent investigation. 8.0 and 8.1 did not have reloptions, but the tablespace bug is present.