aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* pg_upgrade: adjust C commentsBruce Momjian2014-09-11
|
* Remove dead InRecovery check.Heikki Linnakangas2014-09-11
| | | | | With the new B-tree incomplete split handling in 9.4, _bt_insert_parent is never called in recovery.
* improve hash creation warning messageBruce Momjian2014-09-11
| | | | | | This improves the wording of commit 84aa8ba128a08e6fdebb2497c7a79ebf18093e12. Report by Kevin Grittner
* Add missing volatile qualifier.Robert Haas2014-09-11
| | | | | Yet another silly mistake in 0709b7ee72e4bc71ad07b7120acd117265ab51d0, again found by buildfarm member castoroides.
* Fix Windows build.Heikki Linnakangas2014-09-11
| | | | I renamed a variable, but missed an #ifdef WIN32 block.
* Silence compiler warning on Windows.Heikki Linnakangas2014-09-11
| | | | David Rowley.
* Simplify calculation of Poisson distributed delays in pgbench --rate mode.Heikki Linnakangas2014-09-11
| | | | | | | | | | | | | | | | | The previous coding first generated a uniform random value between 0.0 and 1.0, then converted that to an integer between 1 and 10000, and divided that again by 10000. Those conversions are unnecessary; we can use the double value that pg_erand48() returns directly. While we're at it, put the logic into a helper function, getPoissonRand(). The largest delay generated by the old coding was about 9.2 times the average, because of the way the uniformly distributed value used for the calculation was truncated to 1/10000 granularity. The new coding doesn't have such clamping. With my laptop's DBL_MIN value, the maximum delay with the new coding is about 700x the average. That seems acceptable - any reasonable pgbench session should last long enough to average that out. Backpatch to 9.4.
* Change the way latency is calculated with pgbench --rate option.Heikki Linnakangas2014-09-11
| | | | | | | | | | | | | | The reported latency values now include the "schedule lag" time, that is, the time between the transaction's scheduled start time and the time it actually started. This relates better to a model where requests arrive at a certain rate, and we are interested in the response time to the end user or application, rather than the response time of the database itself. Also, when --rate is used, include the schedule lag time in the log output. The --rate option is new in 9.4, so backpatch to 9.4. It seems better to make this change in 9.4, while we're still in the beta period, than ship a 9.4 version that calculates the values differently than 9.5.
* Handle old versions of Test::MorePeter Eisentraut2014-09-10
| | | | | Really old versions of Test::More don't support subplans, so skip the tests in that case.
* Support older versions of "prove"Peter Eisentraut2014-09-10
| | | | | | Apparently, older versions of "prove" (couldn't identify the exact version from the changelog) don't look into the t/ directory for tests by default, so specify it explicitly.
* doc: improve configuration management sectionBruce Momjian2014-09-10
| | | | | | Patch by David Johnston Backpatch through 9.4
* pg_upgrade: compare control version, not catalog versionBruce Momjian2014-09-10
| | | | | | | Also modify test for the possibility the large object value might not exist in the old cluster. Fix for commit e1598a15f4fb0f076a6034d3d3debb9776aff07a
* pg_upgrade: check for large object size compatibilityBruce Momjian2014-09-10
|
* Implement mxid_age() to compute multi-xid ageBruce Momjian2014-09-10
| | | | Report by Josh Berkus
* Issue a warning during the creation of hash indexesBruce Momjian2014-09-10
|
* Fix thinko in 0709b7ee72e4bc71ad07b7120acd117265ab51d0.Robert Haas2014-09-10
| | | | | Buildfarm member castoroides is unhappy with this, for entirely understandable reasons.
* Pack tuples in a hash join batch densely, to save memory.Heikki Linnakangas2014-09-10
| | | | | | | | | | | | | Instead of palloc'ing each HashJoinTuple individually, allocate 32kB chunks and pack the tuples densely in the chunks. This avoids the AllocChunk header overhead, and the space wasted by standard allocator's habit of rounding sizes up to the nearest power of two. This doesn't contain any planner changes, because the planner's estimate of memory usage ignores the palloc overhead. Now that the overhead is smaller, the planner's estimates are in fact more accurate. Tomas Vondra, reviewed by Robert Haas.
* Add support for optional_argument to our own getopt_long() implementation.Andres Freund2014-09-10
| | | | | | | | | | | | | | | | | | | | | 07c8651dd91d5a currently causes compilation errors on mscv (and probably some other) compilers because our getopt_long() implementation doesn't have support for optional_argument. Thus implement optional_argument in our fallback implemenation. It's quite possibly also useful in other cases. Arguably this needs a configure check for optional_argument, but it has existed pretty much since getopt_long() was introduced and thus doesn't seem worth the configure runtime. Normally I'd would not push a patch this fast, but this allows msvc to build again and has low risk as only optional_argument behaviour has changed. Author: Michael Paquier and Andres Freund Discussion: CAB7nPqS5VeedSCxrK=QouokbawgGKLpyc1Q++RRFCa_sjcSVrg@mail.gmail.com
* Fix typo in 07c8651dd91d5 causing WIN32_ONLY_COMPILER builds to fail.Andres Freund2014-09-10
|
* Preserve AND/OR flatness while extracting restriction OR clauses.Tom Lane2014-09-09
| | | | | | | | | The code I added in commit f343a880d5555faf1dad0286c5632047c8f599ad was careless about preserving AND/OR flatness: it could create a structure with an OR node directly underneath another one. That breaks an assumption that's fairly important for planning efficiency, not to mention triggering various Asserts (as reported by Benjamin Smith). Add a trifle more logic to handle the case properly.
* Add new psql help topics, accessible to both --help and \?.Andres Freund2014-09-10
| | | | | | | | | | | | | | | | | | | | | Add --help=<topic> for the commandline, and \? <topic> as a backslash command, to show more help than the invocations without parameters do. "commands", "variables" and "options" currently exist as help topics describing, respectively, backslash commands, psql variables, and commandline switches. Without parameters the help commands show their previous topic. Some further wordsmithing or extending of the added help content might be needed; but there seems little benefit delaying the overall feature further. Author: Pavel Stehule, editorialized by many Reviewed-By: Andres Freund, Petr Jelinek, Fujii Masao, MauMau, Abhijit Menon-Sen and Erik Rijkers. Discussion: CAFj8pRDVGuC-nXBfe2CK8vpyzd2Dsr9GVpbrATAnZO=2YQ0s2Q@mail.gmail.com, CAFj8pRA54AbTv2RXDTRxiAd8hy8wxmoVLqhJDRCwEnhdd7OUkw@mail.gmail.com
* Change the spinlock primitives to function as compiler barriers.Robert Haas2014-09-09
| | | | | | | | | | | | | | Previously, they functioned as barriers against CPU reordering but not compiler reordering, an odd API that required extensive use of volatile everywhere that spinlocks are used. That's error-prone and has negative implications for performance, so change it. In theory, this makes it safe to remove many of the uses of volatile that we currently have in our code base, but we may find that there are some bugs in this effort when we do. In the long run, though, this should make for much more maintainable code. Patch by me. Review by Andres Freund.
* Add width_bucket(anyelement, anyarray).Tom Lane2014-09-09
| | | | | | | | | | | This provides a convenient method of classifying input values into buckets that are not necessarily equal-width. It works on any sortable data type. The choice of function name is a bit debatable, perhaps, but showing that there's a relationship to the SQL standard's width_bucket() function seems more attractive than the other proposals. Petr Jelinek, reviewed by Pavel Stehule
* doc: Reflect renaming of Mac OS X to OS XPeter Eisentraut2014-09-09
| | | | bug #10528
* Allow empty content in xml typePeter Eisentraut2014-09-09
| | | | | | | | The xml type previously rejected "content" that is empty or consists only of spaces. But the SQL/XML standard allows that, so change that. The accepted values for XML "documents" are not changed. Reviewed-by: Ali Akbar <the.apaan@gmail.com>
* Move ALTER ... ALL IN to ProcessUtilitySlowStephen Frost2014-09-09
| | | | | | | | | | | | | | Now that ALTER TABLE .. ALL IN TABLESPACE has replaced the previous ALTER TABLESPACE approach, it makes sense to move the calls down in to ProcessUtilitySlow where the rest of ALTER TABLE is handled. This also means that event triggers will support ALTER TABLE .. ALL (which was the impetus for the original change, though it has other good qualities also). Álvaro Herrera Back-patch to 9.4 as the original rework was.
* Fix typo in solaris spinlock fix.Andres Freund2014-09-09
| | | | | 07968dbfaad03 missed part of the S_UNLOCK define when building for sparcv8+.
* Fix spinlock implementation for some !solaris sparc platforms.Andres Freund2014-09-09
| | | | | | | | | | | | | | | | | Some Sparc CPUs can be run in various coherence models, ranging from RMO (relaxed) over PSO (partial) to TSO (total). Solaris has always run CPUs in TSO mode while in userland, but linux didn't use to and the various *BSDs still don't. Unfortunately the sparc TAS/S_UNLOCK were only correct under TSO. Fix that by adding the necessary memory barrier instructions. On sparcv8+, which should be all relevant CPUs, these are treated as NOPs if the current consistency model doesn't require the barriers. Discussion: 20140630222854.GW26930@awork2.anarazel.de Will be backpatched to all released branches once a few buildfarm cycles haven't shown up problems. As I've no access to sparc, this is blindly written.
* Fix psql \s to work with recent libedit, and add pager support.Tom Lane2014-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | psql's \s (print command history) doesn't work at all with recent libedit versions when printing to the terminal, because libedit tries to do an fchmod() on the target file which will fail if the target is /dev/tty. (We'd already noted this in the context of the target being /dev/null.) Even before that, it didn't work pleasantly, because libedit likes to encode the command history file (to ensure successful reloading), which renders it nigh unreadable, not to mention significantly different-looking depending on exactly which libedit version you have. So let's forget using write_history() for this purpose, and instead print the data ourselves, using logic similar to that used to iterate over the history for newline encoding/decoding purposes. While we're at it, insert the ability to use the pager when \s is printing to the terminal. This has been an acknowledged shortcoming of \s for many years, so while you could argue it's not exactly a back-patchable bug fix it still seems like a good improvement. Anyone who's seriously annoyed at this can use "\s /dev/tty" or local equivalent to get the old behavior. Experimentation with this showed that the history iteration logic was actually rather broken when used with libedit. It turns out that with libedit you have to use previous_history() not next_history() to advance to more recent history entries. The easiest and most robust fix for this seems to be to make a run-time test to verify which function to call. We had not noticed this because libedit doesn't really need the newline encoding logic: its own encoding ensures that command entries containing newlines are reloaded correctly (unlike libreadline). So the effective behavior with recent libedits was that only the oldest history entry got newline-encoded or newline-decoded. However, because of yet other bugs in history_set_pos(), some old versions of libedit allowed the existing loop logic to reach entries besides the oldest, which means there may be libedit ~/.psql_history files out there containing encoded newlines in more than just the oldest entry. To ensure we can reload such files, it seems appropriate to back-patch this fix, even though that will result in some incompatibility with older psql versions (ie, multiline history entries written by a psql with this fix will look corrupted to a psql without it, if its libedit is reasonably up to date). Stepan Rutz and Tom Lane
* Documentation fix: sum(float4) returns float4, not float8.Tom Lane2014-09-07
| | | | | | | | | The old claim is from my commit d06ebdb8d3425185d7e641d15e45908658a0177d of 2000-07-17, but it seems to have been a plain old thinko; sum(float4) has been distinct from sum(float8) since Berkeley days. Noted by KaiGai Kohei. While at it, mention the existence of sum(money), which is also of embarrassingly ancient vintage.
* Tab completion for ALTER .. ALL IN TABLESPACEStephen Frost2014-09-07
| | | | | | | | | | Update the tab completion for the changes made in 3c4cf080879b386d4ed1814667aca025caafe608, which rework 'MOVE ALL' to be 'ALTER .. ALL IN TABLESPACE'. Fujii Masao Back-patch to 9.4, as the original change was.
* docs: Improve pg_isready details about username/dbnameBruce Momjian2014-09-06
| | | | | | Report by Erik Rijkers Backpatch through 9.4
* Properly document that -r is only honored from the command-line.Bruce Momjian2014-09-06
| | | | | | | | This is for postgres/postmaster options. Report by Tom Lane Backpatch through 9.4
* Report timezone offset in pg_dump/pg_dumpallBruce Momjian2014-09-05
| | | | | | Use consistent format for all such displays. Report by Gavin Flower
* pg_upgrade: preserve the timestamp epochBruce Momjian2014-09-05
| | | | | | This is useful for replication tools like Slony and Skytools. Report by Sergey Konoplev
* Clarify documentation about "peer" rows in window functionsBruce Momjian2014-09-05
| | | | | | Peer rows are matching rows when ORDER BY is specified. Report by arnaud.mouronval@gmail.com, David G Johnston
* Rename C variables in formatting.c, for clarityBruce Momjian2014-09-05
| | | | | Also add C comments. This should help future debugging of this notorious file.
* Assorted message fixes and improvementsPeter Eisentraut2014-09-05
|
* Add tab-completion for reloptions like user_catalog_table.Fujii Masao2014-09-05
| | | | | | Back-patch to 9.4 where user_catalog_table was added. Review by Michael Paquier
* doc: Remove dead linkPeter Eisentraut2014-09-04
| | | | | | | The link to the NIST web page about DES standards leads to nowhere, and according to archive.org has been forwarded to an unrelated page for many years. Therefore, just remove that link. More up to date information can be found via Wikipedia, for example.
* Fix segmentation fault that an empty prepared statement could cause.Fujii Masao2014-09-05
| | | | | | Back-patch to all supported branches. Per bug #11335 from Haruka Takatsuka
* Update comment to reflect commit 1d41739e5a04b0e93304d24d864b6bfa3efc45f2.Robert Haas2014-09-04
| | | | Peter Geoghegan
* Allow \watch to display query execution time if \timing is enabled.Fujii Masao2014-09-04
| | | | | | | | | | | | | | | | Previously \watch could not display the query execution time even when \timing was enabled because it used PSQLexec instead of SendQuery and that function didn't support \timing. This patch introduces PSQLexecWatch and changes \watch so as to use it, instead. PSQLexecWatch is the function to run the query, print its results and display how long it took (only when \timing is enabled). This patch also changes --echo-hidden so that it doesn't print the query that \watch executes. Since \watch cannot execute backslash command queries, they should not be printed even when --echo-hidden is set. Patch by me, review by Heikki Linnakangas and Michael Paquier
* Update URL reference material in /contrib/isn docsBruce Momjian2014-09-03
| | | | Report by Peter Eisentraut
* Document use of partial indexes for partial unique constraintsBruce Momjian2014-09-03
| | | | | | Report by Tomáš Greif Backpatch through 9.4
* Issue clearer notice when inherited merged columns are movedBruce Momjian2014-09-03
| | | | | | | CREATE TABLE INHERIT moves user-specified columns to the location of the inherited column. Report by Fatal Majid
* Check number of parameters in RAISE statement at compile time.Heikki Linnakangas2014-09-02
| | | | | | | | | The number of % parameter markers in RAISE statement should match the number of parameters given. We used to check that at execution time, but we have all the information needed at compile time, so let's check it at compile time instead. It's generally better to find mistakes earlier. Marko Tiikkaja, reviewed by Fabien Coelho
* Refactor per-page logic common to all redo routines to a new function.Heikki Linnakangas2014-09-02
| | | | | | | | | | | | Every redo routine uses the same idiom to determine what to do to a page: check if there's a backup block for it, and if not read, the buffer if the block exists, and check its LSN. Refactor that into a common function, XLogReadBufferForRedo, making all the redo routines shorter and more readable. This has no user-visible effect, and makes no changes to the WAL format. Reviewed by Andres Freund, Alvaro Herrera, Michael Paquier.
* Silence warning on new versions of clang.Heikki Linnakangas2014-09-02
| | | | Andres Freund
* Add psql PROMPT variable showing which line of a statement is being edited.Andres Freund2014-09-02
| | | | | | | | The new %l substitution shows the line number inside a (potentially multi-line) statement starting from one. Author: Sawada Masahiko, heavily editorialized by me. Reviewed-By: Jeevan Chalke, Alvaro Herrera