aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Implement ALTER TABLE .. SET LOGGED / UNLOGGEDAlvaro Herrera2014-08-22
| | | | | | | | | | | | This enables changing permanent (logged) tables to unlogged and vice-versa. (Docs for ALTER TABLE / SET TABLESPACE got shuffled in an order that hopefully makes more sense than the original.) Author: Fabrízio de Royes Mello Reviewed by: Christoph Berg, Andres Freund, Thom Brown Some tweaking by Álvaro Herrera
* Fix outdated commentAlvaro Herrera2014-08-22
|
* Fix corner-case behaviors in JSON/JSONB field extraction operators.Tom Lane2014-08-22
| | | | | | | | | | | | | | | | | | | | | Cause the path extraction operators to return their lefthand input, not NULL, if the path array has no elements. This seems more consistent since the case ought to correspond to applying the simple extraction operator (->) zero times. Cause other corner cases in field/element/path extraction to return NULL rather than failing. This behavior is arguably more useful than throwing an error, since it allows an expression index using these operators to be built even when not all values in the column are suitable for the extraction being indexed. Moreover, we already had multiple inconsistencies between the path extraction operators and the simple extraction operators, as well as inconsistencies between the JSON and JSONB code paths. Adopt a uniform rule of returning NULL rather than throwing an error when the JSON input does not have a structure that permits the request to be satisfied. Back-patch to 9.4. Update the release notes to list this as a behavior change since 9.3.
* Fix newly introduced misspelling of existence in pg_buffercache.Andres Freund2014-08-22
| | | | Peter Geoghegan
* Fix comment in pg_basebackup.Heikki Linnakangas2014-08-22
| | | | | | The option is called --tablespace-mapping, not --tablespace. Amit Kapila
* Change the way pg_basebackup's tablespace mapping is implemented.Heikki Linnakangas2014-08-22
| | | | | | | | | | | | | | | | Previously, we would first create the symlinks the way they are in the original system, and at the end replace them with the mapped symlinks. That never really made much sense, so now we create the symlink pointing to the correct location to begin with, so that there's no need to fix them at the end. The old coding didn't work correctly on Windows, because Windows junction points look more like directories than files, and ought to be removed with rmdir rather than unlink. Also, it incorrectly used "%d" rather than "%u" to print an Oid, but that's gone now. Report and patch by Amit Kapila, with minor changes by me. Reviewed by MauMau. Backpatch to 9.4, where the --tablespace feature was added.
* Fix whitespacePeter Eisentraut2014-08-21
|
* Rework 'MOVE ALL' to 'ALTER .. ALL IN TABLESPACE'Stephen Frost2014-08-21
| | | | | | | | | | | | As 'ALTER TABLESPACE .. MOVE ALL' really didn't change the tablespace but instead changed objects inside tablespaces, it made sense to rework the syntax and supporting functions to operate under the 'ALTER (TABLE|INDEX|MATERIALIZED VIEW)' syntax and to be in tablecmds.c. Pointed out by Alvaro, who also suggested the new syntax. Back-patch to 9.4.
* Add pinning_backends column to the pg_buffercache extension.Andres Freund2014-08-22
| | | | | | | | | | | The new column shows how many backends have a buffer pinned. That can be useful during development or to diagnose production issues e.g. caused by vacuum waiting for cleanup locks. To handle upgrades transparently - the extension might be used in views - deal with callers expecting the old number of columns. Reviewed by Fujii Masao and Rajeev rastogi.
* Add #define INT64_MODIFIER for the printf length modifier for 64-bit ints.Heikki Linnakangas2014-08-21
| | | | | | | We have had INT64_FORMAT and UINT64_FORMAT for a long time, but that's not good enough if you want something more exotic, like "%20lld". Abhijit Menon-Sen, per Andres Freund's suggestion.
* More regression test cases for json/jsonb extraction operators.Tom Lane2014-08-20
| | | | | | | Cover some cases I omitted before, such as null and empty-string elements in the path array. This exposes another inconsistency: json_extract_path complains about empty path elements but jsonb_extract_path does not.
* Fix core dump in jsonb #> operator, and add regression test cases.Tom Lane2014-08-20
| | | | | | | | | | | | | | | | | jsonb's #> operator segfaulted (dereferencing a null pointer) if the RHS was a zero-length array, as reported in bug #11207 from Justin Van Winkle. json's #> operator returns NULL in such cases, so for the moment let's make jsonb act likewise. Also add a bunch of regression test queries memorializing the -> and #> operators' behavior for this and other corner cases. There is a good argument for changing some of these behaviors, as they are not very consistent with each other, and throwing an error isn't necessarily a desirable behavior for operators that are likely to be used in indexes. However, everybody can agree that a core dump is the Wrong Thing, and we need test cases even if we decide to change their expected output later.
* pg_upgrade: adjust logging to use QUERY_ALLOC lengthsBruce Momjian2014-08-20
| | | | | Allows the logging to print the entire text of failed queries, rather than a truncated version.
* Use comma+space as the separator in the default search_path.Heikki Linnakangas2014-08-20
| | | | | | | | While the space is optional, it seems nicer to be consistent with what you get if you do "SET search_path=...". SET always normalizes the separator to be comma+space. Christoph Martin
* Revert "Fix bug in checking of IDENTIFY_SYSTEM result."Fujii Masao2014-08-19
| | | | | | | | | | | | | | This reverts commit 083d29c65b7897f90c70e6dc0a4240a5fa75c8f2. The commit changed the code so that it causes an errors when IDENTIFY_SYSTEM returns three columns. But which prevents us from using the replication-related utilities against the server with older version. This is not what we want. For that compatibility, we allow the utilities to receive three columns as the result of IDENTIFY_SYSTEM eventhough it actually returns four columns in 9.4 or later. Pointed out by Andres Freund.
* Fix bug in checking of IDENTIFY_SYSTEM result.Fujii Masao2014-08-19
| | | | | | | | | | | | | 5a991ef8692ed0d170b44958a81a6bd70e90585 added new column into the result of IDENTIFY_SYSTEM command. But it was not reflected into several codes checking that result. Specifically though the number of columns in the result was increased to 4, it was still compared with 3 in some replication codes. Back-patch to 9.4 where the number of columns in IDENTIFY_SYSTEM result was increased. Report from Michael Paquier
* Install libpq DLL with $(INSTALL_SHLIB).Noah Misch2014-08-18
| | | | | | | Programs need execute permission on a DLL file to load it. MSYS "install" ignores the mode argument, and our Cygwin build statically links libpq into programs. That explains the lack of buildfarm trouble. Back-patch to 9.0 (all supported versions).
* Finish adding file version information to installed Windows binaries.Noah Misch2014-08-18
| | | | | | | In support of this, have the MSVC build follow GNU make in preferring GNUmakefile over Makefile when a directory contains both. Michael Paquier, reviewed by MauMau.
* Replace a few strncmp() calls with strlcpy().Noah Misch2014-08-18
| | | | | | | | | | | strncmp() is a specialized API unsuited for routine copying into fixed-size buffers. On a system where the length of a single filename can exceed MAXPGPATH, the pg_archivecleanup change prevents a simple crash in the subsequent strlen(). Few filesystems support names that long, and calling pg_archivecleanup with untrusted input is still not a credible use case. Therefore, no back-patch. David Rowley
* Make pg_service.conf sample LDIF more portable.Noah Misch2014-08-18
| | | | | | | | The aboriginal sample placed connection parameters in groupOfUniqueNames/uniqueMember. OpenLDAP, at least as early as version 2.4.23, rejects uniqueMember entries that do not conform to the syntax for a distinguished name. Use device/description, which is free-form. Back-patch to 9.4 for web site visibility.
* Document new trigger-related forms of ALTER FOREIGN TABLE.Noah Misch2014-08-18
| | | | | | Oversight in commit 7cbe57c34dec4860243e6d0f81738cfbb6e5d069. Back-patch to 9.4, where that commit first appeared. In passing, release-note the FDW API postcondition change from the same commit.
* Adjust Release Notes to reflect holding off wrapped expanded mode until 9.5 ↵Greg Stark2014-08-18
| | | | (thanks Michael Paquier)
* Fix further concerns about psql wrapping in expanded mode havingGreg Stark2014-08-18
| | | | collateral damage on other formats, by Sergey Muraviov.
* Reorganize functions in be-secure-openssl.cHeikki Linnakangas2014-08-18
| | | | | | | | | Move the functions within the file so that public interface functions come first, followed by internal functions. Previously, be_tls_write was first, then internal stuff, and finally the rest of the public interface, which clearly didn't make much sense. Per Andres Freund's complaint.
* Fix obsolete mention of non-int64 support in CREATE SEQUENCE documentation.Tom Lane2014-08-18
| | | | | | The old text explained what happened if we didn't have working int64 arithmetic. Since that case has been explicitly rejected by configure since 8.4.3, documenting it in the 9.x branches can only produce confusion.
* Use ISO 8601 format for dates converted to JSON, too.Tom Lane2014-08-17
| | | | | | | | Commit f30015b6d794c15d52abbb3df3a65081fbefb1ed made this happen for timestamp and timestamptz, but it seems pretty inconsistent to not do it for simple dates as well. (In passing, I re-pgindent'd json.c.)
* Add missing index terms for replication commands in the document.Fujii Masao2014-08-18
| | | | | | | | Previously only CREATE_REPLICATION_SLOT was exposed as an index term. That's odd and there is no reason not to add index terms for other replication commands. Back-patch to 9.4.
* Make an editorial pass over the 9.4 release notes.Tom Lane2014-08-17
| | | | | | | Update the notes to include commits through today, and do a lot of wordsmithing and markup adjustment. Notably, don't use <link> where <xref> will do; since we got rid of the text-format HISTORY file, there is no longer a reason to avoid <xref>.
* Improve DISCARD documentation.Tom Lane2014-08-17
| | | | | | | | | The new DISCARD SEQUENCES option was inadequately described, and hadn't been mentioned at all in the initial Description paragraph. Rather than rectifying the latter the hard way, it seemed better to rewrite the description as a summary, instead of having it basically duplicate statements made under Parameters. Be more consistent about the ordering of the options, too.
* doc: Work around stylesheet bug for man buildPeter Eisentraut2014-08-17
| | | | | | | | | | | | The upstream stylesheets for man output insert a *roff comment for an occurrence of an indexterm, for reasons that have apparently been lost in history. This, however, is done incorrectly and causes some formatting problems. This hasn't been an issue until now, but the reorganization of indexterm elements inside variablelists has triggered this issue. The upstream fix (http://sourceforge.net/p/docbook/bugs/1340/) is to drop indexterms altogether in man output, and so we'll do the same here.
* Fix bogus return macros in range_overright_internal().Tom Lane2014-08-16
| | | | | | | | | PG_RETURN_BOOL() should only be used in functions following the V1 SQL function API. This coding accidentally fails to fail since letting the compiler coerce the Datum representation of bool back to plain bool does give the right answer; but that doesn't make it a good idea. Back-patch to older branches just to avoid unnecessary code divergence.
* Add opr_sanity queries to inspect commutator/negator links more closely.Tom Lane2014-08-16
| | | | | | | | Make lists of the names of all operators that are claimed to be commutator pairs or negator pairs. This is analogous to the existing queries that make lists of all operator names appearing in particular opclass strategy slots. Unexpected additions to these lists are likely to be mistakes; had we had these queries in place before, bug #11178 might've been prevented.
* Fix bogus commutator/negator links for JSONB containment operators.Tom Lane2014-08-16
| | | | | | | | | | | | <@ and @> are each other's commutators, but they were incorrectly marked as being each other's negators instead. (This was actually questioned in a comment in the original commit, but nobody followed through :-(.) Per bug #11178 from Christian Pronovost. In passing, fix some JSONB operator descriptions that were randomly different from the phrasing of every other similar description. catversion bump for pg_catalog contents change.
* Fix whitespacePeter Eisentraut2014-08-15
|
* pg_upgrade: fix define adjusted during testingBruce Momjian2014-08-15
| | | | from commit e4c3c99ac3d4777458ef3e94b037438b244b72b6
* pg_upgrade: error if run from top of new PGDATA on WindowsBruce Momjian2014-08-15
| | | | | Print a clear error message in this case, rather than wait for initdb --sync-only to generate a "Permission denied" error.
* Doc fix: New York State's capital is Albany.Heikki Linnakangas2014-08-15
| | | | | | | The inheritance example in the manual implies that the capital of New York is New York City, but in reality it's Albany. George Hartzell
* Remove remnants of a JENTRY_ISFIRST flag bit.Heikki Linnakangas2014-08-15
| | | | I removed the flag earlier, but missed a few references in jsonb.h.
* Set shared library path for in-tree TAP testsPeter Eisentraut2014-08-15
| | | | | | When the TAP tests are run in-tree (make check), set the shared library path using the appropriate environment variable, using a logic similar to pg_regress, so that the right libraries are used.
* doc: Fix DocBook XML validityPeter Eisentraut2014-08-14
| | | | See 3a9d430af515e9dd8a9d34a4011367e667a66521. A new one snuck in.
* Update SysV parameter configuration documentation for FreeBSD.Tom Lane2014-08-14
| | | | | | | | | | FreeBSD hasn't made any use of kern.ipc.semmap since 1.1, and newer releases reject attempts to set it altogether; so stop recommending that it be adjusted. Per bug #11161. Back-patch to all supported branches. Before 9.3, also incorporate commit 7a42dff47, which touches the same text and for some reason was not back-patched at the time.
* docs: Add missing period.Robert Haas2014-08-14
| | | | Fabien COELHO and Robert Haas
* Add sortsupport routines for text.Robert Haas2014-08-14
| | | | | | | This provides a small but worthwhile speedup when sorting text, at least in cases to which the sortsupport machinery applies. Robert Haas and Peter Geoghegan
* Fix help message in pg_ctl.Fujii Masao2014-08-14
| | | | | | | | | Previously the help message described that -m is an option for "stop", "restart" and "promote" commands in pg_ctl. But actually that's not an option for "promote". So this commit fixes that incorrect description in the help message. Back-patch to 9.3 where the incorrect description was added.
* Fix whitespacePeter Eisentraut2014-08-13
|
* Add some noreturn attributes based on compiler recommendationsPeter Eisentraut2014-08-13
|
* doc: Remove obsolete set element DSSSL customizationsPeter Eisentraut2014-08-13
| | | | | We don't use set elements (collection of books) anymore, so this is just dead code.
* Prevent memory leaks in parseRelOptions().Tom Lane2014-08-13
| | | | | | | | | | | | | | | | parseRelOptions() tended to leak memory in the caller's context. Most of the time this doesn't really matter since the caller's context is at most query-lifespan, and the function won't be invoked very many times. However, when testing with CLOBBER_CACHE_RECURSIVELY, the same relcache entry can get rebuilt a *lot* of times in one query, leading to significant intraquery memory bloat if it has any reloptions. Noted while investigating a related report from Tomas Vondra. In passing, get rid of some Asserts that are redundant with the one done by deconstruct_array(). As with other patches to avoid leaks in CLOBBER_CACHE testing, it doesn't really seem worth back-patching this.
* Prevent memory leaks in RelationGetIndexList, RelationGetIndexAttrBitmap.Tom Lane2014-08-13
| | | | | | | | | | | | | | | | | When replacing rd_indexlist, rd_indexattr, etc, we neglected to pfree any old value of these fields. Under ordinary circumstances, the old value would always be NULL, so this seemed reasonable enough. However, in cases where we're rebuilding a system catalog's relcache entry and another cache flush occurs on that same catalog meanwhile, it's possible for the field to not be NULL when we return to the outer level, because we already refilled it while recovering from the inner flush. This leads to a fairly small session-lifespan leak in CacheMemoryContext. In real-world usage the leak would be too small to notice; but in testing with CLOBBER_CACHE_RECURSIVELY the leakage can add up to the point of causing OOM failures, as reported by Tomas Vondra. The issue has been there a long time, but it only seems worth fixing in HEAD, like the previous fix in this area (commit 078b2ed291c758e7).
* Expose -S option in pg_receivexlog.Fujii Masao2014-08-13
| | | | | | | | | | | | This option is equivalent to --slot option which pg_receivexlog has already supported, which specifies the replication slot to use for WAL streaming. pg_recvlogical has already supported both options, and this commit makes pg_receivexlog consistent with pg_recvlogical regarding the slot option. Back-patch to 9.4 where the slot option was added. Michael Paquier