aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Split PGC_S_DEFAULT into two values, for true boot_val vs computed default.Tom Lane2011-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Failure to distinguish these cases is the real cause behind the recent reports of Windows builds crashing on 'infinity'::timestamp, which was directly due to failure to establish a value of timezone_abbreviations in postmaster child processes. The postmaster had the desired value, but write_one_nondefault_variable() didn't transmit it to backends. To fix that, invent a new value PGC_S_DYNAMIC_DEFAULT, and be sure to use that or PGC_S_ENV_VAR (as appropriate) for "default" settings that are computed during initialization. (We need both because there's at least one variable that could receive a value from either source.) This commit also fixes ProcessConfigFile's failure to restore the correct default value for certain GUC variables if they are set in postgresql.conf and then removed/commented out of the file. We have to recompute and reinstall the value for any GUC variable that could have received a value from PGC_S_DYNAMIC_DEFAULT or PGC_S_ENV_VAR sources, and there were a number of oversights. (That whole thing is a crock that needs to be redesigned, but not today.) However, I intentionally didn't make it work "exactly right" for the cases of timezone and log_timezone. The exactly right behavior would involve running select_default_timezone, which we'd have to do independently in each postgres process, causing the whole database to become entirely unresponsive for as much as several seconds. That didn't seem like a good idea, especially since the variable's removal from postgresql.conf might be just an accidental edit. Instead the behavior is to adopt the previously active setting as if it were default. Note that this patch creates an ABI break for extensions that use any of the PGC_S_XXX constants; they'll need to be recompiled.
* Clean up parsing of CREATE TRIGGER's argument list.Tom Lane2011-05-11
| | | | | | | | | | | | | Use ColLabel in place of ColId, so that reserved words are accepted as if they were not reserved. Also, remove BCONST and XCONST, which were never documented as allowed. Allowing those exposes to users an implementation detail, namely the format in which the lexer outputs such constants, that seems unwise to expose. No documentation change needed, since this just makes the code act more like you'd expect from reading the CREATE TRIGGER man page. Per complaint from Szymon Guz and subsequent discussion.
* Shut down WAL receiver if it's still running at end of recovery. We used toHeikki Linnakangas2011-05-11
| | | | | just check that it's not running and PANIC if it was, but that can rightfully happen if recovery stops at recovery target.
* Be more explicit about the meaning of the change in standard_conforming_strings.Tom Lane2011-05-10
|
* Mention "backslash" escape processing change in 9.1 release notes.Bruce Momjian2011-05-10
|
* Prevent datebsearch() from crashing on base == NULL && nel == 0.Tom Lane2011-05-10
| | | | | | | | | | | | | | | | | | | | Normally nel == 0 works okay because the initial value of "last" will be less than "base"; but if "base" is zero then the calculation wraps around and we have a very large (unsigned) value for "last", so that the loop can be entered and we get a SIGSEGV on a bogus pointer. This is certainly the proximate cause of the recent reports of Windows builds crashing on 'infinity'::timestamp --- evidently, they're either not setting an active timezonetktbl, or setting an empty one. It's not yet clear to me why it's only happening on Windows and not happening on any buildfarm member. But even if that's due to some bug elsewhere, it seems wise for this function to not choke on the powerup values of timezonetktbl/sztimezonetktbl. I also changed the copy of this code in ecpglib, although I am not sure whether it's exposed to a similar hazard. Per report and stack trace from Richard Broersma.
* For create/dropdb, only connect once to the server since we now have aBruce Momjian2011-05-10
| | | | | | shared description table for pg_database comments. Also update comments about database name selection.
* Add some punctuationPeter Eisentraut2011-05-10
|
* Put options in more alphabetical orderPeter Eisentraut2011-05-10
|
* Put options help in alphabetical orderPeter Eisentraut2011-05-10
|
* Format pg_upgrade --version in line with conventionsPeter Eisentraut2011-05-10
|
* Add bug report line to pg_upgrade --help outputPeter Eisentraut2011-05-10
|
* Put pg_test_fsync --help and --version output in line with conventionsPeter Eisentraut2011-05-10
| | | | Foremost, it should go to stdout.
* Adjust documentation with respect to "unknown" timezone setting.Tom Lane2011-05-10
| | | | | | The recent cleanup of GUC assign hooks got rid of the kludge of using "unknown" as a magic value for timezone and log_timezone. But I forgot to update the documentation to match, as noted by Martin Pitt.
* Be more wary in initdb's creation of platform-dependent collations.Tom Lane2011-05-10
| | | | | | | | | | | Discard any collation aliases that match the built-in pg_collation entries (ie, "default", "C", "POSIX"). Such aliases would be refused by a CREATE COLLATION command, but since initdb is injecting them via a simple INSERT, it has to make the corresponding check for itself. Per Martin Pitt's report of funny behavior in a machine that had a bogus "C.UTF-8" locale. Also, use E'' syntax for the output of escape_quotes, as per its header comment.
* In pg_upgrade, remove suggestion of setting pg_hba.conf to 'trust', nowBruce Momjian2011-05-10
| | | | | that we report the libpq connection failure string. Per suggestion from Robert Haas.
* Documentation cleanup for the possible values of the datatype 'boolean'.Bruce Momjian2011-05-09
|
* Update documentation to state there is three-value logic, notBruce Momjian2011-05-09
| | | | | | | three-value boolean logic. Backpatch to 9.0.X since we just got another bug report about this today.
* Remove "make check" target in src/test/isolation/Makefile.Tom Lane2011-05-09
| | | | | | | | | | This doesn't work as expected because the isolationtester program requires libpq to already be installed. While it works when you've already installed libpq, having to already have done "make install" defeats most of the point of a check with a temp installation. And there are weird corner cases if the dynamic linker picks up an old libpq.so from system library directories. Remove the target (or more precisely, make it print a helpful message) so people don't expect the case to work.
* In pg_upgrade, add status message about superuser check.Bruce Momjian2011-05-09
|
* Add C comment about the fact that the autovacuum limit can go backwardsBruce Momjian2011-05-08
| | | | by 3, but that is it OK.
* Fix some portability issues in isolation regression test driver.Tom Lane2011-05-08
| | | | | | | | | | Remove random system #includes in favor of using postgres_fe.h. (The alternative to that is letting this module grow its own configuration testing ability...) Also fix the "make clean" target to actually clean things up. Per local testing.
* Add C comment why client encoding can be set in pg_upgrade.Bruce Momjian2011-05-07
|
* Add xreflabels to /contrib manuals so links appear correct. Also updateBruce Momjian2011-05-07
| | | | README.links to explain xref properly.
* Add missing documention connecting word.Bruce Momjian2011-05-07
|
* In pg_upgrade, report non-super-user username in error message.Bruce Momjian2011-05-07
|
* Check that the pg_upgrade user specified is a super-user.Bruce Momjian2011-05-07
| | | | | | Also report the error message when the post-pg_ctl connection fails. Per private bug report from EnterpriseDB.
* Add comment about memory reordering to PredicateLockTupleRowVersionLink.Robert Haas2011-05-06
| | | | Dan Ports, per head-scratching from Simon Riggs and myself.
* Adjust pg_upgrade FATAL error messages to have consistent newlines.Bruce Momjian2011-05-06
| | | | Also adjust some error message capitalization for consistency.
* Fix typos in SECURITY LABEL documentation.Robert Haas2011-05-06
| | | | KaiGai Kohei
* Improve compiler string shown in version()Peter Eisentraut2011-05-06
| | | | | | | | | With some compilers such as Clang and ICC emulating GCC, using a version string of the form "GCC $version" can be quite misleading. Also, a great while ago, the version output from gcc --version started including the string "gcc", so it is redundant to repeat that. In order to support ancient GCC versions, we now prefix the result with "GCC " only if the version output does not start with a letter.
* Move RegisterPredicateLockingXid() call to a safer place.Tom Lane2011-05-06
| | | | | | | | | | | | | | | | | | | The SSI patch inserted a call of RegisterPredicateLockingXid into GetNewTransactionId, which was a bad idea on a couple of grounds. First, it's not necessary to hold XidGenLock while manipulating that shared memory, and doing so is bad because XidGenLock is a high-contention lock that should be held for as short a time as possible. (Not to mention that it adds an entirely unnecessary deadlock hazard, since we must take SerializableXactHashLock as well.) Second, the specific place where it was put was between extending CLOG and advancing nextXid, which could result in unpleasant behavior in case of a failure there. Pull the call out to AssignTransactionId, which is much safer and arguably better from a modularity standpoint too. There is more work to do to clean up the failure-before-advancing-nextXid issue, but that is a separate change that will need to be back-patched. So for the moment I just want to make GetNewTransactionId look the same as it did in prior versions.
* Remove precedence labeling of keywords TRUE, FALSE, UNKNOWN, and ZONE.Tom Lane2011-05-05
| | | | | | | | | | | | | | | | These were labeled with precedences just to avoid attaching explicit precedences to the productions in which they were the last terminal symbol. Since a terminal symbol precedence marking can affect many other things too, it seems like better practice to attach precedence labels to the productions, and not mark the terminal symbols. Ideally we'd also remove the precedence attached to NULL_P, but it turns out that we are actually depending on that having a precedence higher than POSTFIXOP, else we get a shift/reduce conflict for postfix operators in b_expr. (Which more or less proves my point about these markings having a high risk of unexpected consequences.) For the moment, move NULL_P into the set of keywords grouped with IDENT, so that at least it will act similarly to non-keywords; and document the interaction.
* Unbreak the regression tests from my previous commitMagnus Hagander2011-05-05
|
* Improve pg_archivecleanup and pg_standby --help outputPeter Eisentraut2011-05-05
| | | | | | | | For consistency with other tools, put the options before further usage information. In pg_standby, remove the supposedly deprecated -l option from the given example invocation.
* Improve formatting of pg_upgrade --help outputPeter Eisentraut2011-05-05
|
* Clarify error message when attempting to create index on foreign tableMagnus Hagander2011-05-05
| | | | | Instead of just saying "is not a table", specifically state that indexes aren't supported on *foreign* tables.
* Improve style of generate_history.pl Perl script.Bruce Momjian2011-05-05
|
* Include unary plus in the Operator Precedence table.Tom Lane2011-05-04
| | | | | | | Per gripe from Grzegorz Szpetkowski. Also, change the subsection heading from "Lexical Precedence" (which is a contradiction in terms) to "Operator Precedence".
* Remove redundant port number checkPeter Eisentraut2011-05-04
| | | | | pg_basebackup doesn't need to police the format of port numbers. libpq already does that.
* Message style cleanupPeter Eisentraut2011-05-04
|
* Fix alignment of --help outputPeter Eisentraut2011-05-04
| | | | Tabs replaced by spaces.
* Link some tables into the surrounding text by their idPeter Eisentraut2011-05-04
|
* Update obsolete mention of Sequoia, now known as TungstenAlvaro Herrera2011-05-03
| | | | | | Per http://joomla.aws.continuent.com/community/lab-projects/sequoia Greg Smith
* Improve description of read/write traffic scalabilityAlvaro Herrera2011-05-03
| | | | Greg Smith, after a suggestion of James Bruce
* Add ID attribute to some sect2's missing itAlvaro Herrera2011-05-02
| | | | David Fetter
* Fix pull_up_sublinks' failure to handle nested pull-up opportunities.Tom Lane2011-05-02
| | | | | | | | | | | | | After finding an EXISTS or ANY sub-select that can be converted to a semi-join or anti-join, we should recurse into the body of the sub-select. This allows cases such as EXISTS-within-EXISTS to be optimized properly. The original coding would leave the lower sub-select as a SubLink, which is no better and often worse than what we can do with a join. Per example from Wayne Conrad. Back-patch to 8.4. There is a related issue in older versions' handling of pull_up_IN_clauses, but they're lame enough anyway about the whole area that it seems not worth the extra work to try to fix.
* Update some ALTER USER cross-references to ALTER ROLEAlvaro Herrera2011-05-02
| | | | Greg Smith
* Small cleanup of spacing in verbatim DocBook elementsPeter Eisentraut2011-05-02
|
* Improve aset.c's space management in contexts with small maxBlockSize.Tom Lane2011-05-02
| | | | | | | | | | | | | | | | | The previous coding would allow requests up to half of maxBlockSize to be treated as "chunks", but when that actually did happen, we'd waste nearly half of the space in the malloc block containing the chunk, if no smaller requests came along to fill it. Avoid this scenario by limiting the maximum size of a chunk to 1/8th maxBlockSize, so that we can waste no more than 1/8th of the allocated space. This will not change the behavior at all for the default context size parameters (with large maxBlockSize), but it will change the behavior when using ALLOCSET_SMALL_MAXSIZE. In particular, there's no longer a need for spell.c to be overly concerned about the request size parameters it uses, so remove a rather unhelpful comment about that. Merlin Moncure, per an idea of Tom Lane's