1. 31 Mar, 2021 2 commits
    • Stephen Frost's avatar
      Add a docs section for obsoleted and renamed functions and settings · 3b0c647b
      Stephen Frost authored
      The new appendix groups information on renamed or removed settings,
      commands, etc into an out-of-the-way part of the docs.
      
      The original id elements are retained in each subsection to ensure that
      the same filenames are produced for HTML docs. This prevents /current/
      links on the web from breaking, and allows users of the web docs
      to follow links from old version pages to info on the changes in the
      new version. Prior to this change, a link to /current/ for renamed
      sections like the recovery.conf docs would just 404. Similarly if
      someone searched for recovery.conf they would find the pg11 docs,
      but there would be no /12/ or /current/ link, so they couldn't easily
      find out that it was removed in pg12 or how to adapt.
      
      Index entries are also added so that there's a breadcrumb trail for
      users to follow when they know the old name, but not what we changed it
      to. So a user who is trying to find out how to set standby_mode in
      PostgreSQL 12+, or where pg_resetxlog went, now has more chance of
      finding that information.
      
      Craig Ringer and Stephen Frost
      Reviewed-by: Euler Taveira
      Discussion: https://postgr.es/m/CAGRY4nzPNOyYQ_1-pWYToUVqQ0ThqP5jdURnJMZPm539fdizOg%40mail.gmail.com
      Backpatch-through: 10
      3b0c647b
    • Etsuro Fujita's avatar
      Add support for asynchronous execution. · 27e1f145
      Etsuro Fujita authored
      This implements asynchronous execution, which runs multiple parts of a
      non-parallel-aware Append concurrently rather than serially to improve
      performance when possible.  Currently, the only node type that can be
      run concurrently is a ForeignScan that is an immediate child of such an
      Append.  In the case where such ForeignScans access data on different
      remote servers, this would run those ForeignScans concurrently, and
      overlap the remote operations to be performed simultaneously, so it'll
      improve the performance especially when the operations involve
      time-consuming ones such as remote join and remote aggregation.
      
      We may extend this to other node types such as joins or aggregates over
      ForeignScans in the future.
      
      This also adds the support for postgres_fdw, which is enabled by the
      table-level/server-level option "async_capable".  The default is false.
      
      Robert Haas, Kyotaro Horiguchi, Thomas Munro, and myself.  This commit
      is mostly based on the patch proposed by Robert Haas, but also uses
      stuff from the patch proposed by Kyotaro Horiguchi and from the patch
      proposed by Thomas Munro.  Reviewed by Kyotaro Horiguchi, Konstantin
      Knizhnik, Andrey Lepikhov, Movead Li, Thomas Munro, Justin Pryzby, and
      others.
      
      Discussion: https://postgr.es/m/CA%2BTgmoaXQEt4tZ03FtQhnzeDEMzBck%2BLrni0UWHVVgOTnA6C1w%40mail.gmail.com
      Discussion: https://postgr.es/m/CA%2BhUKGLBRyu0rHrDCMC4%3DRn3252gogyp1SjOgG8SEKKZv%3DFwfQ%40mail.gmail.com
      Discussion: https://postgr.es/m/20200228.170650.667613673625155850.horikyota.ntt%40gmail.com
      27e1f145
  2. 24 Mar, 2021 3 commits
    • Stephen Frost's avatar
      Change checkpoint_completion_target default to 0.9 · bbcc4eb2
      Stephen Frost authored
      Common recommendations are that the checkpoint should be spread out as
      much as possible, provided we avoid having it take too long.  This
      change updates the default to 0.9 (from 0.5) to match that
      recommendation.
      
      There was some debate about possibly removing the option entirely but it
      seems there may be some corner-cases where having it set much lower to
      try to force the checkpoint to be as fast as possible could result in
      fewer periods of time of reduced performance due to kernel flushing.
      General agreement is that the "spread more" is the preferred approach
      though and those who need to tune away from that value are much less
      common.
      
      Reviewed-By: Michael Paquier, Peter Eisentraut, Tom Lane, David Steele,
      Nathan Bossart
      Discussion: https://postgr.es/m/20201207175329.GM16415%40tamriel.snowman.net
      bbcc4eb2
    • Robert Haas's avatar
      Tidy up more loose ends related to configurable TOAST compression. · e5595de0
      Robert Haas authored
      Change the default_toast_compression GUC to be an enum rather than
      a string. Earlier, uncommitted versions of the patch supported using
      CREATE ACCESS METHOD to add new compression methods to a running
      system, but that idea was dropped before commit. So, we can simplify
      the GUC handling as well, which has the nice side effect of improving
      the error messages.
      
      While updating the documentation to reflect the new GUC type, also
      move it back to the right place in the list. I moved this while
      revising what became commit 24f0e395,
      but apparently the intended ordering is "alphabetical" rather than
      "whatever Robert thinks looks nice."
      
      Rejigger things to avoid having access/toast_compression.h depend on
      utils/guc.h, so that we don't end up with every file that includes
      it also depending on something largely unrelated. Move a few
      inline functions back into the C source file partly to help reduce
      dependencies and partly just to avoid clutter. A few very minor
      cosmetic fixes.
      
      Original patch by Justin Pryzby, but very heavily edited by me,
      and reverse reviewed by him and also reviewed by by Tom Lane.
      
      Discussion: http://postgr.es/m/CA+TgmoYp=GT_ztUCeZg2i4hkHAQv8o=-nVJ1-TKWTG1zQOmOpg@mail.gmail.com
      e5595de0
    • Amit Kapila's avatar
      Revert "Enable parallel SELECT for "INSERT INTO ... SELECT ..."." · 26acb54a
      Amit Kapila authored
      To allow inserts in parallel-mode this feature has to ensure that all the
      constraints, triggers, etc. are parallel-safe for the partition hierarchy
      which is costly and we need to find a better way to do that. Additionally,
      we could have used existing cached information in some cases like indexes,
      domains, etc. to determine the parallel-safety.
      
      List of commits reverted, in reverse chronological order:
      
      ed62d373 Doc: Update description for parallel insert reloption.
      c8f78b61 Add a new GUC and a reloption to enable inserts in parallel-mode.
      c5be48f0 Improve FK trigger parallel-safety check added by 05c8482f.
      e2cda3c2 Fix use of relcache TriggerDesc field introduced by commit 05c8482f.
      e4e87a32 Fix valgrind issue in commit 05c8482f.
      05c8482f Enable parallel SELECT for "INSERT INTO ... SELECT ...".
      
      Discussion: https://postgr.es/m/E1lMiB9-0001c3-SY@gemulon.postgresql.org
      26acb54a
  3. 22 Mar, 2021 1 commit
  4. 19 Mar, 2021 1 commit
  5. 18 Mar, 2021 2 commits
    • Tomas Vondra's avatar
      Remove temporary files after backend crash · cd91de0d
      Tomas Vondra authored
      After a crash of a backend using temporary files, the files used to be
      left behind, on the basis that it might be useful for debugging. But we
      don't have any reports of anyone actually doing that, and it means the
      disk usage may grow over time due to repeated backend failures (possibly
      even hitting ENOSPC). So this behavior is a bit unfortunate, and fixing
      it required either manual cleanup (deleting files, which is error-prone)
      or restart of the instance (i.e. service disruption).
      
      This implements automatic cleanup of temporary files, controled by a new
      GUC remove_temp_files_after_crash. By default the files are removed, but
      it can be disabled to restore the old behavior if needed.
      
      Author: Euler Taveira
      Reviewed-by: Tomas Vondra, Michael Paquier, Anastasia Lubennikova, Thomas Munro
      Discussion: https://postgr.es/m/CAH503wDKdYzyq7U-QJqGn%3DGm6XmoK%2B6_6xTJ-Yn5WSvoHLY1Ww%40mail.gmail.com
      cd91de0d
    • Amit Kapila's avatar
      Add a new GUC and a reloption to enable inserts in parallel-mode. · c8f78b61
      Amit Kapila authored
      Commit 05c8482f added the implementation of parallel SELECT for
      "INSERT INTO ... SELECT ..." which may incur non-negligible overhead in
      the additional parallel-safety checks that it performs, even when, in the
      end, those checks determine that parallelism can't be used. This is
      normally only ever a problem in the case of when the target table has a
      large number of partitions.
      
      A new GUC option "enable_parallel_insert" is added, to allow insert in
      parallel-mode. The default is on.
      
      In addition to the GUC option, the user may want a mechanism to allow
      inserts in parallel-mode with finer granularity at table level. The new
      table option "parallel_insert_enabled" allows this. The default is true.
      
      Author: "Hou, Zhijie"
      Reviewed-by: Greg Nancarrow, Amit Langote, Takayuki Tsunakawa, Amit Kapila
      Discussion: https://postgr.es/m/CAA4eK1K-cW7svLC2D7DHoGHxdAdg3P37BLgebqBOC2ZLc9a6QQ%40mail.gmail.com
      Discussion: https://postgr.es/m/CAJcOf-cXnB5cnMKqWEp2E2z7Mvcd04iLVmV=qpFJrR3AcrTS3g@mail.gmail.com
      c8f78b61
  6. 16 Mar, 2021 1 commit
  7. 11 Mar, 2021 1 commit
    • Peter Geoghegan's avatar
      Don't consider newly inserted tuples in nbtree VACUUM. · 9f3665fb
      Peter Geoghegan authored
      Remove the entire idea of "stale stats" within nbtree VACUUM (stop
      caring about stats involving the number of inserted tuples).  Also
      remove the vacuum_cleanup_index_scale_factor GUC/param on the master
      branch (though just disable them on postgres 13).
      
      The vacuum_cleanup_index_scale_factor/stats interface made the nbtree AM
      partially responsible for deciding when pg_class.reltuples stats needed
      to be updated.  This seems contrary to the spirit of the index AM API,
      though -- it is not actually necessary for an index AM's bulk delete and
      cleanup callbacks to provide accurate stats when it happens to be
      inconvenient.  The core code owns that.  (Index AMs have the authority
      to perform or not perform certain kinds of deferred cleanup based on
      their own considerations, such as page deletion and recycling, but that
      has little to do with pg_class.reltuples/num_index_tuples.)
      
      This issue was fairly harmless until the introduction of the
      autovacuum_vacuum_insert_threshold feature by commit b07642db, which had
      an undesirable interaction with the vacuum_cleanup_index_scale_factor
      mechanism: it made insert-driven autovacuums perform full index scans,
      even though there is no real benefit to doing so.  This has been tied to
      a regression with an append-only insert benchmark [1].
      
      Also have remaining cases that perform a full scan of an index during a
      cleanup-only nbtree VACUUM indicate that the final tuple count is only
      an estimate.  This prevents vacuumlazy.c from setting the index's
      pg_class.reltuples in those cases (it will now only update pg_class when
      vacuumlazy.c had TIDs for nbtree to bulk delete).  This arguably fixes
      an oversight in deduplication-related bugfix commit 48e12913.
      
      [1] https://smalldatum.blogspot.com/2021/01/insert-benchmark-postgres-is-still.html
      
      Author: Peter Geoghegan <pg@bowt.ie>
      Reviewed-By: default avatarMasahiko Sawada <sawada.mshk@gmail.com>
      Discussion: https://postgr.es/m/CAD21AoA4WHthN5uU6+WScZ7+J_RcEjmcuH94qcoUPuB42ShXzg@mail.gmail.com
      Backpatch: 13-, where autovacuum_vacuum_insert_threshold was added.
      9f3665fb
  8. 09 Mar, 2021 1 commit
    • Fujii Masao's avatar
      Track total amounts of times spent writing and syncing WAL data to disk. · ff99918c
      Fujii Masao authored
      This commit adds new GUC track_wal_io_timing. When this is enabled,
      the total amounts of time XLogWrite writes and issue_xlog_fsync syncs
      WAL data to disk are counted in pg_stat_wal. This information would be
      useful to check how much WAL write and sync affect the performance.
      
      Enabling track_wal_io_timing will make the server query the operating
      system for the current time every time WAL is written or synced,
      which may cause significant overhead on some platforms. To avoid such
      additional overhead in the server with track_io_timing enabled,
      this commit introduces track_wal_io_timing as a separate parameter from
      track_io_timing.
      
      Note that WAL write and sync activity by walreceiver has not been tracked yet.
      
      This commit makes the server also track the numbers of times XLogWrite
      writes and issue_xlog_fsync syncs WAL data to disk, in pg_stat_wal,
      regardless of the setting of track_wal_io_timing. This counters can be
      used to calculate the WAL write and sync time per request, for example.
      
      Bump PGSTAT_FILE_FORMAT_ID.
      
      Bump catalog version.
      
      Author: Masahiro Ikeda
      Reviewed-By: Japin Li, Hayato Kuroda, Masahiko Sawada, David Johnston, Fujii Masao
      Discussion: https://postgr.es/m/0509ad67b585a5b86a83d445dfa75392@oss.nttdata.com
      ff99918c
  9. 03 Mar, 2021 1 commit
  10. 25 Feb, 2021 1 commit
    • Peter Geoghegan's avatar
      Use full 64-bit XIDs in deleted nbtree pages. · e5d8a999
      Peter Geoghegan authored
      Otherwise we risk "leaking" deleted pages by making them non-recyclable
      indefinitely.  Commit 6655a729 did the same thing for deleted pages in
      GiST indexes.  That work was used as a starting point here.
      
      Stop storing an XID indicating the oldest bpto.xact across all deleted
      though unrecycled pages in nbtree metapages.  There is no longer any
      reason to care about that condition/the oldest XID.  It only ever made
      sense when wraparound was something _bt_vacuum_needs_cleanup() had to
      consider.
      
      The btm_oldest_btpo_xact metapage field has been repurposed and renamed.
      It is now btm_last_cleanup_num_delpages, which is used to remember how
      many non-recycled deleted pages remain from the last VACUUM (in practice
      its value is usually the precise number of pages that were _newly
      deleted_ during the specific VACUUM operation that last set the field).
      
      The general idea behind storing btm_last_cleanup_num_delpages is to use
      it to give _some_ consideration to non-recycled deleted pages inside
      _bt_vacuum_needs_cleanup() -- though never too much.  We only really
      need to avoid leaving a truly excessive number of deleted pages in an
      unrecycled state forever.  We only do this to cover certain narrow cases
      where no other factor makes VACUUM do a full scan, and yet the index
      continues to grow (and so actually misses out on recycling existing
      deleted pages).
      
      These metapage changes result in a clear user-visible benefit: We no
      longer trigger full index scans during VACUUM operations solely due to
      the presence of only 1 or 2 known deleted (though unrecycled) blocks
      from a very large index.  All that matters now is keeping the costs and
      benefits in balance over time.
      
      Fix an issue that has been around since commit 857f9c36, which added the
      "skip full scan of index" mechanism (i.e. the _bt_vacuum_needs_cleanup()
      logic).  The accuracy of btm_last_cleanup_num_heap_tuples accidentally
      hinged upon _when_ the source value gets stored.  We now always store
      btm_last_cleanup_num_heap_tuples in btvacuumcleanup().  This fixes the
      issue because IndexVacuumInfo.num_heap_tuples (the source field) is
      expected to accurately indicate the state of the table _after_ the
      VACUUM completes inside btvacuumcleanup().
      
      A backpatchable fix cannot easily be extracted from this commit.  A
      targeted fix for the issue will follow in a later commit, though that
      won't happen today.
      
      I (pgeoghegan) have chosen to remove any mention of deleted pages in the
      documentation of the vacuum_cleanup_index_scale_factor GUC/param, since
      the presence of deleted (though unrecycled) pages is no longer of much
      concern to users.  The vacuum_cleanup_index_scale_factor description in
      the docs now seems rather unclear in any case, and it should probably be
      rewritten in the near future.  Perhaps some passing mention of page
      deletion will be added back at the same time.
      
      Bump XLOG_PAGE_MAGIC due to nbtree WAL records using full XIDs now.
      
      Author: Peter Geoghegan <pg@bowt.ie>
      Reviewed-By: default avatarMasahiko Sawada <sawada.mshk@gmail.com>
      Discussion: https://postgr.es/m/CAH2-WznpdHvujGUwYZ8sihX=d5u-tRYhi-F4wnV2uN2zHpMUXw@mail.gmail.com
      e5d8a999
  11. 24 Feb, 2021 1 commit
  12. 18 Feb, 2021 1 commit
  13. 15 Feb, 2021 1 commit
  14. 04 Feb, 2021 1 commit
    • Peter Eisentraut's avatar
      Refactor Windows error message for easier translation · 3c78e056
      Peter Eisentraut authored
      In the error messages referring to the user right "Lock pages in
      memory", this is a term from the Windows OS, so it should be
      translated in accordance with the OS localization.  Refactor the error
      messages so this is easier and clearer.  Also fix the capitalization
      to match the existing capitalization in the OS.
      3c78e056
  15. 29 Jan, 2021 1 commit
  16. 27 Jan, 2021 1 commit
    • Peter Geoghegan's avatar
      Reduce the default value of vacuum_cost_page_miss. · e19594c5
      Peter Geoghegan authored
      When commit f425b605 introduced cost based vacuum delays back in 2004,
      the defaults reflected then-current trends in hardware, as well as
      certain historical limitations in PostgreSQL.  There have been enormous
      improvements in both areas since that time.  The cost limit GUC defaults
      finally became much more representative of current trends following
      commit cbccac37, which decreased autovacuum_vacuum_cost_delay's default
      by 10x for PostgreSQL 12 (it went from 20ms to only 2ms).
      
      The relative costs have shifted too.  This should also be accounted for
      by the defaults.  More specifically, the relative importance of avoiding
      dirtying pages within VACUUM has greatly increased, primarily due to
      main memory capacity scaling and trends in flash storage.  Within
      Postgres itself, improvements like sequential access during index
      vacuuming (at least in nbtree and GiST indexes) have also been
      contributing factors.
      
      To reflect all this, decrease the default of vacuum_cost_page_miss to 2.
      Since the default of vacuum_cost_page_dirty remains 20, dirtying a page
      is now considered 10x "costlier" than a page miss by default.
      
      Author: Peter Geoghegan <pg@bowt.ie>
      Discussion: https://postgr.es/m/CAH2-WzmLPFnkWT8xMjmcsm7YS3+_Qi3iRWAb2+_Bc8UhVyHfuA@mail.gmail.com
      e19594c5
  17. 13 Jan, 2021 1 commit
  18. 07 Jan, 2021 1 commit
    • Fujii Masao's avatar
      Add GUC to log long wait times on recovery conflicts. · 0650ff23
      Fujii Masao authored
      This commit adds GUC log_recovery_conflict_waits that controls whether
      a log message is produced when the startup process is waiting longer than
      deadlock_timeout for recovery conflicts. This is useful in determining
      if recovery conflicts prevent the recovery from applying WAL.
      
      Note that currently a log message is produced only when recovery conflict
      has not been resolved yet even after deadlock_timeout passes, i.e.,
      only when the startup process is still waiting for recovery conflict
      even after deadlock_timeout.
      
      Author: Bertrand Drouvot, Masahiko Sawada
      Reviewed-by: Alvaro Herrera, Kyotaro Horiguchi, Fujii Masao
      Discussion: https://postgr.es/m/9a60178c-a853-1440-2cdc-c3af916cff59@amazon.com
      0650ff23
  19. 06 Jan, 2021 2 commits
    • Tom Lane's avatar
      Add idle_session_timeout. · 9877374b
      Tom Lane authored
      This GUC variable works much like idle_in_transaction_session_timeout,
      in that it kills sessions that have waited too long for a new client
      query.  But it applies when we're not in a transaction, rather than
      when we are.
      
      Li Japin, reviewed by David Johnston and Hayato Kuroda, some
      fixes by me
      
      Discussion: https://postgr.es/m/763A0689-F189-459E-946F-F0EC4458980B@hotmail.com
      9877374b
    • Peter Eisentraut's avatar
      Replace CLOBBER_CACHE_ALWAYS with run-time GUC · 4656e3d6
      Peter Eisentraut authored
      Forced cache invalidation (CLOBBER_CACHE_ALWAYS) has been impractical
      to use for testing in PostgreSQL because it's so slow and because it's
      toggled on/off only at build time.  It is helpful when hunting bugs in
      any code that uses the sycache/relcache because causes cache
      invalidations to be injected whenever it would be possible for an
      invalidation to occur, whether or not one was really pending.
      
      Address this by providing run-time control over cache clobber
      behaviour using the new debug_invalidate_system_caches_always GUC.
      Support is not compiled in at all unless assertions are enabled or
      CLOBBER_CACHE_ENABLED is explicitly defined at compile time.  It
      defaults to 0 if compiled in, so it has negligible effect on assert
      build performance by default.
      
      When support is compiled in, test code can now set
      debug_invalidate_system_caches_always=1 locally to a backend to test
      specific queries, functions, extensions, etc.  Or tests can toggle it
      globally for a specific test case while retaining normal performance
      during test setup and teardown.
      
      For backwards compatibility with existing test harnesses and scripts,
      debug_invalidate_system_caches_always defaults to 1 if
      CLOBBER_CACHE_ALWAYS is defined, and to 3 if CLOBBER_CACHE_RECURSIVE
      is defined.
      
      CLOBBER_CACHE_ENABLED is now visible in pg_config_manual.h, as is the
      related RECOVER_RELATION_BUILD_MEMORY setting for the relcache.
      
      Author: Craig Ringer <craig.ringer@2ndquadrant.com>
      Discussion: https://www.postgresql.org/message-id/flat/CAMsr+YF=+ctXBZj3ywmvKNUjWpxmuTuUKuv-rgbHGX5i5pLstQ@mail.gmail.com
      4656e3d6
  20. 05 Jan, 2021 1 commit
  21. 30 Dec, 2020 1 commit
    • Tom Lane's avatar
      Fix up usage of krb_server_keyfile GUC parameter. · 860fe27e
      Tom Lane authored
      secure_open_gssapi() installed the krb_server_keyfile setting as
      KRB5_KTNAME unconditionally, so long as it's not empty.  However,
      pg_GSS_recvauth() only installed it if KRB5_KTNAME wasn't set already,
      leading to a troubling inconsistency: in theory, clients could see
      different sets of server principal names depending on whether they
      use GSSAPI encryption.  Always using krb_server_keyfile seems like
      the right thing, so make both places do that.  Also fix up
      secure_open_gssapi()'s lack of a check for setenv() failure ---
      it's unlikely, surely, but security-critical actions are no place
      to be sloppy.
      
      Also improve the associated documentation.
      
      This patch does nothing about secure_open_gssapi()'s use of setenv(),
      and indeed causes pg_GSS_recvauth() to use it too.  That's nominally
      against project portability rules, but since this code is only built
      with --with-gssapi, I do not feel a need to do something about this
      in the back branches.  A fix will be forthcoming for HEAD though.
      
      Back-patch to v12 where GSSAPI encryption was introduced.  The
      dubious behavior in pg_GSS_recvauth() goes back further, but it
      didn't have anything to be inconsistent with, so let it be.
      
      Discussion: https://postgr.es/m/2187460.1609263156@sss.pgh.pa.us
      860fe27e
  22. 29 Dec, 2020 1 commit
  23. 28 Dec, 2020 1 commit
  24. 26 Dec, 2020 1 commit
  25. 25 Dec, 2020 1 commit
  26. 08 Dec, 2020 1 commit
    • Tom Lane's avatar
      Remove operator_precedence_warning. · a676386b
      Tom Lane authored
      This GUC was always intended as a temporary solution to help with
      finding 9.4-to-9.5 migration issues.  Now that all pre-9.5 branches
      are out of support, and 9.5 will be too before v14 is released,
      it seems like it's okay to drop it.  Doing so allows removal of
      several hundred lines of poorly-tested code in parse_expr.c,
      which have been a fertile source of bugs when people did use this.
      
      Discussion: https://postgr.es/m/2234320.1607117945@sss.pgh.pa.us
      a676386b
  27. 02 Dec, 2020 1 commit
    • Fujii Masao's avatar
      Allow restore_command parameter to be changed with reload. · 942305a3
      Fujii Masao authored
      This commit changes restore_command from PGC_POSTMASTER to PGC_SIGHUP.
      
      As the side effect of this commit, restore_command can be reset to
      empty during archive recovery. In this setting, archive recovery
      tries to replay only WAL files available in pg_wal directory. This is
      the same behavior as when the command that always fails is specified
      in restore_command.
      
      Note that restore_command still must be specified (not empty) when
      starting archive recovery, even after applying this commit. This is
      necessary as the safeguard to prevent users from forgetting to
      specify restore_command and starting archive recovery.
      
      Thanks to Peter Eisentraut, Michael Paquier, Andres Freund,
      Robert Haas and Anastasia Lubennikova for discussion.
      
      Author: Sergei Kornilov
      Reviewed-by: Kyotaro Horiguchi, Fujii Masao
      Discussion: https://postgr.es/m/2317771549527294@sas2-985f744271ca.qloud-c.yandex.net
      942305a3
  28. 25 Nov, 2020 1 commit
  29. 24 Nov, 2020 1 commit
  30. 16 Nov, 2020 1 commit
  31. 19 Oct, 2020 1 commit
    • Heikki Linnakangas's avatar
      Misc documentation fixes. · c5f42daa
      Heikki Linnakangas authored
      - Misc grammar and punctuation fixes.
      
      - Stylistic cleanup: use spaces between function arguments and JSON fields
        in examples. For example "foo(a,b)" -> "foo(a, b)". Add semicolon after
        last END in a few PL/pgSQL examples that were missing them.
      
      - Make sentence that talked about "..." and ".." operators more clear,
        by avoiding to end the sentence with "..". That makes it look the same
        as "..."
      
      - Fix syntax description for HAVING: HAVING conditions cannot be repeated
      
      Patch by Justin Pryzby, per Yaroslav Schekin's report. Backpatch to all
      supported versions, to the extent that the patch applies easily.
      
      Discussion: https://www.postgresql.org/message-id/20201005191922.GE17626%40telsasoft.com
      c5f42daa
  32. 16 Oct, 2020 1 commit
    • Tom Lane's avatar
      Doc: tweak column widths in synchronous-commit-matrix table. · bc49f878
      Tom Lane authored
      Commit a97e85f2 caused "exceed the available area" warnings in PDF
      builds.  Fine-tune colwidth values to avoid that.
      
      Back-patch to 9.6, like the prior patch.  (This is of dubious value
      before v13, since we were far from free of such warnings in older
      branches.  But we might as well keep the SGML looking the same in all
      branches.)
      
      Per buildfarm.
      bc49f878
  33. 15 Oct, 2020 1 commit
  34. 03 Oct, 2020 1 commit
    • Peter Eisentraut's avatar
      Improve <xref> vs. <command> formatting in the documentation · 9081bddb
      Peter Eisentraut authored
      SQL commands are generally marked up as <command>, except when a link
      to a reference page is used using <xref>.  But the latter doesn't
      create monospace markup, so this looks strange especially when a
      paragraph contains a mix of links and non-links.
      
      We considered putting <command> in the <refentrytitle> on the target
      side, but that creates some formatting side effects elsewhere.
      Generally, it seems safer to solve this on the link source side.
      
      We can't put the <xref> inside the <command>; the DTD doesn't allow
      this.  DocBook 5 would allow the <command> to have the linkend
      attribute itself, but we are not there yet.
      
      So to solve this for now, convert the <xref>s to <link> plus
      <command>.  This gives the correct look and also gives some more
      flexibility what we can put into the link text (e.g., subcommands or
      other clauses).  In the future, these could then be converted to
      DocBook 5 style.
      
      I haven't converted absolutely all xrefs to SQL command reference
      pages, only those where we care about the appearance of the link text
      or where it was otherwise appropriate to make the appearance match a
      bit better.  Also in some cases, the links where repetitive, so in
      those cases the links where just removed and replaced by a plain
      <command>.  In cases where we just want the link and don't
      specifically care about the generated link text (typically phrased
      "for further information see <xref ...>") the xref is kept.
      Reported-by: default avatarDagfinn Ilmari Mannsåker <ilmari@ilmari.org>
      Discussion: https://www.postgresql.org/message-id/flat/87o8pco34z.fsf@wibble.ilmari.org
      9081bddb
  35. 30 Sep, 2020 1 commit
    • Peter Eisentraut's avatar
      Fix XML id to match GUC name · 300b6984
      Peter Eisentraut authored
      For some reason, the id of the description of
      max_parallel_maintenance_workers has been
      guc-max-parallel-workers-maintenance since the beginning.  Flip that
      around to make it consistent.
      300b6984