1. 24 Mar, 2020 13 commits
  2. 23 Mar, 2020 10 commits
  3. 22 Mar, 2020 1 commit
  4. 21 Mar, 2020 7 commits
    • Tom Lane's avatar
      Fix up recent breakage of headerscheck and cpluspluscheck. · d0587f52
      Tom Lane authored
      headerscheck and cpluspluscheck should skip the recently-added
      cmdtaglist.h header, since (like kwlist.h and some other similarly-
      designed headers) it's not meant to be included standalone.
      
      evtcache.h was missing an #include to support its usage of Bitmapset.
      
      typecmds.h was missing an #include to support its usage of ParseState.
      
      The first two of these were evidently oversights in commit 2f966131.
      I didn't track down exactly which change broke typecmds.h, but it
      must have been some rearrangement in one of its existing inclusions,
      because it's referenced ParseState for quite a long time and there
      were not complaints from these checking programs before.
      d0587f52
    • Noah Misch's avatar
      Skip WAL for new relfilenodes, under wal_level=minimal. · cb2fd7ea
      Noah Misch authored
      Until now, only selected bulk operations (e.g. COPY) did this.  If a
      given relfilenode received both a WAL-skipping COPY and a WAL-logged
      operation (e.g. INSERT), recovery could lose tuples from the COPY.  See
      src/backend/access/transam/README section "Skipping WAL for New
      RelFileNode" for the new coding rules.  Maintainers of table access
      methods should examine that section.
      
      To maintain data durability, just before commit, we choose between an
      fsync of the relfilenode and copying its contents to WAL.  A new GUC,
      wal_skip_threshold, guides that choice.  If this change slows a workload
      that creates small, permanent relfilenodes under wal_level=minimal, try
      adjusting wal_skip_threshold.  Users setting a timeout on COMMIT may
      need to adjust that timeout, and log_min_duration_statement analysis
      will reflect time consumption moving to COMMIT from commands like COPY.
      
      Internally, this requires a reliable determination of whether
      RollbackAndReleaseCurrentSubTransaction() would unlink a relation's
      current relfilenode.  Introduce rd_firstRelfilenodeSubid.  Amend the
      specification of rd_createSubid such that the field is zero when a new
      rel has an old rd_node.  Make relcache.c retain entries for certain
      dropped relations until end of transaction.
      
      Back-patch to 9.5 (all supported versions).  This introduces a new WAL
      record type, XLOG_GIST_ASSIGN_LSN, without bumping XLOG_PAGE_MAGIC.  As
      always, update standby systems before master systems.  This changes
      sizeof(RelationData) and sizeof(IndexStmt), breaking binary
      compatibility for affected extensions.  (The most recent commit to
      affect the same class of extensions was
      089e4d405d0f3b94c74a2c6a54357a84a681754b.)
      
      Kyotaro Horiguchi, reviewed (in earlier, similar versions) by Robert
      Haas.  Heikki Linnakangas and Michael Paquier implemented earlier
      designs that materially clarified the problem.  Reviewed, in earlier
      designs, by Andrew Dunstan, Andres Freund, Alvaro Herrera, Tom Lane,
      Fujii Masao, and Simon Riggs.  Reported by Martijn van Oosterhout.
      
      Discussion: https://postgr.es/m/20150702220524.GA9392@svana.org
      cb2fd7ea
    • Noah Misch's avatar
      In log_newpage_range(), heed forkNum and page_std arguments. · d3e57285
      Noah Misch authored
      The function assumed forkNum=MAIN_FORKNUM and page_std=true, ignoring
      the actual arguments.  Existing callers passed exactly those values, so
      there's no live bug.  Back-patch to v12, where the function first
      appeared, because another fix needs this.
      
      Discussion: https://postgr.es/m/20191118045434.GA1173436@rfd.leadboat.com
      d3e57285
    • Noah Misch's avatar
      During heap rebuild, lock any TOAST index until end of transaction. · e629a01f
      Noah Misch authored
      swap_relation_files() calls toast_get_valid_index() to find and lock
      this index, just before swapping with the rebuilt TOAST index.  The
      latter function releases the lock before returning.  Potential for
      mischief is low; a concurrent session can issue ALTER INDEX ... SET
      (fillfactor = ...), which is not alarming.  Nonetheless, changing
      pg_class.relfilenode without a lock is unconventional.  Back-patch to
      9.5 (all supported versions), because another fix needs this.
      
      Discussion: https://postgr.es/m/20191226001521.GA1772687@rfd.leadboat.com
      e629a01f
    • Noah Misch's avatar
      Fix cosmetic blemishes involving rd_createSubid. · d60ef94d
      Noah Misch authored
      Remove an obsolete comment from AtEOXact_cleanup().  Restore formatting
      of a comment in struct RelationData, mangled by the pgindent run in
      commit 9af4159f.  Back-patch to 9.5 (all
      supported versions), because another fix stacks on this.
      d60ef94d
    • Amit Kapila's avatar
      Allow page lock to conflict among parallel group members. · 3ba59ccc
      Amit Kapila authored
      This is required as it is no safer for two related processes to perform
      clean up in gin indexes at a time than for unrelated processes to do the
      same.  After acquiring page locks, we can acquire relation extension lock
      but reverse never happens which means these will also not participate in
      deadlock.  So, avoid checking wait edges from this lock.
      
      Currently, the parallel mode is strictly read-only, but after this patch
      we have the infrastructure to allow parallel inserts and parallel copy.
      
      Author: Dilip Kumar, Amit Kapila
      Reviewed-by: Amit Kapila, Kuntal Ghosh and Sawada Masahiko
      Discussion: https://postgr.es/m/CAD21AoCmT3cFQUN4aVvzy5chw7DuzXrJCbrjTU05B+Ss=Gn1LA@mail.gmail.com
      3ba59ccc
    • Bruce Momjian's avatar
      docs: use alias in WHERE clause of full text search example · a6d7e9fb
      Bruce Momjian authored
      The current doc query specified an alias in the FROM clause and used in
      it the target list, but not in the WHERE clause.
      
      Reported-by: axykon@gmail.com
      
      Discussion: https://postgr.es/m/158316348159.30450.16075357948244298217@wrigleys.postgresql.org
      
      Backpatch-through: 9.5
      a6d7e9fb
  5. 20 Mar, 2020 5 commits
  6. 19 Mar, 2020 4 commits