aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Remove obsolete comment.Robert Haas2011-04-13
| | | | | | | The lock level for adding a parent table is now ShareUpdateExclusiveLock; see commit fbcf4b92aa64d4577bcf25925b055316b978744a. This comment didn't get updated to match, but it doesn't seem important to mention this detail here, so rather than updating it now, just take it out.
* Fix toast table creation.Robert Haas2011-04-13
| | | | | | | | | | | | | | | Instead of using slightly-too-clever heuristics to decide when we must create a TOAST table, just check whether one is needed every time the table is altered. Checking whether a toast table is needed is cheap enough that we needn't worry about doing it on every ALTER TABLE command, and the previous coding is apparently prone to accidental breakage: commit 04e17bae50a73af524731fa11210d5c3f7d8e1f9 broken ALTER TABLE .. SET STORAGE, which moved some actions from AT_PASS_COL_ATTRS to AT_PASS_MISC, and commit 6c5723998594dffa5d47c3cf8c96ccf89c033aae broke ALTER TABLE .. ADD COLUMN by changing the way that adding columns recurses into child tables. Noah Misch, with one comment change by me
* Ensure mark_dummy_rel doesn't create dangling pointers in RelOptInfos.Tom Lane2011-04-13
| | | | | | | | | | | | | | | When we are doing GEQO join planning, the current memory context is a short-lived context that will be reset at the end of geqo_eval(). However, the RelOptInfos for base relations are set up before that and then re-used across many GEQO cycles. Hence, any code that modifies a baserel during join planning has to be careful not to put pointers to the short-lived context into the baserel struct. mark_dummy_rel got this wrong, leading to easy-to-reproduce-once-you-know-how crashes in 8.4, as reported off-list by Leo Carson of SDSC. Some improvements made in 9.0 make it difficult to demonstrate the crash in 9.0 or HEAD; but there's no doubt that there's still a risk factor here, so patch all branches that have the function. (Note: 8.3 has a similar function, but it's only applied to joinrels and thus is not a hazard.)
* Update time zone data files to tzdata release 2011f.Tom Lane2011-04-13
| | | | | DST law changes in Chile, Cuba, Falkland Islands, Morocco, Samoa, Turkey. Historical corrections for South Australia, Alaska, Hawaii.
* Avoid incorrectly granting replication to roles created with NOSUPERUSER.Robert Haas2011-04-13
| | | | Andres Freund
* On HP/UX, the structs used by ioctl(SIOCGLIFCONF) are named differentlyHeikki Linnakangas2011-04-13
| | | | | | | | than on other platforms, and only IPv6 addresses are returned. Because of those two issues, fall back to ioctl(SIOCGIFCONF) on HP/UX, so that it at least compiles and finds IPv4 addresses. This function is currently only used for interpreting samehost/samenet in pg_hba.conf, which isn't that critical.
* Revert the patch to check if we've reached end-of-backup also when doingHeikki Linnakangas2011-04-13
| | | | | | | | | crash recovery, and throw an error if not. hubert depesz lubaczewski pointed out that that situation also happens in the crash recovery following a system crash that happens during an online backup. We might want to do something smarter in 9.1, like put the check back for backups taken with pg_basebackup, but that's for another patch.
* On IA64 architecture, we check the depth of the register stack in additionHeikki Linnakangas2011-04-13
| | | | | to the regular stack. The code to do that is platform and compiler specific, add support for the HP-UX native compiler.
* Pass collations to functions in FunctionCallInfoData, not FmgrInfo.Tom Lane2011-04-12
| | | | | | | | | | | Since collation is effectively an argument, not a property of the function, FmgrInfo is really the wrong place for it; and this becomes critical in cases where a cached FmgrInfo is used for varying purposes that might need different collation settings. Fix by passing it in FunctionCallInfoData instead. In particular this allows a clean fix for bug #5970 (record_cmp not working). This requires touching a bit more code than the original method, but nobody ever thought that collations would not be an invasive patch...
* Suppress compiler warnings about "value computed is not used".Tom Lane2011-04-12
| | | | | | The recent patch to remove gcc 4.6 warnings created some new ones, at least on my rather old gcc version. Try to make everybody happy by casting to "void" when we just want to discard the result.
* Be more wary of missing statistics in eqjoinsel_semi().Tom Lane2011-04-12
| | | | | | | | In particular, if we don't have real ndistinct estimates for both sides, fall back to assuming that half of the left-hand rows have join partners. This is what was done in 8.2 and 8.3 (cf nulltestsel() in those versions). It's pretty stupid but it won't lead us to think that an antijoin produces no rows out, as seen in recent example from Uwe Schroeder.
* Fix RI_Initial_Check to use a COLLATE clause when needed in its query.Tom Lane2011-04-11
| | | | | | | | | | | | | | | | If the referencing and referenced columns have different collations, the parser will be unable to resolve which collation to use unless it's helped out in this way. The effects are sometimes masked, if we end up using a non-collation-sensitive plan; but if we do use a mergejoin we'll see a failure, as recently noted by Robert Haas. The SQL spec states that the referenced column's collation should be used to resolve RI checks, so that's what we do. Note however that we currently don't append a COLLATE clause when writing a query that examines only the referencing column. If we ever support collations that have varying notions of equality, that will have to be changed. For the moment, though, it's preferable to leave it off so that we can use a normal index on the referencing column.
* Clean up most -Wunused-but-set-variable warnings from gcc 4.6Peter Eisentraut2011-04-11
| | | | | | This warning is new in gcc 4.6 and part of -Wall. This patch cleans up most of the noise, but there are some still warnings that are trickier to remove.
* Teach pattern_fixed_prefix() about collations.Tom Lane2011-04-11
| | | | | | This is necessary, not optional, now that ILIKE and regexes are collation aware --- else we might derive a wrong comparison constant for index optimized pattern matches.
* TransferPredicateLocksToNewTarget should initialize a new lockHeikki Linnakangas2011-04-11
| | | | | | | | | | | | | | | | entry's commitSeqNo to that of the old one being transferred, or take the minimum commitSeqNo if it is merging two lock entries. Also, CreatePredicateLock should initialize commitSeqNo for to InvalidSerCommitSeqNo instead of to 0. (I don't think using 0 would actually affect anything, but we should be consistent.) I also added a couple of assertions I used to track this down: a lock's commitSeqNo should never be zero, and it should be InvalidSerCommitSeqNo if and only if the lock is not held by OldCommittedSxact. Dan Ports, to fix leak of predicate locks reported by YAMAMOTO Takashi.
* Fix the size of predicate lock manager's shared memory hash tables at creation.Heikki Linnakangas2011-04-11
| | | | | This way they don't compete with the regular lock manager for the slack shared memory, making the behavior more predictable.
* Add some more mapping macros for Microsoft wide-character API.Tom Lane2011-04-10
| | | | Per buildfarm.
* Insert dummy "break"s to silence compiler complaints.Tom Lane2011-04-10
| | | | | Apparently some compilers dislike a case label with nothing after it. Per buildfarm.
* 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.