summaryrefslogtreecommitdiff
path: root/doc/src
AgeCommit message (Collapse)Author
2015-07-17Support JSON negative array subscripts everywhereAndrew Dunstan
Previously, there was an inconsistency across json/jsonb operators that operate on datums containing JSON arrays -- only some operators supported negative array count-from-the-end subscripting. Specifically, only a new-to-9.5 jsonb deletion operator had support (the new "jsonb - integer" operator). This inconsistency seemed likely to be counter-intuitive to users. To fix, allow all places where the user can supply an integer subscript to accept a negative subscript value, including path-orientated operators and functions, as well as other extraction operators. This will need to be called out as an incompatibility in the 9.5 release notes, since it's possible that users are relying on certain established extraction operators changed here yielding NULL in the event of a negative subscript. For the json type, this requires adding a way of cheaply getting the total JSON array element count ahead of time when parsing arrays with a negative subscript involved, necessitating an ad-hoc lex and parse. This is followed by a "conversion" from a negative subscript to its equivalent positive-wise value using the count. From there on, it's as if a positive-wise value was originally provided. Note that there is still a minor inconsistency here across jsonb deletion operators. Unlike the aforementioned new "-" deletion operator that accepts an integer on its right hand side, the new "#-" path orientated deletion variant does not throw an error when it appears like an array subscript (input that could be recognized by as an integer literal) is being used on an object, which is wrong-headed. The reason for not being stricter is that it could be the case that an object pair happens to have a key value that looks like an integer; in general, these two possibilities are impossible to differentiate with rhs path text[] argument elements. However, we still don't allow the "#-" path-orientated deletion operator to perform array-style subscripting. Rather, we just return the original left operand value in the event of a negative subscript (which seems analogous to how the established "jsonb/json #> text[]" path-orientated operator may yield NULL in the event of an invalid subscript). In passing, make SetArrayPath() stricter about not accepting cases where there is trailing non-numeric garbage bytes rather than a clean NUL byte. This means, for example, that strings like "10e10" are now not accepted as an array subscript of 10 by some new-to-9.5 path-orientated jsonb operators (e.g. the new #- operator). Finally, remove dead code for jsonb subscript deletion; arguably, this should have been done in commit b81c7b409. Peter Geoghegan and Andrew Dunstan
2015-07-15Mention table_rewrite as valid event trigger tagAlvaro Herrera
This was forgotten in 618c9430a8.
2015-07-12release notes: markup: vacuumdb is an application, not commandBruce Momjian
2015-07-12Optionally don't error out due to preexisting slots in commandline utilities.Andres Freund
pg_receivexlog and pg_recvlogical error out when --create-slot is specified and a slot with the same name already exists. In some cases, especially with pg_receivexlog, that's rather annoying and requires additional scripting. Backpatch to 9.5 as slot control functions have newly been added to pg_receivexlog, and there doesn't seem much point leaving it in a less useful state. Discussion: 20150619144755.GG29350@alap3.anarazel.de
2015-07-11doc: fix typo in CREATE POLICY manual pageBruce Momjian
Backpatch through 9.5
2015-07-10Copy-edit the docs changes of OWNER TO CURRENT/SESSION_USER additions.Heikki Linnakangas
Commit 31eae602 added new syntax to many DDL commands to use CURRENT_USER or SESSION_USER instead of role name in ALTER ... OWNER TO, but because of a misplaced '{', the syntax in the docs implied that the syntax was "ALTER ... CURRENT_USER", instead of "ALTER ... OWNER TO CURRENT_USER". Fix that, and also the funny indentation in some of the modified syntax blurps.
2015-07-09Improve documentation about array concat operator vs. underlying functions.Tom Lane
The documentation implied that there was seldom any reason to use the array_append, array_prepend, and array_cat functions directly. But that's not really true, because they can help make it clear which case is meant, which the || operator can't do since it's overloaded to represent all three cases. Add some discussion and examples illustrating the potentially confusing behavior that can ensue if the parser misinterprets what was meant. Per a complaint from Michael Herold. Back-patch to 9.2, which is where || started to behave this way.
2015-07-09Make wal_compression PGC_SUSET rather than PGC_USERSET.Fujii Masao
When enabling wal_compression, there is a risk to leak data similarly to the BREACH and CRIME attacks on SSL where the compression ratio of a full page image gives a hint of what is the existing data of this page. This vulnerability is quite cumbersome to exploit in practice, but doable. So this patch makes wal_compression PGC_SUSET in order to prevent non-superusers from enabling it and exploiting the vulnerability while DBA thinks the risk very seriously and disables it in postgresql.conf. Back-patch to 9.5 where wal_compression was introduced.
2015-07-09Fix another broken link in documentation.Heikki Linnakangas
Tom fixed another one of these in commit 7f32dbcd, but there was another almost identical one in libpq docs. Per his comment: HP's web server has apparently become case-sensitive sometime recently. Per bug #13479 from Daniel Abraham. Corrected link identified by Alvaro.
2015-07-06Remove incorrect warning from pg_archivecleanup document.Fujii Masao
The .backup file name can be passed to pg_archivecleanup even if it includes the extension which is specified in -x option. However, previously the document incorrectly warned a user not to do that. Back-patch to 9.2 where pg_archivecleanup's -x option and the warning were added.
2015-07-05Fix bad grammar in brin.sgml.Tom Lane
Christoph Berg
2015-07-03Make WAL-related utilities handle .partial WAL files properly.Fujii Masao
Commit de76884 changed an archive recovery so that the last WAL segment with old timeline was renamed with suffix .partial. It should have updated WAL-related utilities so that they can handle such .paritial WAL files, but we forgot that. This patch changes pg_archivecleanup so that it can clean up even archived WAL files with .partial suffix. Also it allows us to specify .partial WAL file name as the command-line argument "oldestkeptwalfile". This patch also changes pg_resetxlog so that it can remove .partial WAL files in pg_xlog directory. pg_xlogdump cannot handle .partial WAL files. Per discussion, we decided only to document that limitation instead of adding the fix. Because a user can easily work around the limitation (i.e., just remove .partial suffix from the file name) and the fix seems complicated for very narrow use case. Back-patch to 9.5 where the problem existed. Review by Michael Paquier. Discussion: http://www.postgresql.org/message-id/CAHGQGwGxMKnVHGgTfiig2Bt_2djec0in3-DLJmtg7+nEiidFdQ@mail.gmail.com
2015-07-02Use American spelling for "behavior".Heikki Linnakangas
For consistency with the rest of the docs. Michael Paquier
2015-06-30Fix broken link in documentation.Tom Lane
HP's web server has apparently become case-sensitive sometime recently. Per bug #13479 from Daniel Abraham. Corrected link identified by Alvaro.
2015-06-29Desultory review of 9.5 release notes.Tom Lane
Minor corrections and clarifications. Notably, for stuff that got moved out of contrib, make sure it's documented somewhere other than "Additional Modules". I'm sure these need more work, but that's all I have time for today.
2015-06-29Code + docs review for escaping of option values (commit 11a020eb6).Tom Lane
Avoid memory leak from incorrect choice of how to free a StringInfo (resetStringInfo doesn't do it). Now that pg_split_opts doesn't scribble on the optstr, mark that as "const" for clarity. Attach the commentary in protocol.sgml to the right place, and add documentation about the user-visible effects of this change on postgres' -o option and libpq's PGOPTIONS option.
2015-06-28Improve design and implementation of pg_file_settings view.Tom Lane
As first committed, this view reported on the file contents as they were at the last SIGHUP event. That's not as useful as reporting on the current contents, and what's more, it didn't work right on Windows unless the current session had serviced at least one SIGHUP. Therefore, arrange to re-read the files when pg_show_all_settings() is called. This requires only minor refactoring so that we can pass changeVal = false to set_config_option() so that it won't actually apply any changes locally. In addition, add error reporting so that errors that would prevent the configuration files from being loaded, or would prevent individual settings from being applied, are visible directly in the view. This makes the view usable for pre-testing whether edits made in the config files will have the desired effect, before one actually issues a SIGHUP. I also added an "applied" column so that it's easy to identify entries that are superseded by later entries; this was the main use-case for the original design, but it seemed unnecessarily hard to use for that. Also fix a 9.4.1 regression that allowed multiple entries for a PGC_POSTMASTER variable to cause bogus complaints in the postmaster log. (The issue here was that commit bf007a27acd7b2fb unintentionally reverted 3e3f65973a3c94a6, which suppressed any duplicate entries within ParseConfigFp. However, since the original coding of the pg_file_settings view depended on such suppression *not* happening, we couldn't have fixed this issue now without first doing something with pg_file_settings. Now we suppress duplicates by marking them "ignored" within ProcessConfigFileInternal, which doesn't hide them in the view.) Lesser changes include: Drive the view directly off the ConfigVariable list, instead of making a basically-equivalent second copy of the data. There's no longer any need to hang onto the data permanently, anyway. Convert show_all_file_settings() to do its work in one call and return a tuplestore; this avoids risks associated with assuming that the GUC state will hold still over the course of query execution. (I think there were probably latent bugs here, though you might need something like a cursor on the view to expose them.) Arrange to run SIGHUP processing in a short-lived memory context, to forestall process-lifespan memory leaks. (There is one known leak in this code, in ProcessConfigDirectory; it seems minor enough to not be worth back-patching a specific fix for.) Remove mistaken assignment to ConfigFileLineno that caused line counting after an include_dir directive to be completely wrong. Add missed failure check in AlterSystemSetConfigFile(). We don't really expect ParseConfigFp() to fail, but that's not an excuse for not checking.
2015-06-29Also trigger restartpoints based on max_wal_size on standby.Heikki Linnakangas
When archive recovery and restartpoints were initially introduced, checkpoint_segments was ignored on the grounds that the files restored from archive don't consume any space in the recovery server. That was changed in later releases, but even then it was arguably a feature rather than a bug, as performing restartpoints as often as checkpoints during normal operation might be excessive, but you might nevertheless not want to waste a lot of space for pre-allocated WAL by setting checkpoint_segments to a high value. But now that we have separate min_wal_size and max_wal_size settings, you can bound WAL usage with max_wal_size, and still avoid consuming excessive space usage by setting min_wal_size to a lower value, so that argument is moot. There are still some issues with actually limiting the space usage to max_wal_size: restartpoints in recovery can only start after seeing the checkpoint record, while a checkpoint starts flushing buffers as soon as the redo-pointer is set. Restartpoint is paced to happen at the same leisurily speed, determined by checkpoint_completion_target, as checkpoints, but because they are started later, max_wal_size can be exceeded by upto one checkpoint cycle's worth of WAL, depending on checkpoint_completion_target. But that seems better than not trying at all, and max_wal_size is a soft limit anyway. The documentation already claimed that max_wal_size is obeyed in recovery, so this just fixes the behaviour to match the docs. However, add some weasel-words there to mention that max_wal_size may well be exceeded by some amount in recovery.
2015-06-29Fix markup in docs.Heikki Linnakangas
Oops. I could swear I built the docs before pushing, but I guess not..
2015-06-28Add missing_ok option to the SQL functions for reading files.Heikki Linnakangas
This makes it possible to use the functions without getting errors, if there is a chance that the file might be removed or renamed concurrently. pg_rewind needs to do just that, although this could be useful for other purposes too. (The changes to pg_rewind to use these functions will come in a separate commit.) The read_binary_file() function isn't very well-suited for extensions.c's purposes anymore, if it ever was. So bite the bullet and make a copy of it in extension.c, tailored for that use case. This seems better than the accidental code reuse, even if it's a some more lines of code. Michael Paquier, with plenty of kibitzing by me.
2015-06-26Fix grammar.Robert Haas
Reported by Peter Geoghegan.
2015-06-26release notes: Add entry for commit 5ea86e6e6.Robert Haas
Peter Geoghegan and Robert Haas
2015-06-26release notes: Combine items for pg_upgrade and pg_upgrade_support moves.Robert Haas
Per suggestions from Amit Langote and Álvaro Herrera.
2015-06-26Improve handling of CustomPath/CustomPlan(State) children.Robert Haas
Allow CustomPath to have a list of paths, CustomPlan a list of plans, and CustomPlanState a list of planstates known to the core system, so that custom path/plan providers can more reasonably use this infrastructure for nodes with multiple children. KaiGai Kohei, per a design suggestion from Tom Lane, with some further kibitzing by me.
2015-06-25Docs: fix claim that to_char('FM') removes trailing zeroes.Tom Lane
Of course, what it removes is leading zeroes. Seems to have been a thinko in commit ffe92d15d53625d5ae0c23f4e1984ed43614a33d. Noted by Hubert Depesz Lubaczewski.
2015-06-24Add index terms for functions jsonb_set and jsonb_pretty.Fujii Masao
2015-06-20Fix BRIN supported operators tableAlvaro Herrera
Some of the entries in the inclusion opclasses where missing operators, and we had an entry for inet_inclusion_ops instead of network_inclusion_ops. Sort the operators within each opclass by strategy number, just to make it easier to spot mistakes. Also sort the rows by data type name, rather than OID.
2015-06-19In immediate shutdown, postmaster should not exit till children are gone.Tom Lane
This adjusts commit 82233ce7ea42d6ba519aaec63008aff49da6c7af so that the postmaster does not exit until all its child processes have exited, even if the 5-second timeout elapses and we have to send SIGKILL. There is no great value in having the postmaster process quit sooner, and doing so can mislead onlookers into thinking that the cluster is fully terminated when actually some child processes still survive. This effect might explain recent test failures on buildfarm member hamster, wherein we failed to restart a cluster just after shutting it down with "pg_ctl stop -m immediate". I also did a bit of code review/beautification, including fixing a faulty use of the Max() macro on a volatile expression. Back-patch to 9.4. In older branches, the postmaster never waited for children to exit during immediate shutdowns, and changing that would be too much of a behavioral change.
2015-06-14release notes: fix Petr's name typosBruce Momjian
Report by Alvaro Herrera
2015-06-13doc: Add note to pg_dump man page about pg_dumpallPeter Eisentraut
suggested by Joshua Drake
2015-06-13Remove stray characterPeter Eisentraut
2015-06-13release notes: consistently name "Alexander Shulgin"Bruce Momjian
Report by Alvaro Herrera
2015-06-13release notes: move/remove/adjust itemsBruce Momjian
Report by Alvaro Herrera
2015-06-13release notes: add accent to Petr Jelínek last nameBruce Momjian
Report by Alvaro Herrera
2015-06-13release notes: remove mention of pg_basebackup non-compatBruce Momjian
Report by Amit Kapila
2015-06-12release notes: add Petr Jelinek to JSON function itemBruce Momjian
Report by Petr Jelinek
2015-06-12release notes: fixes from Fujii MasaoBruce Momjian
Report by Fujii Masao
2015-06-12release notes: reorder hash performance authors, againBruce Momjian
Report by Robert Haas
2015-06-12release notes: reorder sort performance authorsBruce Momjian
Report by Peter Geoghegan
2015-06-12release notes: split apart hash itemsBruce Momjian
Report by Tom Lane, Robert Haas
2015-06-12release notes: add two optimizer itemsBruce Momjian
Report by Tom Lane
2015-06-12Fix alphabetization in catalogs.sgml.Fujii Masao
System catalogs and views should be listed alphabetically in catalog.sgml, but only pg_file_settings view not. This patch also fixes typos in pg_file_settings comments.
2015-06-11release notes: add links to doc sectionsBruce Momjian
2015-06-11release notes: update hash itemBruce Momjian
Report by Tomas Vondra
2015-06-11release notes: move pg_buffercache item to the right sectionBruce Momjian
Report by Amit Langote
2015-06-11release notes: implement suggestionsBruce Momjian
Report by Michael Paquier
2015-06-11release notes: explain meaning of pg_stat_get_snapshot_timestamp()Bruce Momjian
Report by Michael Paquier
2015-06-11release notes: update for pg_basebackup in tar formatBruce Momjian
Report by Amit Kapila
2015-06-11Rename jsonb - text[] operator to #- to avoid ambiguity.Andrew Dunstan
Following recent discussion on -hackers. The underlying function is also renamed to jsonb_delete_path. The regression tests now don't need ugly type casts to avoid the ambiguity, so they are also removed. Catalog version bumped.
2015-06-11First draft of 9.5 release notesBruce Momjian