summaryrefslogtreecommitdiff
path: root/doc/src
AgeCommit message (Collapse)Author
2016-09-02Don't require dynamic timezone abbreviations to match underlying time zone.Tom Lane
Previously, we threw an error if a dynamic timezone abbreviation did not match any abbreviation recorded in the referenced IANA time zone entry. That seemed like a good consistency check at the time, but it turns out that a number of the abbreviations in the IANA database are things that Olson and crew made up out of whole cloth. Their current policy is to remove such names in favor of using simple numeric offsets. Perhaps unsurprisingly, a lot of these made-up abbreviations have varied in meaning over time, which meant that our commit b2cbced9e and later changes made them into dynamic abbreviations. So with newer IANA database versions that don't mention these abbreviations at all, we fail, as reported in bug #14307 from Neil Anderson. It's worse than just a few unused-in-the-wild abbreviations not working, because the pg_timezone_abbrevs view stops working altogether (since its underlying function tries to compute the whole view result in one call). We considered deleting these abbreviations from our abbreviations list, but the problem with that is that we can't stay ahead of possible future IANA changes. Instead, let's leave the abbreviations list alone, and treat any "orphaned" dynamic abbreviation as just meaning the referenced time zone. It will behave a bit differently than it used to, in that you can't any longer override the zone's standard vs. daylight rule by using the "wrong" abbreviation of a pair, but that's better than failing entirely. (Also, this solution can be interpreted as adding a small new feature, which is that any abbreviation a user wants can be defined as referencing a time zone name.) Back-patch to all supported branches, since this problem affects all of them when using tzdata 2016f or newer. Report: <20160902031551.15674.67337@wrigleys.postgresql.org> Discussion: <6189.1472820913@sss.pgh.pa.us>
2016-08-29Remove support for OpenSSL versions older than 0.9.8.Heikki Linnakangas
OpenSSL officially only supports 1.0.1 and newer. Some OS distributions still provide patches for 0.9.8, but anything older than that is not interesting anymore. Let's simplify things by removing compatibility code. Andreas Karlsson, with small changes by me.
2016-08-28Make another editorial pass over the 9.6 release notes.Tom Lane
I think they're pretty much release-quality now.
2016-08-28Update 9.6 release notes through today.Tom Lane
2016-08-26Add a nonlocalized version of the severity field to client error messages.Tom Lane
This has been requested a few times, but the use-case for it was never entirely clear. The reason for adding it now is that transmission of error reports from parallel workers fails when NLS is active, because pq_parse_errornotice() wrongly assumes that the existing severity field is nonlocalized. There are other ways we could have fixed that, but the other options were basically kluges, whereas this way provides something that's at least arguably a useful feature along with the bug fix. Per report from Jakob Egger. Back-patch into 9.6, because otherwise parallel query is essentially unusable in non-English locales. The problem exists in 9.5 as well, but we don't want to risk changing on-the-wire behavior in 9.5 (even though the possibility of new error fields is specifically called out in the protocol document). It may be sufficient to leave the issue unfixed in 9.5, given the very limited usefulness of pq_parse_errornotice in that version. Discussion: <A88E0006-13CB-49C6-95CC-1A77D717213C@eggerapps.at>
2016-08-24doc: more replacement of <literal> with something betterBruce Momjian
Reported-by: Alexander Law Author: Alexander Law Backpatch-through: 9.6
2016-08-24doc: Fix XSLT speedup with older upstream stylesheet versionsPeter Eisentraut
From: Alexander Law <exclusion@gmail.com>
2016-08-23Create an SP-GiST opclass for inet/cidr.Tom Lane
This seems to offer significantly better search performance than the existing GiST opclass for inet/cidr, at least on data with a wide mix of network mask lengths. (That may suggest that the data splitting heuristics in the GiST opclass could be improved.) Emre Hasegeli, with mostly-cosmetic adjustments by me Discussion: <CAE2gYzxtth9qatW_OAqdOjykS0bxq7AYHLuyAQLPgT7H9ZU0Cw@mail.gmail.com>
2016-08-23doc: fix incorrect 'literal' tagsBruce Momjian
Discussion: dcc4113d-1eda-4f60-d1c5-f50eee160bad@gmail.com Author: Alexander Law <exclusion@gmail.com> Backpatch-through: 9.6
2016-08-23Improve SP-GiST opclass API to better support unlabeled nodes.Tom Lane
Previously, the spgSplitTuple action could only create a new upper tuple containing a single labeled node. This made it useless for opclasses that prefer to work with fixed sets of nodes (labeled or otherwise), which meant that restrictive prefixes could not be used with such node definitions. Change the output field set for the choose() method to allow it to specify any valid node set for the new upper tuple, and to specify which of these nodes to place the modified lower tuple in. In addition to its primary use for fixed node sets, this feature could allow existing opclasses that use variable node sets to skip a separate spgAddNode action when splitting a tuple, by setting up the node needed for the incoming value as part of the spgSplitTuple action. However, care would have to be taken to add the extra node only when it would not make the tuple bigger than before. (spgAddNode can enlarge the tuple, spgSplitTuple can't.) This is a prerequisite for an upcoming SP-GiST inet opclass, but is being committed separately to increase the visibility of the API change. In passing, improve the documentation about the traverse-values feature that was added by commit ccd6eb49a. Emre Hasegeli, with cosmetic adjustments and documentation rework by me Discussion: <CAE2gYzxtth9qatW_OAqdOjykS0bxq7AYHLuyAQLPgT7H9ZU0Cw@mail.gmail.com>
2016-08-23Add txid_current_ifassigned().Robert Haas
Add a variant of txid_current() that returns NULL if no transaction ID is assigned. This version can be used even on a standby server, although it will always return NULL since no transaction IDs can be assigned during recovery. Craig Ringer, per suggestion from Jim Nasby. Reviewed by Petr Jelinek and by me.
2016-08-22doc: fix typo in recent patchBruce Momjian
Reported-by: Jeff Janes Backpatch-through: 9.6
2016-08-18doc: requirepeer is a way to avoid spoofingBruce Momjian
We already mentioned unix_socket_directories as an option. Reported-by: https://www.postgresql.org/message-id/45016837-6cf3-3136-f959-763d06a28076%402ndquadrant.com Backpatch-through: 9.6
2016-08-18doc: Speed up XSLT buildsPeter Eisentraut
The upstream XSLT stylesheets use some very general XPath expressions in some places that end up being very slow. We can optimize them with knowledge about the DocBook document structure and our particular use thereof. For example, when counting preceding chapters to get a number for the current chapter, we only need to count preceding sibling nodes (more or less) instead of searching through the entire node tree for chapter elements. This change attacks the slowest pieces as identified by xsltproc --profile. This makes the HTML build roughly 10 times faster, resulting in the new total build time being about the same as the old DSSSL-based build. Some of the non-HTML build targets (especially FO) will also benefit a bit, but they have not been specifically analyzed. With this, also remove the pg.fast parameter, which was previously a hack to get the build to a manageable speed. Alexander Lakhin <a.lakhin@postgrespro.ru>, with some additional tweaking by me
2016-08-18Support the new regexp_match() function for citext.Tom Lane
Emre Hasegeli Patch: <CAE2gYzzF24ZHWqkMukkHwqa0otbES9Rex22LrjQUNbi=oKziNQ@mail.gmail.com>
2016-08-17Implement regexp_match(), a simplified alternative to regexp_matches().Tom Lane
regexp_match() is like regexp_matches(), but it disallows the 'g' flag and in consequence does not need to return a set. Instead, it returns a simple text array value, or NULL if there's no match. Previously people usually got that behavior with a sub-select, but this way is considerably more efficient. Documentation adjusted so that regexp_match() is presented first and then regexp_matches() is introduced as a more complicated version. This is a bit historically revisionist but seems pedagogically better. Still TODO: extend contrib/citext to support this function. Emre Hasegeli, reviewed by David Johnston Discussion: <CAE2gYzy42sna2ME_e3y1KLQ-4UBrB-eVF0SWn8QG39sQSeVhEw@mail.gmail.com>
2016-08-17Disable update_process_title by default on WindowsMagnus Hagander
The performance overhead of this can be significant on Windows, and most people don't have the tools to view it anyway as Windows does not have native support for process titles. Discussion: <0A3221C70F24FB45833433255569204D1F5BE3E8@G01JPEXMBYT05> Takayuki Tsunakawa
2016-08-16docs: my third pass over the 9.6 release notesBruce Momjian
Backpatch-through: 9.6
2016-08-16doc: Remove some confusion from pg_archivecleanup docPeter Eisentraut
From: Jeff Janes <jeff.janes@gmail.com>
2016-08-16Fix typosPeter Eisentraut
From: Alexander Law <exclusion@gmail.com>
2016-08-16Doc: copy-editing in create_access_method.sgml.Tom Lane
Improve shaky English grammar. And markup.
2016-08-16Doc: remove out-of-date claim that pg_am rows must be inserted by hand.Tom Lane
Commit 473b93287 added a sentence about that, but neglected to remove the adjacent sentence it had falsified. Per Alexander Law.
2016-08-15Stamp HEAD as 10devel.Tom Lane
This is a good bit more complicated than the average new-version stamping commit, because it includes various adjustments in pursuit of changing from three-part to two-part version numbers. It's likely some further work will be needed around that change; but this is enough to get through the regression tests, at least in Unix builds. Peter Eisentraut and Tom Lane
2016-08-13Add SQL-accessible functions for inspecting index AM properties.Tom Lane
Per discussion, we should provide such functions to replace the lost ability to discover AM properties by inspecting pg_am (cf commit 65c5fcd35). The added functionality is also meant to displace any code that was looking directly at pg_index.indoption, since we'd rather not believe that the bit meanings in that field are part of any client API contract. As future-proofing, define the SQL API to not assume that properties that are currently AM-wide or index-wide will remain so unless they logically must be; instead, expose them only when inquiring about a specific index or even specific index column. Also provide the ability for an index AM to override the behavior. In passing, document pg_am.amtype, overlooked in commit 473b93287. Andrew Gierth, with kibitzing by me and others Discussion: <87mvl5on7n.fsf@news-spur.riddles.org.uk>
2016-08-12Doc: clarify that DROP ... CASCADE is recursive.Tom Lane
Apparently that's not obvious to everybody, so let's belabor the point. In passing, document that DROP POLICY has CASCADE/RESTRICT options (which it does, per gram.y) but they do nothing (I assume, anyway). Also update some long-obsolete commentary in gram.y. Discussion: <20160805104837.1412.84915@wrigleys.postgresql.org>
2016-08-12Correct TABLESAMPLE docsSimon Riggs
Original wording was correct but not the intended meaning. Reported by Patrik Wenger
2016-08-11Add ID property to replication slots' sect2Alvaro Herrera
2016-08-10docs: my second pass over the 9.6 release notesBruce Momjian
2016-08-10Doc: write some for adminpack.Tom Lane
Previous contents of adminpack.sgml were rather far short of project norms. Not to mention being outright wrong about the signature of pg_file_read().
2016-08-09docs: my first pass over the 9.6 release notesBruce Momjian
2016-08-09Doc: clarify description of CREATE/ALTER FUNCTION ... SET FROM CURRENT.Tom Lane
Per discussion with David Johnston.
2016-08-08doc: update list of pg_trgm authorsBruce Momjian
Author: Oleg Bartunov
2016-08-08Update 9.6 release notes through today.Tom Lane
2016-08-08Last-minute updates for release notes.Tom Lane
Security: CVE-2016-5423, CVE-2016-5424
2016-08-08Introduce a psql "\connect -reuse-previous=on|off" option.Noah Misch
The decision to reuse values of parameters from a previous connection has been based on whether the new target is a conninfo string. Add this means of overriding that default. This feature arose as one component of a fix for security vulnerabilities in pg_dump, pg_dumpall, and pg_upgrade, so back-patch to 9.1 (all supported versions). In 9.3 and later, comment paragraphs that required update had already-incorrect claims about behavior when no connection is open; fix those problems. Security: CVE-2016-5424
2016-08-08doc: Update benchmark resultsPeter Eisentraut
From: Alexander Law <exclusion@gmail.com>
2016-08-07Update 9.6 release notes through today.Tom Lane
2016-08-07Release notes for 9.5.4, 9.4.9, 9.3.14, 9.2.18, 9.1.23.Tom Lane
2016-08-07doc: Move mention of rsync of temp tables to better placePeter Eisentraut
2016-08-07Fix misestimation of n_distinct for a nearly-unique column with many nulls.Tom Lane
If ANALYZE found no repeated non-null entries in its sample, it set the column's stadistinct value to -1.0, intending to indicate that the entries are all distinct. But what this value actually means is that the number of distinct values is 100% of the table's rowcount, and thus it was overestimating the number of distinct values by however many nulls there are. This could lead to very poor selectivity estimates, as for example in a recent report from Andreas Joseph Krogh. We should discount the stadistinct value by whatever we've estimated the nulls fraction to be. (That is what will happen if we choose to use a negative stadistinct for a column that does have repeated entries, so this code path was just inconsistent.) In addition to fixing the stadistinct entries stored by several different ANALYZE code paths, adjust the logic where get_variable_numdistinct() forces an "all distinct" estimate on the basis of finding a relevant unique index. Unique indexes don't reject nulls, so there's no reason to assume that the null fraction doesn't apply. Back-patch to all supported branches. Back-patching is a bit of a judgment call, but this problem seems to affect only a few users (else we'd have identified it long ago), and it's bad enough when it does happen that destabilizing plan choices in a worse direction seems unlikely. Patch by me, with documentation wording suggested by Dean Rasheed Report: <VisenaEmail.26.df42f82acae38a58.156463942b8@tc7-visena> Discussion: <16143.1470350371@sss.pgh.pa.us>
2016-08-06First-draft release notes for 9.5.4.Tom Lane
As usual, the release notes for other branches will be made by cutting these down, but put them up for community review first.
2016-08-05Make array_to_tsvector() sort and de-duplicate the given strings.Tom Lane
This is required for the result to be a legal tsvector value. Noted while fooling with Andreas Seltenreich's ts_delete() crash. Discussion: <87invhoj6e.fsf@credativ.de>
2016-08-05docs: re-add spaces before units removedBruce Momjian
This reverts the spaces before k/M/G/TB units removed for consistency in commit ca0c37b56f4a80ad758774e34c86cc4335583d29. Discussion: 20160802165116.GC32575@momjian.us
2016-08-04docs: mention rsync of temp and unlogged tablesBruce Momjian
This happens when using rsync to pg_upgrade slaves. Reported-by: Jerry Sievers Discussion: 20160726161946.GA3511@momjian.us
2016-08-03doc: Move indexterms to avoid whitespace issue in man pagesPeter Eisentraut
2016-08-03doc: Remove documentation of nonexistent information schema columnsPeter Eisentraut
These were probably copied in by accident. From: Clément Prévost <prevostclement@gmail.com>
2016-08-03doc: Change recommendation to put NOTIFY into a rulePeter Eisentraut
Suggest a statement trigger instead.
2016-08-03Add OldSnapshotTimeMapLock to wait_event table in docs.Kevin Grittner
Ashutosh Sharma with minor fixes by me.
2016-08-02doc: Remove slightly confusing xreflabelsPeter Eisentraut
It seems clearer to refer to these tables in the normal way.
2016-08-02Small wording tweaksPeter Eisentraut
Dmitry Igrishin