aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Teach regular expression operators to honor collations.Tom Lane2011-04-10
| | | | | | | | | | | | | | This involves getting the character classification and case-folding functions in the regex library to use the collations infrastructure. Most of this work had been done already in connection with the upper/lower and LIKE logic, so it was a simple matter of transposition. While at it, split out these functions into a separate source file regc_pg_locale.c, so that they can be correctly labeled with the Postgres project's license rather than the Scriptics license. These functions are 100% Postgres-written code whereas what remains in regc_locale.c is still mostly not ours, so lumping them both under the same copyright notice was getting more and more misleading.
* Adjust regression tests on cube and ECPG for MinGW 64 bit compiler.Andrew Dunstan2011-04-10
| | | | Backport to 9.0, we're not supporting this compiler on earlier releases.
* Don't make "replication" magical as a user name, only as a database name, in ↵Andrew Dunstan2011-04-10
| | | | | | pg_hba.conf. Per gripe from Josh Berkus.
* pgindent run before PG 9.1 beta 1.Bruce Momjian2011-04-10
|
* Clean up overly complex code for issuing some related error messages.Tom Lane2011-04-09
| | | | | The original version was unreadable, and not mechanically checkable either.
* Add collation support on Windows (MSVC build)Peter Eisentraut2011-04-10
| | | | | There is not yet support in initdb to populate the pg_collation catalog, but if that is done manually, the rest should work.
* Fix ILIKE to honor collation when working in single-byte encodings.Tom Lane2011-04-09
| | | | | | The original collation patch only fixed the multi-byte code path. This change also ensures that ILIKE's idea of the case-folding rules is exactly the same as str_tolower's.
* Remove collate.linux.utf8.sql's assumptions about ".utf8" in locale names.Tom Lane2011-04-09
| | | | | | | | | | | | | Tweak the test so that it does not depend on the platform using ".utf8" as the extension signifying that a locale uses UTF8 encoding. For the most part this just requires using the abbreviated collation names "en_US" etc, though I had to work a bit harder on the collation creation tests. This opens the door to using the test on platforms that spell locales differently, for example ".utf-8" or ".UTF-8". Also, the test is now somewhat useful with server encodings other than UTF8; though depending on which encoding is selected, different subsets of it will fail for lack of character set support.
* Adjust collation determination rules as per discussion.Tom Lane2011-04-09
| | | | | | | | | | | | Remove crude hack that tried to propagate collation through a function-returning-record, ie, from the function's arguments to individual fields selected from its result record. That is just plain inconsistent, because the function result is composite and cannot have a collation; and there's no hope of making this kind of action-at-a-distance work consistently. Adjust regression test cases that expected this to happen. Meanwhile, the behavior of casting to a domain with a declared collation stays the same as it was, since that seemed to be the consensus.
* Don't show unusable collations in psql's \dO command.Tom Lane2011-04-09
| | | | | | "Unusable" collations are those not matching the current database's encoding. The former behavior inconsistently showed such collations some of the time, depending on the details of the pattern argument.
* Latest consolidated typedef list from buildfarm.Andrew Dunstan2011-04-08
|
* Clean up minor collation issues in indxpath.c.Tom Lane2011-04-08
| | | | | | | | | Get rid of bogus collation test in match_special_index_operator (even for ILIKE, the pattern match operator's collation doesn't matter here, and even if it did the test was testing the wrong thing). Fix broken looping logic in expand_indexqual_rowcompare. Add collation check in match_clause_to_ordering_op. Make naming and argument ordering more consistent; improve comments.
* Fix make_greater_string to not have an undocumented collation assumption.Tom Lane2011-04-08
| | | | | | | | The previous coding worked only if ltproc->fn_collation was always either DEFAULT_COLLATION_OID or a C-compatible locale. While that's true at the moment, it wasn't documented (and in fact wasn't true when this code was committed...). But it only takes a couple more lines to make its internal caching behavior locale-aware, so let's do that.
* Truncate the predicate lock SLRU to empty, instead of almost empty.Robert Haas2011-04-08
| | | | | | | | | Otherwise, the SLRU machinery can get confused and think that the SLRU has wrapped around. Along the way, regardless of whether we're truncating all of the SLRU or just some of it, flush pages after truncating, rather than before. Kevin Grittner
* Tweak collation setup for GIN index comparison functions.Tom Lane2011-04-08
| | | | | | | Honor index column's collation spec if there is one, don't go to the expense of calling get_typcollation when we can reasonably assume that all GIN storage types will use default collation, and be sure to set a collation for the comparePartialFn too.
* Avoid an unnecessary syscache lookup in parse_coerce.c.Tom Lane2011-04-08
| | | | | | All the other fields of the constant are being extracted from the syscache entry we already have, so handle collation similarly. (There don't seem to be any other uses for the new function at the moment.)
* Make psql use pg_table_size instead of pg_relation_size on 9.0+ servers.Robert Haas2011-04-08
| | | | | | | Per discussion, pg_table_size() is a more helpful number than pg_relation_size(). Bernd Helmle, reviewed by Susanne Ebrecht and me.
* Fix bug in propagating ALTER TABLE actions to typed tables.Robert Haas2011-04-08
| | | | | | | We need to propagate such actions to all typed table children of a given type, not just the first one. Noah Misch
* Modify initdb to complain only when no usable system locales are found.Tom Lane2011-04-08
| | | | | | Per discussion, the original behavior seems too noisy. But if things are so broken that none of the locales reported by "locale -a" are usable, that's probably worth warning about.
* Partially roll back overenthusiastic SSI optimization.Robert Haas2011-04-08
| | | | | | | | | When a regular lock is held, SSI can use that in lieu of a predicate lock to detect rw conflicts; but if the regular lock is being taken by a subtransaction, we can't assume that it'll commit, so releasing the parent transaction's lock in that case is a no-no. Kevin Grittner
* Have pg_upgrade properly preserve relfrozenxid in toast tables.Bruce Momjian2011-04-08
| | | | | This fixes a pg_upgrade bug that could lead to query errors when clog files are improperly removed.
* Fix some sloppiness in new PL/python get_source_line() function.Robert Haas2011-04-08
| | | | Jan Urbański
* Avoid use of mixed slash style paths in arguments to xcopy in MSVC builds.Andrew Dunstan2011-04-07
| | | | | Some versions of xcopy, notably on Windows 7 don't like it. Backpatch to 8.3, where we first used xcopy.
* Tweaks for SSI out-of-shared memory behavior.Robert Haas2011-04-07
| | | | | | | | | | | | | | If we call hash_search() with HASH_ENTER, it will bail out rather than return NULL, so it's redundant to check for NULL again in the caller. Thus, in cases where we believe it's impossible for the hash table to run out of slots anyway, we can simplify the code slightly. On the flip side, in cases where it's theoretically possible to run out of space, we don't want to rely on dynahash.c to throw an error; instead, we pass HASH_ENTER_NULL and throw the error ourselves if a NULL comes back, so that we can provide a more descriptive error message. Kevin Grittner
* Modernize dlopen interface code for FreeBSD and OpenBSD.Tom Lane2011-04-07
| | | | | | | | | | Remove the hard-wired assumption that __mips__ (and only __mips__) lacks dlopen in FreeBSD and OpenBSD. This assumption is outdated at least for OpenBSD, as per report from an anonymous 9.1 tester. We can perfectly well use HAVE_DLOPEN instead to decide which code to use. Some other cosmetic adjustments to make freebsd.c, netbsd.c, and openbsd.c exactly alike.
* Fix SortTocFromFile() to cope with lines that are too long for its buffer.Tom Lane2011-04-07
| | | | | | | | | | | The original coding supposed that a dump TOC file could never contain lines longer than 1K. The folly of that was exposed by a recent report from Per-Olov Esgard. We only really need to see the first dozen or two bytes of each line, since we're just trying to read off the numeric ID at the start of the line; so there's no need for a particularly huge buffer. What there is a need for is logic to not process continuation bufferloads. Back-patch to all supported branches, since it's always been like this.
* Preserve pg_largeobject_metadata.relfrozenxid in pg_upgrade.Bruce Momjian2011-04-07
| | | | | | This is needed only in 9.1 because only 9.0 had this and no one is upgrading from a 9.0 beta to 9.0 anymore. We basically don't backpatch 9.0 beta fixes at this point.
* Fix collations when we call transformWhereClause from outside the parser.Tom Lane2011-04-07
| | | | | | | | | | | Previous patches took care of assorted places that call transformExpr from outside the main parser, but I overlooked the fact that some places use transformWhereClause as a shortcut for transformExpr + coerce_to_boolean. In particular this broke collation-sensitive index WHERE clauses, as per report from Thom Brown. Trigger WHEN and rule WHERE clauses too. I'm not forcing initdb for this fix, but any affected indexes, triggers, or rules will need to be dropped and recreated.
* Revise the API for GUC variable assign hooks.Tom Lane2011-04-07
| | | | | | | | | | | | | | | | | The previous functions of assign hooks are now split between check hooks and assign hooks, where the former can fail but the latter shouldn't. Aside from being conceptually clearer, this approach exposes the "canonicalized" form of the variable value to guc.c without having to do an actual assignment. And that lets us fix the problem recently noted by Bernd Helmle that the auto-tune patch for wal_buffers resulted in bogus log messages about "parameter "wal_buffers" cannot be changed without restarting the server". There may be some speed advantage too, because this design lets hook functions avoid re-parsing variable values when restoring a previous state after a rollback (they can store a pre-parsed representation of the value instead). This patch also resolves a longstanding annoyance about custom error messages from variable assign hooks: they should modify, not appear separately from, guc.c's own message about "invalid parameter value".
* Update regression test files for PL/Python traceback patchPeter Eisentraut2011-04-06
|
* Add traceback information to PL/Python errorsPeter Eisentraut2011-04-06
| | | | | | | This mimics the traceback information the Python interpreter prints with exceptions. Jan Urbański
* Repair some flakiness in CheckTargetForConflictsIn.Robert Haas2011-04-05
| | | | | | | | | | When we release and reacquire SerializableXactHashLock, we must recheck whether an R/W conflict still needs to be flagged, because it could have changed under us in the meantime. And when we release the partition lock, we must re-walk the list of predicate locks from the beginning, because our pointer could get invalidated under us. Bug report #5952 by Yamamoto Takashi. Patch by Kevin Grittner.
* Add casts from int4 and int8 to numeric.Robert Haas2011-04-05
| | | | Joey Adams, per gripe from Ramanujam. Review by myself and Tom Lane.
* Avoid assuming there will be only 3 states for synchronous_commit.Simon Riggs2011-04-04
| | | | | | Also avoid hardcoding the current default state by giving it the name "on" and replace with a meaningful name that reflects its behaviour. Coding only, no change in behaviour.
* Update MSVC toolchain to match SGML entity uppercasingAlvaro Herrera2011-04-04
| | | | Per Robert Haas
* Merge synchronous_replication setting into synchronous_commit.Robert Haas2011-04-04
| | | | | | | | This means one less thing to configure when setting up synchronous replication, and also avoids some ambiguity around what the behavior should be when the settings of these variables conflict. Fujii Masao, with additional hacking by me.
* Include pid in pg_lock_status() results even for SIREAD locks.Robert Haas2011-04-04
| | | | Dan Ports
* Rearrange "add column" logic to merge columns at exec time.Robert Haas2011-04-03
| | | | | | | | | The previous coding set attinhcount too high in some cases, resulting in an undumpable, undroppable column. Per bug #5856, reported by Naoya Anzai. See also commit 31b6fc06d83c6de3644c8f2921eb7de0eb92fac3, which fixes a similar bug in ALTER TABLE .. ADD CONSTRAINT. Patch by Noah Misch.
* Avoid possible hang during smart shutdown.Robert Haas2011-04-03
| | | | | | | | | | | | | | | If a smart shutdown occurs just as a child is starting up, and the child subsequently becomes a walsender, there is a race condition: the postmaster might count the exstant backends, determine that there is one normal backend, and wait for it to die off. Had the walsender transition already occurred before the postmaster counted, it would have proceeded with the shutdown. To fix this, have each child that transforms into a walsender kick the postmaster just after doing so, so that the state machine is certain to advance. Fujii Masao
* Fix typo in PQconnectStartParams().Tom Lane2011-04-02
| | | | | | | | This would lead to leaking the PGconn structure after an error detected by conninfo_array_parse(), as well as failing to return a useful error message in such cases. Backpatch to 9.0 where the error was introduced. Joseph Adams
* Avoid palloc before CurrentMemoryContext is set up on win32Magnus Hagander2011-04-01
| | | | | | | Instead, write the unconverted output - it will be in the wrong encoding, but at least we don't crash. Rushabh Lathia
* Tab completion for COMMENT ON FOREIGN DATA WRAPPER / SERVER.Robert Haas2011-04-01
|
* pg_dump support for comments on FOREIGN DATA WRAPPER and SERVER objects.Robert Haas2011-04-01
| | | | Shigeru Hanada, with some corrections.
* Support comments on FOREIGN DATA WRAPPER and SERVER objects.Robert Haas2011-04-01
| | | | | | | | | | This mostly involves making it work with the objectaddress.c framework, which does most of the heavy lifting. In that vein, change GetForeignDataWrapperOidByName to get_foreign_data_wrapper_oid and GetForeignServerOidByName to get_foreign_server_oid, to match the pattern we use for other object types. Robert Haas and Shigeru Hanada
* Fix compiler warning.Robert Haas2011-04-01
|
* Fix two missing spaces in error messages.Heikki Linnakangas2011-04-01
| | | | Josh Kupershmidt
* Fix a tiny race condition in predicate locking. Need to hold the lock whileHeikki Linnakangas2011-03-31
| | | | | | | | examining the head of predicate locks list. Also, fix the comment of RemoveTargetIfNoLongerUsed, it was neglected when we changed the way update chains are handled. Kevin Grittner
* Increase SHMEM_INDEX_SIZE from 32 to 64. We're currently at 40 entries inHeikki Linnakangas2011-03-31
| | | | | | ShmemIndex, so 64 leaves some headroom. Kevin Grittner
* Don't leak the temporary PLyProcedure struct we create for inline plpythonHeikki Linnakangas2011-03-31
| | | | | | blocks. Investigation by Jan Urbański, though I didn't use his patch.
* Improve error message when WAL ends before reaching end of online backup.Heikki Linnakangas2011-03-31
|