summaryrefslogtreecommitdiff
path: root/doc/src
AgeCommit message (Collapse)Author
2017-06-19doc: Improve logical replication security setup infoPeter Eisentraut
Reported-by: Jeff Janes <jeff.janes@gmail.com>
2017-06-19Improve PostgreSQL 10.0 release note regarding pg_current_logfile().Tatsuo Ishii
Author: Yugo Nagata
2017-06-18Documentation spell checking and markup improvementsPeter Eisentraut
2017-06-18Fix copy/paste error in docsMagnus Hagander
Author: Julien Rouhaud <julien.rouhaud@dalibo.com>
2017-06-17doc: Fix typoPeter Eisentraut
Author: Julien Rouhaud <julien.rouhaud@dalibo.com>
2017-06-17doc: Fix typoPeter Eisentraut
Author: Julien Rouhaud <julien.rouhaud@dalibo.com>
2017-06-16doc: Add note that COPY commands are published as INSERTsPeter Eisentraut
2017-06-16doc: Add section about logical replication restrictionsPeter Eisentraut
2017-06-15doc: remove mention of Windows junction points by pg_upgradeBruce Momjian
pg_upgrade never used Windows junction points but instead always used Windows hard links. Reported-by: Adrian Klaver Discussion: https://postgr.es/m/6a638c60-90bb-4921-8ee4-5fdad68f8b09@aklaver.com Backpatch-through: 9.3, where the mention first appeared
2017-06-15docs: Fix pg_upgrade standby server upgrade docsBruce Momjian
It was unsafe to instruct users to start/stop the server after pg_upgrade was run but before the standby servers were rsync'ed. The new instructions avoid this. RELEASE NOTES: This fix should be mentioned in the minor release notes. Reported-by: Dmitriy Sarafannikov and Sergey Burladyan Discussion: https://postgr.es/m/87wp8o506b.fsf@seb.koffice.internal Backpatch-through: 9.5, where standby server upgrade instructions first appeared
2017-06-15Fix typo in PostgreSQL 10.0 release note.Tatsuo Ishii
Patch by Yugo Nagata.
2017-06-15Fix document bug regarding read only transactions.Tatsuo Ishii
It was explained that read only transactions (not in standby) allow to update sequences. This had been wrong since the commit: 05d8a561ff85db1545f5768fe8d8dc9d99ad2ef7 Discussion: https://www.postgresql.org/message-id/20170614.110826.425627939780392324.t-ishii%40sraoss.co.jp
2017-06-14Don't force-assign transaction id when exporting a snapshot.Andres Freund
Previously we required every exported transaction to have an xid assigned. That was used to check that the exporting transaction is still running, which in turn is needed to guarantee that that necessary rows haven't been removed in between exporting and importing the snapshot. The exported xid caused unnecessary problems with logical decoding, because slot creation has to wait for all concurrent xid to finish, which in turn serializes concurrent slot creation. It also prohibited snapshots to be exported on hot-standby replicas. Instead export the virtual transactionid, which avoids the unnecessary serialization and the inability to export snapshots on standbys. This changes the file name of the exported snapshot, but since we never documented what that one means, that seems ok. Author: Petr Jelinek, slightly editorialized by me Reviewed-By: Andres Freund Discussion: https://postgr.es/m/f598b4b8-8cd7-0d54-0939-adda763d8c34@2ndquadrant.com
2017-06-14doc: Whitespace fixes in man pagesPeter Eisentraut
2017-06-14Improve release note text about set-returning-function changes.Tom Lane
Paul Ramsey griped about this awhile ago, but I'd been holding fire on changing it until we settled what to do about the CASE/COALESCE issue. Discussion: https://postgr.es/m/CACowWR0AMyUt5fwtvuDqWyYNdp-hQJj9XqSxJR6YM9sKWov=_w@mail.gmail.com
2017-06-14Put documentation of options and commands in more alphabetical orderPeter Eisentraut
2017-06-13Disallow set-returning functions inside CASE or COALESCE.Tom Lane
When we reimplemented SRFs in commit 69f4b9c85, our initial choice was to allow the behavior to vary from historical practice in cases where a SRF call appeared within a conditional-execution construct (currently, only CASE or COALESCE). But that was controversial to begin with, and subsequent discussion has resulted in a consensus that it's better to throw an error instead of executing the query differently from before, so long as we can provide a reasonably clear error message and a way to rewrite the query. Hence, add a parser mechanism to allow detection of such cases during parse analysis. The mechanism just requires storing, in the ParseState, a pointer to the set-returning FuncExpr or OpExpr most recently emitted by parse analysis. Then the parsing functions for CASE and COALESCE can detect the presence of a SRF in their arguments by noting whether this pointer changes while analyzing their arguments. Furthermore, if it does, it provides a suitable error cursor location for the complaint. (This means that if there's more than one SRF in the arguments, the error will point at the last one to be analyzed not the first. While connoisseurs of parsing behavior might find that odd, it's unlikely the average user would ever notice.) While at it, we can also provide more specific error messages than before about some pre-existing restrictions, such as no-SRFs-within-aggregates. Also, reject at parse time cases where a NULLIF or IS DISTINCT FROM construct would need to return a set. We've never supported that, but the restriction is depended on in more subtle ways now, so it seems wise to detect it at the start. Also, provide some documentation about how to rewrite a SRF-within-CASE query using a custom wrapper SRF. It turns out that the information_schema.user_mapping_options view contained an instance of exactly the behavior we're now forbidding; but rewriting it makes it more clear and safer too. initdb forced because of user_mapping_options change. Patch by me, with error message suggestions from Alvaro Herrera and Andres Freund, pursuant to a complaint from Regina Obe. Discussion: https://postgr.es/m/000001d2d5de$d8d66170$8a832450$@pcorp.us
2017-06-13doc: Update example version numbers in pg_upgrade documentationPeter Eisentraut
The exact numbers don't matter, since they are examples, but it was looking quite dated. For the target version, we now automatically substitute the current major version. The updated example source version should be good for a couple of years.
2017-06-13doc: Fix typoPeter Eisentraut
Author: Julien Rouhaud <julien.rouhaud@dalibo.com>
2017-06-12doc: Update external PL listPeter Eisentraut
Add PL/Lua, PL/v8. Remove stale/unmaintained PL/PHP, PL/Py, PL/Ruby, PL/Scheme. Reported-by: Adam Sah <asah@midgard.net>
2017-06-12doc: Update information_schema documentation for identity columnsPeter Eisentraut
This was apparently forgotten in the original patch.
2017-06-12Trim trailing whitespacePeter Eisentraut
2017-06-12Fix ALTER TABLE doc examples.Tatsuo Ishii
Patch by Yugo Nagata <nagata@sraoss.co.jp>. Confirmed by Amit Langote, who is the original author of the document part.
2017-06-09doc: Add Node.js and Go drivers to client interfacesPeter Eisentraut
Also, fix client interface JDBC language name to Java. Author: Sehrope Sarkuni <sehrope@jackdb.com>
2017-06-09doc: Improve types in examplePeter Eisentraut
Reported-by: Nikolaus Thiel <klt@fsfe.org>
2017-06-09doc: Document that subscriptions to same server might hangPeter Eisentraut
2017-06-08Update key words table for version 10Peter Eisentraut
2017-06-08Put new command-line options in alphabetical orderPeter Eisentraut
2017-06-07Docs: improve CREATE TABLE ref page's discussion of partition bounds.Tom Lane
Clarify in the syntax synopsis that partition bound values must be exactly numeric literals or string literals; previously it said "bound_literal" which was defined nowhere. Replace confusing --- and, I think, incorrect in detail --- definition of how range bounds work with a reference to row-wise comparison plus a concrete example (which I stole from Robert Haas). Minor copy-editing in the same area. Discussion: https://postgr.es/m/30475.1496005465@sss.pgh.pa.us Discussion: https://postgr.es/m/28106.1496041449@sss.pgh.pa.us
2017-06-06Fix some cases of "the the" split across two lines.Robert Haas
Kevin Grittner observed that 2186b608b3cb859fe0ec04015a5c4e4cbf69caed introduced a new occurence of this by copying existing text, and I found a few more cases using grep. Discussion: http://postgr.es/m/CADAecHWfG-K+YvocHCkrXV-ycm+eUOaaUVfYZNOnwf0pSmuQCw@mail.gmail.com
2017-06-06Clean up partcollation handling for OID 0.Robert Haas
Consistent with what we do for indexes, we shouldn't try to record dependencies on collation OID 0 or the default collation OID (which is pinned). Also, the fact that indcollation and partcollation can contain zero OIDs when the data type is not collatable should be documented. Amit Langote, per a complaint from me. Discussion: http://postgr.es/m/CA+Tgmoba5mtPgM3NKfG06vv8na5gGbVOj0h4zvivXQwLw8wXXQ@mail.gmail.com
2017-06-06Fix docs to not claim ECPG's SET CONNECTION is not thread-aware.Michael Meskes
Changed by: Tsunakawa, Takayuki <tsunakawa.takay@jp.fujitsu.com>
2017-06-05Prevent possibility of panics during shutdown checkpoint.Andres Freund
When the checkpointer writes the shutdown checkpoint, it checks afterwards whether any WAL has been written since it started and throws a PANIC if so. At that point, only walsenders are still active, so one might think this could not happen, but walsenders can also generate WAL, for instance in BASE_BACKUP and logical decoding related commands (e.g. via hint bits). So they can trigger this panic if such a command is run while the shutdown checkpoint is being written. To fix this, divide the walsender shutdown into two phases. First, checkpointer, itself triggered by postmaster, sends a PROCSIG_WALSND_INIT_STOPPING signal to all walsenders. If the backend is idle or runs an SQL query this causes the backend to shutdown, if logical replication is in progress all existing WAL records are processed followed by a shutdown. Otherwise this causes the walsender to switch to the "stopping" state. In this state, the walsender will reject any further replication commands. The checkpointer begins the shutdown checkpoint once all walsenders are confirmed as stopping. When the shutdown checkpoint finishes, the postmaster sends us SIGUSR2. This instructs walsender to send any outstanding WAL, including the shutdown checkpoint record, wait for it to be replicated to the standby, and then exit. Author: Andres Freund, based on an earlier patch by Michael Paquier Reported-By: Fujii Masao, Andres Freund Reviewed-By: Michael Paquier Discussion: https://postgr.es/m/20170602002912.tqlwn4gymzlxpvs2@alap3.anarazel.de Backpatch: 9.4, where logical decoding was introduced
2017-06-05Revert "Prevent panic during shutdown checkpoint"Andres Freund
This reverts commit 086221cf6b1727c2baed4703c582f657b7c5350e, which was made to master only. The approach implemented in the above commit has some issues. While those could easily be fixed incrementally, doing so would make backpatching considerably harder, so instead first revert this patch. Discussion: https://postgr.es/m/20170602002912.tqlwn4gymzlxpvs2@alap3.anarazel.de
2017-06-05Fix ALTER SUBSCRIPTION grammar ambiguityPeter Eisentraut
There was a grammar ambiguity between SET PUBLICATION name REFRESH and SET PUBLICATION SKIP REFRESH, because SKIP is not a reserved word. To resolve that, fold the refresh choice into the WITH options. Refreshing is the default now. Reported-by: tushar <tushar.ahuja@enterprisedb.com>
2017-06-02doc: Add note that DROP SUBSCRIPTION drops replication slotPeter Eisentraut
Add some information about what to do when this fails.
2017-06-01Fix typoAlvaro Herrera
Reported by: Tim Goodaire Discussion: https://postgr.es/m/20170601182230.1487.26008@wrigleys.postgresql.org
2017-06-01Make ALTER SEQUENCE, including RESTART, fully transactional.Andres Freund
Previously the changes to the "data" part of the sequence, i.e. the one containing the current value, were not transactional, whereas the definition, including minimum and maximum value were. That leads to odd behaviour if a schema change is rolled back, with the potential that out-of-bound sequence values can be returned. To avoid the issue create a new relfilenode fork whenever ALTER SEQUENCE is executed, similar to how TRUNCATE ... RESTART IDENTITY already is already handled. This commit also makes ALTER SEQUENCE RESTART transactional, as it seems to be too confusing to have some forms of ALTER SEQUENCE behave transactionally, some forms not. This way setval() and nextval() are not transactional, but DDL is, which seems to make sense. This commit also rolls back parts of the changes made in 3d092fe540 and f8dc1985f as they're now not needed anymore. Author: Andres Freund Discussion: https://postgr.es/m/20170522154227.nvafbsm62sjpbxvd@alap3.anarazel.de Backpatch: Bug is in master/v10 only
2017-06-01Always use -fPIC, not -fpic, when building shared libraries with gcc.Tom Lane
On some platforms, -fpic fails for sufficiently large shared libraries. We've mostly not hit that boundary yet, but there are some extensions such as Citus and pglogical where it's becoming a problem. A bit of research suggests that the penalty for -fPIC is small, in the single-digit-percentage range --- and there's none at all on popular platforms such as x86_64. So let's just default to -fPIC everywhere and provide one less thing for extension developers to worry about. Per complaint from Christoph Berg. Back-patch to all supported branches. (I did not bother to touch the recently-removed Makefiles for sco and unixware in the back branches, though. We'd have no way to test that it doesn't break anything on those platforms.) Discussion: https://postgr.es/m/20170529155850.qojdfrwkkqnjb3ap@msg.df7cb.de
2017-05-31doc: Add another migration item to release notesPeter Eisentraut
2017-05-30doc: Fix ALTER PUBLICATION detailsPeter Eisentraut
Some of the text was made nonsensical by commit e9500240661c03750923e6f539bfa2d75cfaa32a. Fix that and make some other minor changes. Reported-by: Jeff Janes <jeff.janes@gmail.com>
2017-05-29Prevent running pg_resetwal/pg_resetxlog against wrong-version data dirs.Tom Lane
pg_resetwal (formerly pg_resetxlog) doesn't insist on finding a matching version number in pg_control, and that seems like an important thing to preserve since recovering from corrupt pg_control is a prime reason to need to run it. However, that means you can try to run it against a data directory of a different major version, which is at best useless and at worst disastrous. So as to provide some protection against that type of pilot error, inspect PG_VERSION at startup and refuse to do anything if it doesn't match. PG_VERSION is read-only after initdb, so it's unlikely to get corrupted, and even if it were corrupted it would be easy to fix by hand. This hazard has been there all along, so back-patch to all supported branches. Michael Paquier, with some kibitzing by me Discussion: https://postgr.es/m/f4b8eb91-b934-8a0d-b3cc-68f06e2279d1@enterprisedb.com
2017-05-29Fix reference to RFC specifying SCRAM.Heikki Linnakangas
Noted by Peter Eisentraut
2017-05-28Format v10 release notes' commit references more like previous releases.Tom Lane
Left-justify these comments, remove committer names, remove SGML markup that was randomly added to some of them. Aside from being more consistent with previous practice, this keeps the lines shorter than 80 characters, improving readability in standard terminal windows.
2017-05-28Improve v10 release notes' discussion of money operator changes.Tom Lane
Mention the rounding behavioral change for money/int8. Discussion: https://postgr.es/m/20170519164653.29941.19098@wrigleys.postgresql.org
2017-05-26Remove docs mention of PGREALM variableMagnus Hagander
This variable was only used with Kerberos v4. That support was removed in 2005, but we forgot to remove the documentation. Noted by Shinichi Matsuda
2017-05-25extended stats: Clarify behavior of omitting stat type clauseAlvaro Herrera
Pointed out by Jeff Janes Discussion: https://postgr.es/m/CAMkU=1zGhK-nW10RAXhokcT3MM=YBg=j5LkG9RMDwmu3i0H0Og@mail.gmail.com
2017-05-21Fix precision and rounding issues in money multiplication and division.Tom Lane
The cash_div_intX functions applied rint() to the result of the division. That's not merely useless (because the result is already an integer) but it causes precision loss for values larger than 2^52 or so, because of the forced conversion to float8. On the other hand, the cash_mul_fltX functions neglected to apply rint() to their multiplication results, thus possibly causing off-by-one outputs. Per C standard, arithmetic between any integral value and a float value is performed in float format. Thus, cash_mul_flt4 and cash_div_flt4 produced answers good to only about six digits, even when the float value is exact. We can improve matters noticeably by widening the float inputs to double. (It's tempting to consider using "long double" arithmetic if available, but that's probably too much of a stretch for a back-patched fix.) Also, document that cash_div_intX operators truncate rather than round. Per bug #14663 from Richard Pistole. Back-patch to all supported branches. Discussion: https://postgr.es/m/22403.1495223615@sss.pgh.pa.us
2017-05-20Change documentation references to PG website to use https: not http:Tom Lane
This is more secure, and saves a redirect since we no longer accept plain HTTP connections on the website. References in code comments should probably be updated too, but that doesn't seem to need back-patching, whereas this does. Also, in the 9.2 branch, remove suggestion that you can get the source code via FTP, since that service will be shut down soon. Daniel Gustafsson, with a few additional changes by me Discussion: https://postgr.es/m/9A2C89A7-0BB8-41A8-B288-8B7BD09D7D44@yesql.se
2017-05-19libpq: Try next host if one of them times out.Robert Haas
If one host in a multi-host connection string times out, move on to the next specified host instead of giving up entirely. Takayuki Tsunakawa, reviewed by Michael Paquier. I added a minor adjustment to the documentation. Discussion: http://postgr.es/m/0A3221C70F24FB45833433255569204D1F6F42F5@G01JPEXMBYT05