1. 22 Sep, 2017 1 commit
  2. 21 Sep, 2017 4 commits
  3. 20 Sep, 2017 13 commits
  4. 19 Sep, 2017 14 commits
  5. 18 Sep, 2017 7 commits
    • Tom Lane's avatar
      Minor code-cleanliness improvements for btree. · eb5c404b
      Tom Lane authored
      Make the btree page-flags test macros (P_ISLEAF and friends) return clean
      boolean values, rather than values that might not fit in a bool.  Use them
      in a few places that were randomly referencing the flag bits directly.
      
      In passing, change access/nbtree/'s only direct use of BUFFER_LOCK_SHARE to
      BT_READ.  (Some think we should go the other way, but as long as we have
      BT_READ/BT_WRITE, let's use them consistently.)
      
      Masahiko Sawada, reviewed by Doug Doole
      
      Discussion: https://postgr.es/m/CAD21AoBmWPeN=WBB5Jvyz_Nt3rmW1ebUyAnk3ZbJP3RMXALJog@mail.gmail.com
      eb5c404b
    • Tom Lane's avatar
      Make ExplainOpenGroup and ExplainCloseGroup public. · 66917bfa
      Tom Lane authored
      Extensions with custom plan nodes might like to use these in their
      EXPLAIN output.
      
      Hadi Moshayedi
      
      Discussion: https://postgr.es/m/CA+_kT_dU-rHCN0u6pjA6bN5CZniMfD=-wVqPY4QLrKUY_uJq5w@mail.gmail.com
      66917bfa
    • Tom Lane's avatar
      Make DatumGetFoo/PG_GETARG_FOO/PG_RETURN_FOO macro names more consistent. · 4bd19946
      Tom Lane authored
      By project convention, these names should include "P" when dealing with a
      pointer type; that is, if the result of a GETARG macro is of type FOO *,
      it should be called PG_GETARG_FOO_P not just PG_GETARG_FOO.  Some newer
      types such as JSONB and ranges had not followed the convention, and a
      number of contrib modules hadn't gotten that memo either.  Rename the
      offending macros to improve consistency.
      
      In passing, fix a few places that thought PG_DETOAST_DATUM() returns
      a Datum; it does not, it returns "struct varlena *".  Applying
      DatumGetPointer to that happens not to cause any bad effects today,
      but it's formally wrong.  Also, adjust an ltree macro that was designed
      without any thought for what pgindent would do with it.
      
      This is all cosmetic and shouldn't have any impact on generated code.
      
      Mark Dilger, some further tweaks by me
      
      Discussion: https://postgr.es/m/EA5676F4-766F-4F38-8348-ECC7DB427C6A@gmail.com
      4bd19946
    • Tom Lane's avatar
      Fix, or at least ameliorate, bugs in logicalrep_worker_launch(). · 3e1683d3
      Tom Lane authored
      If we failed to get a background worker slot, the code just walked
      away from the logicalrep-worker slot it already had, leaving that
      looking like the worker is still starting up.  This led to an indefinite
      hang in subscription startup, as reported by Thomas Munro.  We must
      release the slot on failure.
      
      Also fix a thinko: we must capture the worker slot's generation before
      releasing LogicalRepWorkerLock the first time, else testing to see if
      it's changed is pretty meaningless.
      
      BTW, the CHECK_FOR_INTERRUPTS() in WaitForReplicationWorkerAttach is a
      ticking time bomb, even without considering the possibility of elog(ERROR)
      in one of the other functions it calls.  Really, this entire business needs
      a redesign with some actual thought about error recovery.  But for now
      I'm just band-aiding the case observed in testing.
      
      Back-patch to v10 where this code was added.
      
      Discussion: https://postgr.es/m/CAEepm=2bP3TBMFBArP6o20AZaRduWjMnjCjt22hSdnA-EvrtCw@mail.gmail.com
      3e1683d3
    • Peter Eisentraut's avatar
      4b17c894
    • Peter Eisentraut's avatar
      d31892e2
    • Peter Eisentraut's avatar
      Fix DROP SUBSCRIPTION hang · 8edacab2
      Peter Eisentraut authored
      When ALTER SUBSCRIPTION DISABLE is run in the same transaction before
      DROP SUBSCRIPTION, the latter will hang because workers will still be
      running, not having seen the DISABLE committed, and DROP SUBSCRIPTION
      will wait until the workers have vacated the replication origin slots.
      
      Previously, DROP SUBSCRIPTION killed the logical replication workers
      immediately only if it was going to drop the replication slot, otherwise
      it scheduled the worker killing for the end of the transaction, as a
      result of 7e174fa7.  This, however,
      causes the present problem.  To fix, kill the workers immediately in all
      cases.  This covers all cases: A subscription that doesn't have a
      replication slot must be disabled.  It was either disabled in the same
      transaction, or it was already disabled before the current transaction,
      but then there shouldn't be any workers left and this won't make a
      difference.
      Reported-by: default avatarArseny Sher <a.sher@postgrespro.ru>
      Discussion: https://www.postgresql.org/message-id/flat/87mv6av84w.fsf%40ars-thinkpad
      8edacab2
  6. 17 Sep, 2017 1 commit