aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Schema-qualify some references to regprocedure.Robert Haas2016-06-10
| | | | Andreas Karlsson, per a gripe from Tom Lane.
* Fix interaction between CREATE INDEX and "snapshot too old".Kevin Grittner2016-06-10
| | | | | | | | | | | | | | | Since indexes are created without valid LSNs, an index created while a snapshot older than old_snapshot_threshold existed could cause queries to return incorrect results when those old snapshots were used, if any relevant rows had been subject to early pruning before the index was built. Prevent usage of a newly created index until all such snapshots are released, for relations where this can happen. Questions about the interaction of "snapshot too old" with index creation were initially raised by Andres Freund. Reviewed by Robert Haas.
* Improve the situation for parallel query versus temp relations.Tom Lane2016-06-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Transmit the leader's temp-namespace state to workers. This is important because without it, the workers do not really have the same search path as the leader. For example, there is no good reason (and no extant code either) to prevent a worker from executing a temp function that the leader created previously; but as things stood it would fail to find the temp function, and then either fail or execute the wrong function entirely. We still prohibit a worker from creating a temp namespace on its own. In effect, a worker can only see the session's temp namespace if the leader had created it before starting the worker, which seems like the right semantics. Also, transmit the leader's BackendId to workers, and arrange for workers to use that when determining the physical file path of a temp relation belonging to their session. While the original intent was to prevent such accesses entirely, there were a number of holes in that, notably in places like dbsize.c which assume they can safely access temp rels of other sessions anyway. We might as well get this right, as a small down payment on someday allowing workers to access the leader's temp tables. (With this change, directly using "MyBackendId" as a relation or buffer backend ID is deprecated; you should use BackendIdForTempRelations() instead. I left a couple of such uses alone though, as they're not going to be reachable in parallel workers until we do something about localbuf.c.) Move the thou-shalt-not-access-thy-leader's-temp-tables prohibition down into localbuf.c, which is where it actually matters, instead of having it in relation_open(). This amounts to recognizing that access to temp tables' catalog entries is perfectly safe in a worker, it's only the data in local buffers that is problematic. Having done all that, we can get rid of the test in has_parallel_hazard() that says that use of a temp table's rowtype is unsafe in parallel workers. That test was unduly expensive, and if we really did need such a prohibition, that was not even close to being a bulletproof guard for it. (For example, any user-defined function executed in a parallel worker might have attempted such access.)
* Repair a bit of pgindent damage.Robert Haas2016-06-09
| | | | | Inserting line-breaks into the middle of a URL is, to put it mildly, not very helpful, so persuade pgindent to leave it alone.
* pgindent run for 9.6Robert Haas2016-06-09
|
* Update pgrowlocks extension for parallel query.Robert Haas2016-06-09
| | | | | | The pgrowlocks function provided by this extension is PARALLEL SAFE. Andreas Karlsson
* Update pg_prewarm extension for parallel query.Robert Haas2016-06-09
| | | | | | The pg_prewarm function provided by this extension is PARALLEL SAFE. Andreas Karlsson
* Update pg_freespacemap extension for parallel query.Robert Haas2016-06-09
| | | | | | All functions provided by this extension are PARALLEL SAFE. Andreas Karlsson
* Update pgcrypto extension for parallel query.Robert Haas2016-06-09
| | | | | | All functions provided by this extension are PARALLEL SAFE. Andreas Karlsson
* Update pg_buffercache extension for parallel query.Robert Haas2016-06-09
| | | | | | | The pg_buffercache_pages function provided by this extension is PARALLEL SAFE. Andreas Karlsson
* Update pageinspect extension for parallel query.Robert Haas2016-06-09
| | | | | | All functions provided by this extension are PARALLEL SAFE. Andreas Karlsson
* Handle contrib's GIN/GIST support function signature changes honestly.Tom Lane2016-06-09
| | | | | | | | | | | | | | | In commits 9ff60273e35cad6e and dbe2328959e12701 I (tgl) fixed the signatures of a bunch of contrib's GIN and GIST support functions so that they would pass validation by the recently-added amvalidate functions. The backend does not actually consult or check those signatures otherwise, so I figured this was basically cosmetic and did not require an extension version bump. However, Alexander Korotkov pointed out that that would leave us in a pretty messy situation if we ever wanted to redefine those functions later, because there wouldn't be a unique way to name them. Since we're going to be bumping these extensions' versions anyway for parallel-query cleanups, let's take care of this now. Andreas Karlsson, adjusted for more search-path-safety by me
* Don't generate parallel paths for rels with parallel-restricted outputs.Robert Haas2016-06-09
| | | | | | | | | | | Such paths are unsafe. To make it cheaper to detect when this case applies, track whether a relation's default PathTarget contains any non-Vars. In most cases, the answer will be no, which enables us to determine cheaply that the target list for a proposed path is parallel-safe. However, subquery pull-up can create cases that require us to inspect the target list more carefully. Amit Kapila, reviewed by me.
* Yet again update typedefs.list file in preparation for pgindent runRobert Haas2016-06-09
| | | | Because the run was delayed, the file had a chance to get out of date.
* Clarify documentation of ceil/ceiling/floor functions.Tom Lane2016-06-09
| | | | | | | | | | | | Document these as "nearest integer >= argument" and "nearest integer <= argument", which will hopefully be less confusing than the old formulation. New wording is from Matlab via Dean Rasheed. I changed the pg_description entries as well as the SGML docs. In the back branches, this will only affect installations initdb'd in the future, but it should be harmless otherwise. Discussion: <CAEZATCW3yzJo-NMSiQs5jXNFbTsCEftZS-Og8=FvFdiU+kYuSA@mail.gmail.com>
* Mop-up for parallel degree-ectomy.Tom Lane2016-06-09
| | | | | | Fix a couple of overlooked uses of "degree" terminology. Make the parallel worker count selection logic in create_plain_partial_paths more robust (in particular, it failed with max_parallel_workers_per_gather set to zero).
* Eliminate "parallel degree" terminology.Robert Haas2016-06-09
| | | | | | | | | | | | This terminology provoked widespread complaints. So, instead, rename the GUC max_parallel_degree to max_parallel_workers_per_gather (leaving room for a possible future GUC max_parallel_workers that acts as a system-wide limit), and rename the parallel_degree reloption to parallel_workers. Rename structure members to match. These changes create a dump/restore hazard for users of PostgreSQL 9.6beta1 who have set the reloption (or applied the GUC using ALTER USER or ALTER DATABASE).
* Polish the documentation concerning phrase text search.Tom Lane2016-06-09
| | | | | | | | | Fix grammar, improve examples, etc. I did not attempt to document the current behavior concerning distance-zero matches, because I think that's broken and needs to change, so I'm not going to use up brain cells figuring out how to explain how it works now. One way or the other, there's still more to write here.
* Fix typo.Robert Haas2016-06-08
| | | | Amit Langote
* Test parallel query essentials in "make check".Noah Misch2016-06-07
| | | | Clément Prévost and Peter Eisentraut
* Make psql_crosstab plans more stableAlvaro Herrera2016-06-07
| | | | | | | | | To achieve this, ANALYZE the data table before querying it, as suggested by Tom Lane. On my system, this enables the test to pass with 128 kB of work_mem (a value with which other tests fail -- so it seems good enough). Reported by Michaël Paquier.
* nls-global.mk: search build dir for source files, tooAlvaro Herrera2016-06-07
| | | | | | | | | | In VPATH builds, the build directory was not being searched for files in GETTEXT_FILES, leading to failure to construct the .pot files. This has bit me all along, but never hard enough to get it fixed; I suppose not a lot of people uses VPATH and NLS-enabled builds, and those that do, don't do "make update-po" often. This is a longstanding problem, so backpatch all the way back.
* Fix thinko in description of table_name parameterAlvaro Herrera2016-06-07
| | | | | | | | Commit 6820094d1 mixed up types of parent object (table) with type of sub-object being commented on. Noticed while fixing docs for COMMENT ON ACCESS METHOD. Backpatch to 9.5, like that commit.
* Add missing translate_columns array entryAlvaro Herrera2016-06-07
| | | | This omission caused an assertion error in \dA+.
* Fix loose ends for SQL ACCESS METHOD objectsAlvaro Herrera2016-06-07
| | | | | | | | | | | | | COMMENT ON ACCESS METHOD was missing; add it, along psql tab-completion support for it. psql was also missing a way to list existing access methods; the new \dA command does that. Also add tab-completion support for DROP ACCESS METHOD. Author: Michael Paquier Discussion: https://www.postgresql.org/message-id/CAB7nPqTzdZdu8J7EF8SXr_R2U5bSUUYNOT3oAWBZdEoggnwhGA@mail.gmail.com
* Revert "Use Foreign Key relationships to infer multi-column join selectivity".Tom Lane2016-06-07
| | | | | | | | | | | | | | This commit reverts 137805f89 as well as the associated commits 015e88942, 5306df283, and 68d704edb. We found multiple bugs in this feature, and there was concern about possible planner slowdown (though to be fair, exhibiting a very large slowdown proved difficult). The way forward requires a considerable rewrite, which may or may not be possible to accomplish in time for beta2. In my judgment reviewing the rewrite will be easier to accomplish starting from a clean slate, so let's temporarily revert what's there now. This also leaves us in a safe state if it turns out to be necessary to postpone the rewrite to the next development cycle. Discussion: <20160429102531.GA13701@huehner.biz>
* Message style and wording fixesPeter Eisentraut2016-06-07
|
* doc: Update wording about direct system catalog manipulationPeter Eisentraut2016-06-07
| | | | | | | It was previously suggested that "esoteric" operations such as creating a new access method would require direct manipulation of the system catalogs, but that example has gone away, and I can't think of a new one to replace it, so just put in some weasel wording.
* doc: Fix typoPeter Eisentraut2016-06-07
|
* Correct phrasing in dsm.c commentsSimon Riggs2016-06-07
|
* Improve documentation for contrib/bloom.Tom Lane2016-06-07
| | | | | | Michael Paquier, David Johnston, Tom Lane Discussion: <CAB7nPqQB8dcFmY1uodmiJOSZdhBFOx-us-uW6rfYrzhpEiBR2g@mail.gmail.com>
* Update lo extension for parallel query.Robert Haas2016-06-07
| | | | | | The lo_oid function provided by this extension is PARALLEL SAFE. Andreas Karlsson
* Update isn extension for parallel query.Robert Haas2016-06-07
| | | | | | All functions provided by this extension are PARALLEL SAFE. Andreas Karlsson
* Update intagg extension for parallel query.Robert Haas2016-06-07
| | | | | | All functions provided by this extension are PARALLEL SAFE. Andreas Karlsson
* Update fuzzystrmatch extension for parallel query.Robert Haas2016-06-07
| | | | | | All functions provided by this extension are PARALLEL SAFE. Andreas Karlsson
* Update earthdistance extension for parallel query.Robert Haas2016-06-07
| | | | | | All functions provided by this extension are PARALLEL SAFE. Andreas Karlsson
* Update citext extension for parallel query.Robert Haas2016-06-07
| | | | | | | All citext functions are PARALLEL SAFE, and a couple of them can benefit from having aggregate combine functions. Andreas Karlsson
* Minor typos / copy-editing for snapmgr.cStephen Frost2016-06-07
| | | | Noticed while reviewing snapshot management.
* psql: Add missing file to nls.mkPeter Eisentraut2016-06-07
| | | | | | crosstabview.c was not added to nls.mk when it was added. Also remove redundant gettext markers, since psql_error() is already registered as a gettext keyword.
* doc: Refer to table by idPeter Eisentraut2016-06-07
|
* pgbench: Fix order in --help outputPeter Eisentraut2016-06-07
| | | | | The new option --progress-timestamp was just added at the end. Put it in alphabetical order.
* Fix simple typo in monitoring docsSimon Riggs2016-06-07
|
* pg_dump only selected components of ACCESS METHODsStephen Frost2016-06-07
| | | | | | | | | | | | | | | | | | dumpAccessMethod() didn't get the memo that we now have a bitfield for the components which should be dumped instead of a simple boolean. Correct that by checking if the relevant bit is set for each component being dumped out (and not dumping it out if it isn't set). This corrects an issue where CREATE ACCESS METHOD commands were being included in non-binary-upgrades when an extension included an access method (as the bloom extensions does). Also add a regression test to make sure that we only dump out the ACCESS METHOD commands, when they are part of an extension, when doing a binary upgrade. Pointed out by Thom Brown.
* PL/Python: Move ereport wrapper test cases to separate filePeter Eisentraut2016-06-07
| | | | | | | In commit 5c3c3cd0a3046339597a03bc708cb5530dc07059, the new tests were apparently just dumped into the first convenient file. Move them to a separate file dedicated to testing that functionality and leave the plpython_test test to test basic functionality, as it did before.
* Don't reset changes_since_analyze after a selective-columns ANALYZE.Tom Lane2016-06-06
| | | | | | | | | | | | If we ANALYZE only selected columns of a table, we should not postpone auto-analyze because of that; other columns may well still need stats updates. As committed, the counter is left alone if a column list is given, whether or not it includes all analyzable columns of the table. Per complaint from Tomasz Ostrowski. It's been like this a long time, so back-patch to all supported branches. Report: <ef99c1bd-ff60-5f32-2733-c7b504eb960c@ato.waw.pl>
* Stop the executor if no more tuples can be sent from worker to leader.Robert Haas2016-06-06
| | | | | | | | | | | | | | | | | | | | | If a Gather node has read as many tuples as it needs (for example, due to Limit) it may detach the queue connecting it to the worker before reading all of the worker's tuples. Rather than let the worker continue to generate and send all of the results, have it stop after sending the next tuple. More could be done here to stop the worker even quicker, but this is about as well as we can hope to do for 9.6. This is in response to a problem report from Andreas Seltenreich. Commit 44339b892a04e94bbb472235882dc6f7023bdc65 should be actually be sufficient to fix that example even without this change, but it seems better to do this, too, since we might otherwise waste quite a large amount of effort in one or more workers. Discussion: CAA4eK1KOKGqmz9bGu+Z42qhRwMbm4R5rfnqsLCNqFs9j14jzEA@mail.gmail.com Amit Kapila
* shm_mq: After a send fails with SHM_MQ_DETACHED, later ones should too.Robert Haas2016-06-06
| | | | | | | | | | | | | | | | Prior to this patch, it was occasionally possible, after shm_mq_sendv had previously returned SHM_MQ_DETACHED, for a later shm_mq_sendv operation to fail an assertion instead of just again returning SHM_MQ_ATTACHED. From the shm_mq code's point of view, it was expecting to be called again with the same arguments, since the previous operation had only partially completed. However, a caller who isn't using non-blocking mode won't be prepared to repeat the call with the same arguments, and this code shouldn't expect that they will. Repair in such a way that we'll be OK whether the next call uses the same arguments or not. Found by Andreas Seltenreich. Analysis and sketch of fix by Amit Kapila. Patch by me, reviewed by Amit Kapila.
* pg_upgrade: Don't overwrite existing files.Robert Haas2016-06-06
| | | | | | | | | | | | | | | | | | For historical reasons, copyFile and rewriteVisibilityMap took a force argument which was always passed as true, meaning that any existing file should be overwritten. However, it seems much safer to instead fail if a file we need to write already exists. While we're at it, remove the "force" argument altogether, since it was never passed as anything other than true (and now we would never pass it as anything other than false, if we kept it). Noted by Andres Freund during post-commit review of the patch that added rewriteVisibilityMap, commit 7087166a88fe0c04fc6636d0d6d6bea1737fc1fb, but this also changes the behavior when copying files without rewriting them. Patch by Masahiko Sawada.
* Fix typo.Robert Haas2016-06-06
| | | | Jim Nasby
* pg_upgrade: Improve error checking in rewriteVisibilityMap.Robert Haas2016-06-06
| | | | | | | | | In the old logic, if read() were to return an error, we'd silently stop rewriting the visibility map at that point in the file. That's safe, but reporting the error is better, so do that instead. Report by Andres Freund. Patch by Masahiko Sawada, with one correction by me.