1. 20 May, 2016 1 commit
  2. 19 May, 2016 1 commit
    • Tom Lane's avatar
      Pin the built-in index access methods. · 16ea51a2
      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.
      16ea51a2
  3. 17 May, 2016 3 commits
    • Tom Lane's avatar
      Avoid possible crash in contrib/bloom's blendscan(). · e13ac558
      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.
      e13ac558
    • Teodor Sigaev's avatar
      Allocate all page images at once in generic wal interface · 7c979c95
      Teodor Sigaev authored
      That reduces number of allocation.
      
      Per gripe from Michael Paquier and Tom Lane suggestion.
      7c979c95
    • Magnus Hagander's avatar
      Fix typo · b09cd2e5
      Magnus Hagander authored
      Amit Langote
      b09cd2e5
  4. 16 May, 2016 3 commits
    • Teodor Sigaev's avatar
      Correctly align page's images in generic wal API · 7c8345f6
      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
      7c8345f6
    • Robert Haas's avatar
      postgres_fdw: Fix the fix for crash when pushing down multiple joins. · 02a568a0
      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
      02a568a0
    • Robert Haas's avatar
      Fix multiple problems in postgres_fdw query cancellation logic. · 1b812afb
      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
      1b812afb
  5. 15 May, 2016 1 commit
    • Tom Lane's avatar
      Fix comment. · b7a9347c
      Tom Lane authored
      Reference to getThreadLocalPQExpBuffer here seems inappropriate, since
      we aren't necessarily using that instantiation of getLocalPQExpBuffer.
      b7a9347c
  6. 14 May, 2016 3 commits
  7. 13 May, 2016 2 commits
  8. 12 May, 2016 4 commits
  9. 11 May, 2016 3 commits
    • Tom Lane's avatar
      Fix infer_arbiter_indexes() to not barf on system columns. · 8a13d5e6
      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.
      8a13d5e6
    • Tom Lane's avatar
      Fix assorted missing infrastructure for ON CONFLICT. · 26e66184
      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>
      26e66184
    • Peter Eisentraut's avatar
      Update key words table for 9.6 · 9be58a2b
      Peter Eisentraut authored
      9be58a2b
  10. 10 May, 2016 1 commit
  11. 09 May, 2016 2 commits
  12. 08 May, 2016 5 commits
  13. 07 May, 2016 8 commits
    • Tom Lane's avatar
      4768cc45
    • Tom Lane's avatar
      In new pg_dump TAP tests, remove trailing "$" from regexps using /m. · b8180884
      Tom Lane authored
      It emerges that some Perl versions before 5.8.9 have a bug with regexps
      that use the /m flag and contain "$".  This is the reason why jacana
      is still failing on HEAD, and I was able to duplicate the failure on
      prairiedog's host.  There's no real need for "$" in these patterns,
      since they are already matching through the statement-terminating
      semicolons (or matching an explicit \n in some cases).  So just
      remove it.
      
      Note: the reason jacana hasn't actually reported any failures in the
      last little while is that the way the pg_dump TAP tests are set up, any
      failure of this sort results in echoing the entire pg_dump dump output
      to stderr.  Since there were about a hundred such failures, that resulted
      in a 30MB log file which choked the buildfarm upload script.  There is
      room for improvement here :-(.
      
      Per off-list discussion with Andrew and Stephen.
      b8180884
    • Tom Lane's avatar
      Docs: improve warnings about nextval() not producing gapless sequences. · 691d99de
      Tom Lane authored
      In the documentation for nextval(), point out explicitly that INSERT ...
      ON CONFLICT will call nextval() if needed for the insertion case, whether
      or not it ends up following the ON CONFLICT path.  This seems to be a
      matter of some confusion, cf bug #14126, so let's be clear about it.
      
      Also mention the issue in the CREATE SEQUENCE reference page, since that
      is another place where people might expect such things to be covered.
      
      Minor wording improvements nearby, as well.
      
      Back-patch to 9.5 where ON CONFLICT was introduced.
      691d99de
    • Tom Lane's avatar
      Update back-branch release notes for the last few commits. · 7dc1d359
      Tom Lane authored
      OpenSSL error queue fix no longer needs to be documented under 9.6.
      7dc1d359
    • Tom Lane's avatar
      Clean up after pg_dump test runs. · 74a73b17
      Tom Lane authored
      The tmp_check directory needs to be removed by "make clean",
      and also ignored by .gitignore.
      74a73b17
    • Tom Lane's avatar
      Fix pg_upgrade to not fail when new-cluster TOAST rules differ from old. · 1a2c17f8
      Tom Lane authored
      This patch essentially reverts commit 4c6780fd, in favor of a much
      simpler solution for the case where the new cluster would choose to create
      a TOAST table but the old cluster doesn't have one: just don't create a
      TOAST table.
      
      The existing code failed in at least two different ways if the situation
      arose: (1) ALTER TABLE RESET didn't grab an exclusive lock, so that the
      lock sanity check in create_toast_table failed; (2) pg_upgrade did not
      provide a pg_type OID for the new toast table, so that the crosscheck in
      TypeCreate failed.  While both these problems were introduced by later
      patches, they show that the hack being used to cause TOAST table creation
      is overwhelmingly fragile (and untested).  I also note that before the
      TypeCreate crosscheck was added, the code would have resulted in assigning
      an indeterminate pg_type OID to the toast table, possibly causing a later
      OID conflict in that catalog; so that it didn't really work even when
      committed.
      
      If we simply don't create a TOAST table, there will only be a problem if
      the code tries to store a tuple that's wider than a page, and field
      compression isn't sufficient to get it under a page.  Given that the TOAST
      creation threshold is intended to be about a quarter of a page, it's very
      hard to believe that cross-version differences in the do-we-need-a-toast-
      table heuristic could result in an observable problem.  So let's just
      follow the old version's conclusion about whether a TOAST table is needed.
      
      (If we ever do change needs_toast_table() so much that this conclusion
      doesn't apply, we can devise a solution at that time, and hopefully do
      it in a less klugy way than 4c6780fd did.)
      
      Back-patch to 9.3, like the previous patch.
      
      Discussion: <8110.1462291671@sss.pgh.pa.us>
      1a2c17f8
    • Stephen Frost's avatar
      Disable BLOB test in pg_dump TAP tests · 0f97c722
      Stephen Frost authored
      Buildfarm member jacana appears to have an issue with running this
      test.  It's not entirely clear to me why, but rather than try to
      fight with it, just disable it for now.
      
      None of the other tests try to write out from psql directly as
      this test does, so it seems likely that the rest of the tests will
      be fine (as they have been on numerous other systems).
      0f97c722
    • Kevin Grittner's avatar
      Mitigate "snapshot too old" performance regression on NUMA · 7e3da1c4
      Kevin Grittner authored
      Limit maintenance of time to xid mapping to once per minute.  At
      least in the tested case this brings performance within 5% of when
      the feature is off, compared to several times slower without this
      patch.
      
      While there, fix comments and whitespace.
      
      Ants Aasma, with cosmetic adjustments suggested by Andres Freund
      Reviewed by Kevin Grittner and Andres Freund
      7e3da1c4
  14. 06 May, 2016 3 commits