- 25 May, 2016 4 commits
-
-
Stephen Frost authored
When pulling the list of roles to drop, exclude roles whose names begin with "pg_" (as we do when we are dumping the roles out to recreate them). Also add regression tests to cover pg_dumpall -c and this specific issue. Noticed by Rushabh Lathia. Patch by me.
-
Tom Lane authored
Per buildfarm, this is needed to allow extensions to use XLogIsNeeded() in Windows builds.
-
Tom Lane authored
blbuildempty did not do even approximately the right thing: it tried to add a metapage to the relation's regular data fork, which already has one at that point. It should look like the ambuildempty methods for all the standard index types, ie, initialize a metapage image in some transient storage and then write it directly to the init fork. To support that, refactor BloomInitMetapage into two functions. In passing, fix BloomInitMetapage so it doesn't leave the rd_options field of the index's relcache entry pointing at transient storage. I'm not sure this had any visible consequence, since nothing much else is likely to look at a bloom index's rd_options, but it's certainly poor practice. Per bug #14155 from Zhou Digoal. Report: <20160524144146.22598.42558@wrigleys.postgresql.org>
-
Stephen Frost authored
All of the other tables used in the query in dumpTable(), which is collecting column-level ACLs, are qualified, so we should be qualifying the pg_init_privs, the related sub-select against pg_class and the other queries added by the pg_dump catalog ACLs work. Also, use ::regclass (or ::pg_catalog.regclass, where appropriate) instead of using a poorly constructed query to get the OID for various catalog tables. Issues identified by Noah and Alvaro, patch by me.
-
- 24 May, 2016 7 commits
-
-
Tom Lane authored
Because vac_update_datfrozenxid() updates datfrozenxid and datminmxid in-place, it's unsafe to assume that successive reads of those values will give consistent results. Fetch each one just once to ensure sane behavior in the minimum calculation. Noted while reviewing Alexander Korotkov's patch in the same area. Discussion: <8564.1464116473@sss.pgh.pa.us>
-
Tom Lane authored
vac_truncate_clog() uses its own transaction ID as the comparison point in a sanity check that no database's datfrozenxid has already wrapped around "into the future". That was probably fine when written, but in a lazy vacuum we won't have assigned an XID, so calling GetCurrentTransactionId() causes an XID to be assigned when otherwise one would not be. Most of the time that's not a big problem ... but if we are hard up against the wraparound limit, consuming XIDs during antiwraparound vacuums is a very bad thing. Instead, use ReadNewTransactionId(), which not only avoids this problem but is in itself a better comparison point to test whether wraparound has already occurred. Report and patch by Alexander Korotkov. Back-patch to all versions. Report: <CAPpHfdspOkmiQsxh-UZw2chM6dRMwXAJGEmmbmqYR=yvM7-s6A@mail.gmail.com>
-
Alvaro Herrera authored
Commit 1aba62ec moved the range check of that option form guc.c into bufmgr.c, but introduced a bug by changing a >= 0.0 to > 0.0, which made the value 0 no longer accepted. Put it back. Reported by Jeff Janes, diagnosed by Tom Lane
-
Tom Lane authored
Takayuki Tsunakawa Discussion: <0A3221C70F24FB45833433255569204D1F578FC3@G01JPEXMBYT05>
-
Tom Lane authored
Oracle recommends using VARCHAR2 not VARCHAR, allegedly because they might someday change VARCHAR to be spec-compliant about distinguishing null from empty string. (I'm not holding my breath, though.) Our examples of PL/SQL code were using VARCHAR, which while not wrong is missing the pedagogical opportunity to talk about converting Oracle type names to Postgres. So switch the examples to use VARCHAR2, and add some text about what to do with common Oracle type names like VARCHAR2 and NUMBER. (There is probably more to be said here, but those are the ones I'm sure about offhand.) Per suggestion from rapg12@gmail.com. Discussion: <20160521140046.22591.24672@wrigleys.postgresql.org>
-
Teodor Sigaev authored
Add missing USING BLOOM in example of contrib/bloom Nikolay Shaplov
-
Tom Lane authored
Michael Paquier
-
- 23 May, 2016 4 commits
-
-
Tom Lane authored
Needed for cases in which INSERT ... ON CONFLICT appears inside a recursive CTE item. Per bug #14153 from Thomas Alton. Patch by Peter Geoghegan, slightly adjusted by me Report: <20160521232802.22598.13537@wrigleys.postgresql.org>
-
Tom Lane authored
If RAW_EXPRESSION_COVERAGE_TEST is defined, do a no-op tree walk over every basic DML statement submitted to parse analysis. If we'd had this in place earlier, bug #14153 would have been caught by buildfarm testing. The difficulty is that raw_expression_tree_walker() is only used in limited cases involving CTEs (particularly recursive ones), so it's very easy for an oversight in it to not be noticed during testing of a seemingly-unrelated feature. The type of error we can expect to catch with this is complete omission of a node type from raw_expression_tree_walker(), and perhaps also recursion into a field that doesn't contain a node tree, though that would be an unlikely mistake. It won't catch failure to add new fields that need to be recursed into, unfortunately. I'll go enable this on one or two of my own buildfarm animals once bug #14153 is dealt with. Discussion: <27861.1464040417@sss.pgh.pa.us>
-
Tom Lane authored
do_text_output_multiline() would fail (typically with a null pointer dereference crash) if its input string did not end with a newline. Such cases do not arise in our current sources; but it certainly could happen in future, or in extension code's usage of the function, so we should fix it. To fix, replace "eol += len" with "eol = text + len". While at it, make two cosmetic improvements: mark the input string const, and rename the argument from "text" to "txt" to dodge pgindent strangeness (since "text" is a typedef name). Even though this problem is only latent at present, it seems like a good idea to back-patch the fix, since it's a very simple/safe patch and it's not out of the realm of possibility that we might in future back-patch something that expects sane behavior from do_text_output_multiline(). Per report from Hao Lee. Report: <CAGoxFiFPAGyPAJLcFxTB5cGhTW2yOVBDYeqDugYwV4dEd1L_Ag@mail.gmail.com>
- 22 May, 2016 1 commit
-
-
Peter Eisentraut authored
-
- 21 May, 2016 2 commits
-
-
Tom Lane authored
Correct obsolete install instructions, as noted by Daniel Gustafsson. Clarify the test code's prerequisites. Discussion: <88E617F2-7721-4C4E-84F4-886A2041C1D0@yesql.se>
-
Tom Lane authored
David Johnston pointed out that the original text here had been obsoleted by SQL:2008, which allowed ORDER BY in subqueries. We could weaken the text to describe ORDER-BY-in-subqueries as an optional SQL feature that's possibly unportable; but then the exact same statements would apply to the alternative it's being compared to (ORDER-BY-in-aggregate-calls). So really that would be pretty useless; let's just take out the sentence entirely. Instead, point out the hazard that any extra processing in the upper query might cause the subquery output order to be destroyed. Discussion: <CAKFQuwbAX=iO9QbpN7_jr+BnUWm9FYX8WbEPUvG0p+nZhp6TZg@mail.gmail.com>
-
- 20 May, 2016 2 commits
-
-
Tom Lane authored
Mention it in the Notes section too, per suggestion from David Johnston. Discussion: <20160520165824.22598.31426@wrigleys.postgresql.org>
-
Tom Lane authored
Per bug #14152 from Alejandro Martínez. Back-patch to all supported branches. Discussion: <20160520165824.22598.31426@wrigleys.postgresql.org>
-
- 19 May, 2016 1 commit
-
-
Tom Lane authored
This was overlooked in commit 473b9328, which introduced DROP ACCESS METHOD. Although that command is restricted to superusers, we don't want even superusers dropping the built-in methods; "DROP ACCESS METHOD btree" in particular is unrecoverable from. Pin these objects in the same way that other initdb-created objects are pinned. I chose to bump catversion for this fix. That's not absolutely necessary perhaps, but it will ensure that no 9.6 production systems are missing the pin entries.
-
- 17 May, 2016 3 commits
-
-
Tom Lane authored
It's possible to begin and end an indexscan without ever calling amrescan. contrib/bloom, unlike every other index AM, allocated its "scan->opaque" storage at amrescan time, and thus would crash in amendscan if amrescan hadn't been called. We could fix this by putting in a null-pointer check in blendscan, but I see no very good reason why contrib/bloom should march to its own drummer in this respect. Let's move that initialization to blbeginscan instead. Per report from Jeff Janes.
-
Teodor Sigaev authored
That reduces number of allocation. Per gripe from Michael Paquier and Tom Lane suggestion.
-
Magnus Hagander authored
Amit Langote
-
- 16 May, 2016 3 commits
-
-
Teodor Sigaev authored
Page image should be MAXALIGN'ed because existing code could directly align pointers in page instead of align offset from beginning of page. Found during play with indexes as extenstion, Alexander Korotkov and me
-
Robert Haas authored
Commit 3151f16e was intended to be a commit of a patch from Ashutosh Bapat, but instead I mistakenly committed an earlier version from Michael Paquier (because both patches were submitted with the same filename, and I confused them). Michael's patch fixes the crash but doesn't actually implement the correct test. Repair the incorrect logic, and also expand the comments considerably so that this is all more clear. Ashutosh Bapat and Robert Haas
-
Robert Haas authored
First, even if we cancel a query, we still have to roll back the containing transaction; otherwise, the session will be left in a failed transaction state. Second, we need to support canceling queries whe aborting a subtransaction as well as when aborting a toplevel transaction. Etsuro Fujita, reviewed by Michael Paquier
-
- 15 May, 2016 1 commit
-
-
Tom Lane authored
Reference to getThreadLocalPQExpBuffer here seems inappropriate, since we aren't necessarily using that instantiation of getLocalPQExpBuffer.
-
- 14 May, 2016 3 commits
-
-
Peter Eisentraut authored
This makes the feature names match the SQL standard. From: Alexander Law <exclusion@gmail.com>
-
Peter Eisentraut authored
From: Alexander Law <exclusion@gmail.com>
-
Peter Eisentraut authored
We don't tag the translations repository any more, because the commits into postgresql contain the git hashes, and that's authoritative.
-
- 13 May, 2016 2 commits
-
-
Peter Eisentraut authored
-
Tom Lane authored
Buildfarm member skink failed with symptoms suggesting that an auto-analyze had happened and changed the plan displayed for a test query. Although this is evidently of low probability, regression tests that sometimes fail are no fun, so add commands to force a bitmap scan to be chosen.
-
- 12 May, 2016 4 commits
-
-
Alvaro Herrera authored
Some comments mentioned XLogReplayBuffer, but there's no such function: that was an interim name for a function that got renamed to XLogReadBufferForRedo, before commit 2c03216d was pushed.
-
Alvaro Herrera authored
-
Peter Eisentraut authored
found by David G. Johnston <david.g.johnston@gmail.com>
-
Peter Eisentraut authored
From: Martín Marqués <martin@2ndquadrant.com>
-
- 11 May, 2016 3 commits
-
-
Tom Lane authored
While it could be argued that rejecting system column mentions in the ON CONFLICT list is an unsupported feature, falling over altogether just because the table has a unique index on OID is indubitably a bug. As far as I can tell, fixing infer_arbiter_indexes() is sufficient to make ON CONFLICT (oid) actually work, though making a regression test for that case is problematic because of the impossibility of setting the OID counter to a known value. Minor cosmetic cleanups along with the bug fix.
-
Tom Lane authored
subquery_planner() failed to apply expression preprocessing to the arbiterElems and arbiterWhere fields of an OnConflictExpr. No doubt the theory was that this wasn't necessary because we don't actually try to execute those expressions; but that's wrong, because it results in failure to match to index expressions or index predicates that are changed at all by preprocessing. Per bug #14132 from Reynold Smith. Also add pullup_replace_vars processing for onConflictWhere. Perhaps it's impossible to have a subquery reference there, but I'm not exactly convinced; and even if true today it's a failure waiting to happen. Also add some comments to other places where one or another field of OnConflictExpr is intentionally ignored, with explanation as to why it's okay to do so. Also, catalog/dependency.c failed to record any dependency on the named constraint in ON CONFLICT ON CONSTRAINT, allowing such a constraint to be dropped while rules exist that depend on it, and allowing pg_dump to dump such a rule before the constraint it refers to. The normal execution path managed to error out reasonably for a dangling constraint reference, but ruleutils.c dumped core; so in addition to fixing the omission, add a protective check in ruleutils.c, since we can't retroactively add a dependency in existing databases. Back-patch to 9.5 where this code was introduced. Report: <20160510190350.2608.48667@wrigleys.postgresql.org>
-
Peter Eisentraut authored
-