# PostgreSQL Weekly News - November 22, 2020

Person of the week: 
[https://postgresql.life/post/markus_wanner/](https://postgresql.life/post/markus_wanner/)

# PostgreSQL Product News

PGroonga 2.2.7 a full text search platform for all languages, released.
[https://pgroonga.github.io/](https://pgroonga.github.io/)

PostGIS 3.0.3, the industry standard geographic information system package for
PostgreSQL, released.
[http://postgis.net/2020/11/20/postgis-3.0.3/](http://postgis.net/2020/11/20/postgis-3.0.3/)

pgtt 2.2, an extension to implement global temporary tables, released.
[https://github.com/darold/pgtt/releases/tag/v2.2](https://github.com/darold/pgtt/releases/tag/v2.2)

pgAdmin4 4.28, a web- and native GUI control center for PostgreSQL, released.
[https://www.pgadmin.org/docs/pgadmin4/dev/release_notes_4_28.html](https://www.pgadmin.org/docs/pgadmin4/dev/release_notes_4_28.html)

pgbouncer 1.15.0, a connection pooler and more for PostgreSQL, released.
[https://www.pgbouncer.org/2020/11/pgbouncer-1-15-0](https://www.pgbouncer.org/2020/11/pgbouncer-1-15-0)

pitrery 3.2, a set of Bash scripts to manage PITR backups for PostgreSQL, 
released.
[http://dalibo.github.io/pitrery/](http://dalibo.github.io/pitrery/)

pg_statement_rollback v1.1, an extension that adds server side
transaction with rollback at statement level, released.
[https://github.com/lzlabs/pg_statement_rollback/releases/tag/v1.1](https://github.com/lzlabs/pg_statement_rollback/releases/tag/v1.1)

# PostgreSQL Jobs for November

[http://archives.postgresql.org/pgsql-jobs/2020-11/](http://archives.postgresql.org/pgsql-jobs/2020-11/)

# PostgreSQL in the News

Planet PostgreSQL: 
[http://planet.postgresql.org/](http://planet.postgresql.org/)

PostgreSQL Weekly News is brought to you this week by David Fetter

Submit news and announcements by Sunday at 3:00pm PST8PDT to [email protected].

# Applied Patches

Tom Lane pushed:

- Fix fuzzy thinking about amcanmulticol versus amcaninclude. These flags should
  be independent: in particular an index AM should be able to say that it
  supports include columns without necessarily supporting multiple key columns.
  The included-columns patch got this wrong, possibly aided by the fact that it
  didn't bother to update the documentation.  While here, clarify some text
  about amcanreturn, which was a little vague about what should happen when
  amcanreturn reports that only some of the index columns are returnable.  Noted
  while reviewing the SP-GiST included-columns patch, which quite incorrectly
  (and unsafely) changed SP-GiST to claim amcanmulticol = true as a workaround
  for this bug.  Backpatch to v11 where included columns were introduced.
  
[https://git.postgresql.org/pg/commitdiff/29d29d652f0be47dc42fa9d667dee5b8e1baa18a](https://git.postgresql.org/pg/commitdiff/29d29d652f0be47dc42fa9d667dee5b8e1baa18a)

- Use "true" not "TRUE" in one ICU function call. This was evidently missed in
  commit 6337865f3, which generally did s/TRUE/true/ everywhere.  It escaped
  notice up to now because ICU versions before ICU 68 provided definitions of
  "TRUE" and "FALSE" regardless.  With ICU 68, it fails to compile.  Per report
  from Condor.  Back-patch to v11 where 6337865f3 came in. (I've not tested v10,
  where this call originated, but I imagine it's fine since we defined TRUE in
  c.h back then.)  Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/ad84ecc98d7e2ad81567094b8a6910b5078927a7](https://git.postgresql.org/pg/commitdiff/ad84ecc98d7e2ad81567094b8a6910b5078927a7)

- Do not return NULL for error cases in satisfies_hash_partition(). Since this
  function is used as a CHECK constraint condition, returning NULL is tantamount
  to returning TRUE, which would have the effect of letting in a row that
  doesn't satisfy the hash condition. Admittedly, the cases for which this is
  done should be unreachable in practice, but that doesn't make it any less a
  bad idea.  It also seems like a dartboard was used to decide which error cases
  should throw errors as opposed to returning NULL.  For the checks for NULL
  input values, I just switched it to returning false.  There's some argument
  that an error would be better; but the case really should be can't-happen in a
  generated hash constraint, so it's likely not worth more code for.  For the
  parent-relation-open-failure case, it seems like we might as well let
  relation_open throw an error, instead of having an impossible-to-diagnose
  constraint failure.  Back-patch to v11 where this code came in.  Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/4025e6c46620048804467d2ad29d31aa9ba50387](https://git.postgresql.org/pg/commitdiff/4025e6c46620048804467d2ad29d31aa9ba50387)

- Don't Insert() a VFD entry until it's fully built. Otherwise, if FDDEBUG is
  enabled, the debugging output fails because it tries to read the fileName,
  which isn't set up yet (and should in fact always be NULL).  AFAICT, this has
  been wrong since Berkeley.  Before 96bf88d52, it would accidentally fail to
  crash on platforms where snprintf() is forgiving about being passed a NULL
  pointer for %s; but the file name intended to be included in the debug output
  wouldn't ever have shown up.  Report and fix by Greg Nancarrow.  Although this
  is only visibly broken in custom-made builds, it still seems worth
  back-patching to all supported branches, as the FDDEBUG code is pretty useless
  as it stands.  Discussion:
  
[https://postgr.es/m/cajcof-cudgm9qytc_b6xrc6mktmpnrby2p61etsgzknfotm...@mail.gmail.com](https://postgr.es/m/cajcof-cudgm9qytc_b6xrc6mktmpnrby2p61etsgzknfotm...@mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/2bd49b493a52f0a21bc3fc51c355963f99ac1a4e](https://git.postgresql.org/pg/commitdiff/2bd49b493a52f0a21bc3fc51c355963f99ac1a4e)

- Further fixes for CREATE TABLE LIKE: cope with self-referential FKs. Commit
  502898192 was too careless about the order of execution of the additional
  ALTER TABLE operations generated by expandTableLikeClause. It just stuck them
  all at the end, which seems okay for most purposes. But it falls down in the
  case where LIKE is importing a primary key or unique index and the outer
  CREATE TABLE includes a FOREIGN KEY constraint that needs to depend on that
  index.  Weird as that is, it used to work, so we ought to keep it working.  To
  fix, make parse_utilcmd.c insert LIKE clauses between index-creation and
  FK-creation commands in the transformed list of commands, and change utility.c
  so that the commands generated by expandTableLikeClause are executed
  immediately not at the end.  One could imagine scenarios where this wouldn't
  work either; but currently expandTableLikeClause only makes column default
  expressions, CHECK constraints, and indexes, and this ordering seems fine for
  those.  Per bug #16730 from Sofoklis Papasofokli.  Like the previous patch,
  back-patch to all supported branches.  Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/97390fe8a6e96a153e59b0180f4303acaeb75b84](https://git.postgresql.org/pg/commitdiff/97390fe8a6e96a153e59b0180f4303acaeb75b84)

- Remove undocumented IS [NOT] OF syntax. This feature was added a long time
  ago, in 7c1e67bd5 and eb121ba2c, but never documented in any user-facing way.
  (Documentation added in 6126d3e70 was commented out almost immediately, in
  8272fc3f7.) That's because, while this syntax is defined by SQL:99, our
  implementation is only vaguely related to the standard's semantics. The
  standard appears to intend a run-time not parse-time test, and it definitely
  intends that the test should understand subtype relationships.  No one has
  stepped up to fix that in the intervening years, but people keep coming across
  the code and asking why it's not documented. Let's just get rid of it: if
  anyone ever wants to make it work per spec, they can easily recover whatever
  parts of this code are still of value from our git history.  If there's anyone
  out there who's actually using this despite its undocumented status, they can
  switch to using pg_typeof() instead, eg. "pg_typeof(something) =
  'mytype'::regtype".  That gives essentially the same semantics as what our IS
  OF code did. (We didn't have that function last time this was discussed, or we
  would have ripped out IS OF then.)  Discussion:
  
[https://postgr.es/m/cakfquwz2ptc-dskoitfjauqlyknreenzvwmeg12q-_69d+s...@mail.gmail.com](https://postgr.es/m/cakfquwz2ptc-dskoitfjauqlyknreenzvwmeg12q-_69d+s...@mail.gmail.com)
  Discussion: 
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  Discussion: 
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/926fa801ac9eb54c5275472271ec63a059904698](https://git.postgresql.org/pg/commitdiff/926fa801ac9eb54c5275472271ec63a059904698)

- On macOS, use -isysroot in link steps as well as compile steps. We previously
  put the -isysroot switch only into CPPFLAGS, theorizing that it was only
  needed to find the right copies of include files. However, it seems that we
  also need to use it while linking programs, to find the right stub ".tbd"
  files for libraries.  We got away without that up to now, but apparently that
  was mostly luck.  It may also be that failures are only observed when the
  Xcode version is noticeably out of sync with the host macOS version; the case
  that's prompting action right now is that builds fail when using latest Xcode
  (12.2) on macOS Catalina, even though it's fine on Big Sur.  Hence, add
  -isysroot to LDFLAGS as well.  (It seems that the more common practice is to
  put it in CFLAGS, whence it'd be included at both compile and link steps.
  However, we can't mess with CFLAGS in the platform template file without
  confusing configure's logic for choosing default CFLAGS.)  This should be
  back-patched, but first let's see if the buildfarm likes it on HEAD.  Report
  and patch by James Hilliard (some cosmetic mods by me)  Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/49407dc32a2931550e4ff1dea314b6a25afdfc35](https://git.postgresql.org/pg/commitdiff/49407dc32a2931550e4ff1dea314b6a25afdfc35)

- Extend the geometric regression test cases a little. Add another edge-case
  value to "point_tbl", and add a test for the line(point, point) function.
  Some of the behaviors exposed here are wrong, but the idea of committing this
  separately is to memorialize what we were getting, and to allow easier
  inspection of the behavior changes caused by upcoming patches.  Kyotaro
  Horiguchi (line() test added by me)  Discussion:
  
[https://postgr.es/m/cagf+fx70rwfok5cd00umfa__0yp+vtqg5ck7c2onb-yczp0...@mail.gmail.com](https://postgr.es/m/cagf+fx70rwfok5cd00umfa__0yp+vtqg5ck7c2onb-yczp0...@mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/a45272b25d6fc8f96793623545fc1f836ac39d94](https://git.postgresql.org/pg/commitdiff/a45272b25d6fc8f96793623545fc1f836ac39d94)

- Fix FPeq() and friends to get the right answers for infinities.
  "FPeq(infinity, infinity)" returned false, on account of getting NaN when it
  subtracts the two inputs.  Fix that by adding a separate check for exact
  equality.  FPle() and FPge() similarly got the wrong answer for two
  like-signed infinities.  In those cases, we can just rearrange the comparisons
  to avoid potentially subtracting infinities.  While the sibling functions
  FPne() etc accidentally gave the right answers even with the internal NaN
  results, it seems best to make similar adjustments to them to avoid depending
  on this.  FPeq() has to be converted to an inline function to avoid double
  evaluations of its arguments, and I did the same for the others just for
  consistency.  In passing, make the handling of NaN cases in line_eq() and
  point_eq_point() simpler and easier to reason about, and perhaps faster.  This
  results in just one visible regression test change: slope() now gives DBL_MAX
  for two inputs of (inf,1e300), which is consistent with what it does for
  (1e300,inf), so that seems like a bug fix.  Discussion:
  
[https://postgr.es/m/cagf+fx70rwfok5cd00umfa__0yp+vtqg5ck7c2onb-yczp0...@mail.gmail.com](https://postgr.es/m/cagf+fx70rwfok5cd00umfa__0yp+vtqg5ck7c2onb-yczp0...@mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/8597a48d01b6cc0b09ff626253ac93c67e5516d5](https://git.postgresql.org/pg/commitdiff/8597a48d01b6cc0b09ff626253ac93c67e5516d5)

- In geo_ops.c, represent infinite slope as Infinity, not DBL_MAX. Since we're
  assuming IEEE floats these days, there seems little reason not to do this.  It
  has the advantage that when the slope is computed as infinite due to the
  presence of Inf coordinates, we get saner behavior than before from
  line_construct(), and thence also in some dependent operations such as finding
  the closest point.  Also fix line_construct() to special-case slope zero.  The
  previous coding got the right answer in most cases, but it could compute C as
  NaN when the point has Inf coordinates.  Discussion:
  
[https://postgr.es/m/cagf+fx70rwfok5cd00umfa__0yp+vtqg5ck7c2onb-yczp0...@mail.gmail.com](https://postgr.es/m/cagf+fx70rwfok5cd00umfa__0yp+vtqg5ck7c2onb-yczp0...@mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/9fe649ea295f00baf6d0f0c1f9b0cb1298f64fb9](https://git.postgresql.org/pg/commitdiff/9fe649ea295f00baf6d0f0c1f9b0cb1298f64fb9)

Michaël Paquier pushed:

- Relax INSERT privilege requirement for CTAS and matviews WITH NO DATA. When
  specified, WITH NO DATA does not insert any data into the relation created, so
  skip checking for the insert permissions.  With WITH DATA or WITH NO DATA, it
  is always required for the user to have CREATE privileges on the schema
  targeted for the relation.  Note that plain CREATE TABLE AS or CREATE
  MATERIALIZED VIEW queries have begun to work accidentally without INSERT
  privilege checks as of 874fe3ae, while using EXECUTE or EXPLAIN ANALYZE would
  fail with the ACL check, so this makes the behavior for all the command
  flavors consistent with each other.  This is arguably a bug fix, but there
  have been no complaints about the current behavior either so stable branches
  are not changed.  While on it, document properly the privileges requirements
  for each commands with more tests for all the scenarios possible, and avoid a
  useless bulk-insert allocation when using WITH NO DATA.  Author: Bharath
  Rupireddy Reviewed-by: Anastasia Lubennikova, Michael Paquier Discussion:
  
[https://postgr.es/m/calj2acwc3n8j0_9nmpz9wcaunvcdkhzfddzj3hvfnebqtcy...@mail.gmail.com](https://postgr.es/m/calj2acwc3n8j0_9nmpz9wcaunvcdkhzfddzj3hvfnebqtcy...@mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/846005e4f3829c3eafe1f8441b80ff90657d0a29](https://git.postgresql.org/pg/commitdiff/846005e4f3829c3eafe1f8441b80ff90657d0a29)

- Add tab completion for CREATE [OR REPLACE] TRIGGER in psql. 92bf7e2 has added
  support for this grammar.  Author: Noriyoshi Shinoda Discussion:
  
[https://postgr.es/m/tu4pr8401mb115244623cf4724dca0d507fee...@tu4pr8401mb1152.namprd84.prod.outlook.com](https://postgr.es/m/tu4pr8401mb115244623cf4724dca0d507fee...@tu4pr8401mb1152.namprd84.prod.outlook.com)
  
[https://git.postgresql.org/pg/commitdiff/bf0aa7c4b83bcf3116c5a3c191bbc677ab3beb59](https://git.postgresql.org/pg/commitdiff/bf0aa7c4b83bcf3116c5a3c191bbc677ab3beb59)

- Improve failure detection with array parsing in pg_dump. Similarly to 3636efa,
  the checks done in pg_dump when parsing array values from catalogs have been
  too lax.  Under memory pressure, it could be possible, though very unlikely,
  to finish with dumps that miss some data like: - Statistics for indexes -
  Run-time configuration of functions - Configuration of extensions -
  Publication list for a subscription  No backpatch is done as this is not going
  to be a problem in practice. For example, if an OOM causes an array parsing to
  fail, a follow-up code path of pg_dump would most likely complain with an
  allocation failure due to the memory pressure.  Author: Michael Paquier
  Reviewed-by: Daniel Gustafsson Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/13b58f8934e6252868231c3493d49b8c2b363e5d](https://git.postgresql.org/pg/commitdiff/13b58f8934e6252868231c3493d49b8c2b363e5d)

- Remove INSERT privilege check at table creation of CTAS and matview. As per
  discussion with Peter Eisentraunt, the SQL standard specifies that any tuple
  insertion done as part of CREATE TABLE AS happens without any extra ACL check,
  so it makes little sense to keep a check for INSERT privileges when using WITH
  DATA.  Materialized views are not part of the standard, but similarly, this
  check can be confusing as this refers to an access check on a table created
  within the same command as the one that would insert data into this table.
  This commit removes the INSERT privilege check for WITH DATA, the default,
  that 846005e removed partially, but only for WITH NO DATA.  Author: Bharath
  Rupireddy Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/878f3a19c6c8ff197e4a33f51d921a4abafcc494](https://git.postgresql.org/pg/commitdiff/878f3a19c6c8ff197e4a33f51d921a4abafcc494)

Alexander Korotkov pushed:

- Reword 'simple comparison' => 'inequality' in pgtrgm.sgml. Discussion:
  
[https://postgr.es/m/CAMkU%3D1zxfA8_MGBW6sJMj54p8nPoe4bMb5LoG-rMYZVPq4j08Q%40mail.gmail.com](https://postgr.es/m/CAMkU%3D1zxfA8_MGBW6sJMj54p8nPoe4bMb5LoG-rMYZVPq4j08Q%40mail.gmail.com)
  Author: Jeff Janes
  
[https://git.postgresql.org/pg/commitdiff/7adb8feb0f69fd9c79078c6cea984bb4bff1c841](https://git.postgresql.org/pg/commitdiff/7adb8feb0f69fd9c79078c6cea984bb4bff1c841)

Fujii Masao pushed:

- Make the standby server promptly handle interrupt signals. This commit changes
  the startup process in the standby server so that it handles the interrupt
  signals after waiting for wal_retrieve_retry_interval on the latch and
  resetting it, before entering another wait on the latch. This change causes
  the standby server to promptly handle interrupt signals.  Otherwise,
  previously, there was the case where the standby needs to wait extra five
  seconds to shutdown when the shutdown request arrived while the startup
  process was waiting for wal_retrieve_retry_interval on the latch.  Author:
  Fujii Masao, but implementation idea is from Soumyadeep Chakraborty
  Reviewed-by: Soumyadeep Chakraborty Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/2945a488a3426838223a637cd326ec71fff61954](https://git.postgresql.org/pg/commitdiff/2945a488a3426838223a637cd326ec71fff61954)

- Emit log when restore_command succeeds but archived file faills to be
  restored. Previously, when restore_command claimed to succeed but failed to
  restore the file with the right name, for example, due to mis-configuration of
  restore_command, no log message was reported. Then the recovery failed later
  with an error message not directly related to the issue.  This commit changes
  the recovery so that a log message is emitted in this error case. This would
  enable us to investigate what happened in this case more easily.  Author: Jeff
  Janes, Fujii Masao Reviewed-by: Pavel Borisov, Kyotaro Horiguchi Discussion:
  
[https://postgr.es/m/CAMkU=1xkFs3Omp4JR4wMYWdam_KLuj6LXnTYfU8u3T0h=pl...@mail.gmail.com](https://postgr.es/m/CAMkU=1xkFs3Omp4JR4wMYWdam_KLuj6LXnTYfU8u3T0h=pl...@mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/a4ef0329c27156dca81714854599e7d82becb17f](https://git.postgresql.org/pg/commitdiff/a4ef0329c27156dca81714854599e7d82becb17f)

Peter Eisentraut pushed:

- Remove code handling removed deprecated containment operators. This removes
  the code that was there for handling the operators removed by
  2f70fdb0644c32c4154236c2b5c241bec92eac5e.  Discussion:
  
[https://www.postgresql.org/message-id/flat/[email protected]](https://www.postgresql.org/message-id/flat/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/591d282e8d3e0448ec1339c6b066e10953f040a2](https://git.postgresql.org/pg/commitdiff/591d282e8d3e0448ec1339c6b066e10953f040a2)

- Normalize comment in empty grammar rules. Change lower case /* empty */ to /*
  EMPTY */ for consistency with the majority.  Discussion:
  
[https://www.postgresql.org/message-id/flat/e9eed669-e32d-6919-fed4-acc0daea857b%40enterprisedb.com](https://www.postgresql.org/message-id/flat/e9eed669-e32d-6919-fed4-acc0daea857b%40enterprisedb.com)
  
[https://git.postgresql.org/pg/commitdiff/5664b7be5b2c2e756372e7dde7c187a11a5ab701](https://git.postgresql.org/pg/commitdiff/5664b7be5b2c2e756372e7dde7c187a11a5ab701)

- Remove unused and deprecated strategy numbers from BRIN code. These were dead
  code.  Discussion:
  
[https://www.postgresql.org/message-id/flat/[email protected]](https://www.postgresql.org/message-id/flat/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/d93ccdea1d447ab7e8c48797153ce58b051f1a37](https://git.postgresql.org/pg/commitdiff/d93ccdea1d447ab7e8c48797153ce58b051f1a37)

- Add more tests for hashing and hash-based plans. - Test hashing of an array of
  a non-hashable element type.  - Test UNION [DISTINCT] with hash- and
  sort-based plans.  (Previously,   only INTERSECT and EXCEPT where tested
  there.)  - Test UNION [DISTINCT] with a non-hashable column type.  This
  currently reverts to a sort-based plan even if enable_hashagg is on.  - Test
  UNION/INTERSECT/EXCEPT hash- and sort-based plans with arrays   as column
  types.  Also test an array with a non-hashable element   type.  - Test
  UNION/INTERSECT/EXCEPT similarly with row types as column   types.  Currently,
  this uses only sort-based plans because there is   no hashing support for row
  types.  - Add a test case that shows that recursive queries using UNION
  [DISTINCT] require hashable column types.  - Add a currently failing test that
  uses UNION DISTINCT in a   cycle-detection use case using row types as column
  types.  Discussion:
  
[https://www.postgresql.org/message-id/flat/38eccd35-4e2d-6767-1b3c-dada1eac3124%402ndquadrant.com](https://www.postgresql.org/message-id/flat/38eccd35-4e2d-6767-1b3c-dada1eac3124%402ndquadrant.com)
  
[https://git.postgresql.org/pg/commitdiff/6dd8b00807871bfd0c3ce8e18fd1f6ba1a71fbf9](https://git.postgresql.org/pg/commitdiff/6dd8b00807871bfd0c3ce8e18fd1f6ba1a71fbf9)

- Hash support for row types. Add hash functions for the record type as well as
  a hash operator family and operator class for the record type.  This enables
  all the hash functionality for the record type such as hash-based plans for
  UNION/INTERSECT/EXCEPT DISTINCT, recursive queries using UNION DISTINCT, hash
  joins, and hash partitioning.  Reviewed-by: Tom Lane <[email protected]>
  Discussion:
  
[https://www.postgresql.org/message-id/flat/38eccd35-4e2d-6767-1b3c-dada1eac3124%402ndquadrant.com](https://www.postgresql.org/message-id/flat/38eccd35-4e2d-6767-1b3c-dada1eac3124%402ndquadrant.com)
  
[https://git.postgresql.org/pg/commitdiff/01e658fa74cb7e3292448f6663b549135958003b](https://git.postgresql.org/pg/commitdiff/01e658fa74cb7e3292448f6663b549135958003b)

- Rename object in test to avoid conflict. In
  01e658fa74cb7e3292448f6663b549135958003b, the hash_func test creates a type
  t1, but apparently a test running in parallel might also use that name,
  depending on timing.  Rename the type to avoid the issue.
  
[https://git.postgresql.org/pg/commitdiff/afaccbba787d5f1470c44ddd61c9ddaaad19e27e](https://git.postgresql.org/pg/commitdiff/afaccbba787d5f1470c44ddd61c9ddaaad19e27e)

- Replace a macro by a function. Using a macro is ugly and not justified here.
  Discussion:
  
[https://www.postgresql.org/message-id/flat/[email protected]](https://www.postgresql.org/message-id/flat/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/b5acf10cfc63ed1e0bc4eef466c0f4670a725ef3](https://git.postgresql.org/pg/commitdiff/b5acf10cfc63ed1e0bc4eef466c0f4670a725ef3)

- doc: Improve tableoid description. Mention that it's useful for determining
  table names for partitioned tables as well as for those in inheritance
  hierarchies.  Author: Ian Lawrence Barwick <[email protected]> Reviewed-by:
  Ashutosh Bapat <[email protected]> Discussion:
  
[https://www.postgresql.org/message-id/flat/CAB8KJ=gFmBXP=p9htzioj+wm5pdak4qc7igqta+8kuh306k...@mail.gmail.com](https://www.postgresql.org/message-id/flat/CAB8KJ=gFmBXP=p9htzioj+wm5pdak4qc7igqta+8kuh306k...@mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/a47834db0fb70256e676862f1d96374a9e114d82](https://git.postgresql.org/pg/commitdiff/a47834db0fb70256e676862f1d96374a9e114d82)

Álvaro Herrera pushed:

- Fix typo. Introduced in 90fdc259866e; backpatch to 12.  Author: Erik Rijkers
  <[email protected]> Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/bcbd7713324798d5a74ca640c6cf6c439bda22e4](https://git.postgresql.org/pg/commitdiff/bcbd7713324798d5a74ca640c6cf6c439bda22e4)

- Rename PGPROC->vacuumFlags to statusFlags. With more flags associated to a
  PGPROC entry that are not related to vacuum (currently existing or planned),
  the name "statusFlags" describes its purpose better.  (The same is done to the
  mirroring PROC_HDR->vacuumFlags.)  No functional changes in this commit.  This
  was suggested first by Hari Babu Kommi in [1] and then by Michael Paquier at
  [2].  [1]
  
[https://postgr.es/m/cajrrpgcsdc-oy1ahqh0jkxya0z2agbuxzhppbylobgmxfoz...@mail.gmail.com](https://postgr.es/m/cajrrpgcsdc-oy1ahqh0jkxya0z2agbuxzhppbylobgmxfoz...@mail.gmail.com)
  [2] 
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  Author: Dmitry
  Dolgov <[email protected]> Reviewed-by: Álvaro Herrera
  <[email protected]> Discussion:
  
[https://postgr.es/m/20201116182446.qcg3o6szo2zookyr@localhost](https://postgr.es/m/20201116182446.qcg3o6szo2zookyr@localhost)
  
[https://git.postgresql.org/pg/commitdiff/cd9c1b3e197a9b53b840dcc87eb41b04d601a5f9](https://git.postgresql.org/pg/commitdiff/cd9c1b3e197a9b53b840dcc87eb41b04d601a5f9)

- indexcmds.c: reorder function prototypes. ... out of an overabundance of
  neatnikism, perhaps.
  
[https://git.postgresql.org/pg/commitdiff/7684b6fbed3a0770a0d8fdcbb5cf8b61394de691](https://git.postgresql.org/pg/commitdiff/7684b6fbed3a0770a0d8fdcbb5cf8b61394de691)

- Relax lock level for setting PGPROC->statusFlags. We don't actually need a
  lock to set PGPROC->statusFlags itself; what we do need is a shared lock on
  either XidGenLock or ProcArrayLock in order to ensure MyProc->pgxactoff keeps
  still while we modify the mirror array in ProcGlobal->statusFlags.  Some
  places were using an exclusive lock for that, which is excessive.  Relax those
  to use shared lock only.  procarray.c has a couple of places with somewhat
  brittle assumptions about PGPROC changes: ProcArrayEndTransaction uses only
  shared lock, so it's permissible to change MyProc only.  On the other hand,
  ProcArrayEndTransactionInternal also changes other procs, so it must hold
  exclusive lock.  Add asserts to ensure those assumptions continue to hold.
  Author: Álvaro Herrera <[email protected]> Reviewed-by: Michael Paquier
  <[email protected]> Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/27838981be9de35d54ffcdc6cc06b5d5ea9e0cee](https://git.postgresql.org/pg/commitdiff/27838981be9de35d54ffcdc6cc06b5d5ea9e0cee)

Bruce Momjian pushed:

- doc:  improve wording of the need for analyze of exp. indexes. This is a
  followup commit on 3370207986.  Reported-by: Justin Pryzby  Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  Backpatch-through:
  9.5
  
[https://git.postgresql.org/pg/commitdiff/481f9dc3dc2fc779af3ab2d58216a1c2b970b20f](https://git.postgresql.org/pg/commitdiff/481f9dc3dc2fc779af3ab2d58216a1c2b970b20f)

- doc:  clarify how to find pg_type_d.h in the install tree. Followup to patch
  152ed04799.  Reported-by: Alvaro Herrera  Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  Backpatch-through:
  9.5
  
[https://git.postgresql.org/pg/commitdiff/8ad06bcbe136360296a804da7d7631a78fd15e70](https://git.postgresql.org/pg/commitdiff/8ad06bcbe136360296a804da7d7631a78fd15e70)

- doc:  update bgwriter description. This clarifies exactly what the bgwriter
  does, which should help with tuning.  Reported-by: Chris Wilson  Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  Backpatch-through: 9.5
  
[https://git.postgresql.org/pg/commitdiff/62b50ad698f8a789f92177ad72639f99d94d7d78](https://git.postgresql.org/pg/commitdiff/62b50ad698f8a789f92177ad72639f99d94d7d78)

Amit Kapila pushed:

- Fix 'skip-empty-xacts' option in test_decoding for streaming mode. In
  streaming mode, the transaction can be decoded in multiple streams and those
  streams can be interleaved with streams of other transactions. So, we can't
  remember the transaction's write status in the logical decoding context
  because that might get changed due to some other transactions and lead to
  wrong answers for 'skip-empty-xacts' option. We decided to keep each
  transaction's write status in the ReorderBufferTxn to avoid interleaved
  streams changing the status of some unrelated transactions.  Diagnosed-by:
  Amit Kapila Author: Dilip Kumar Reviewed-by: Amit Kapila Discussion:
  
[https://postgr.es/m/CAA4eK1LR7=xnm_tlmpzmfuv8zqpoxkem--nzjyf8yxmesbv...@mail.gmail.com](https://postgr.es/m/CAA4eK1LR7=xnm_tlmpzmfuv8zqpoxkem--nzjyf8yxmesbv...@mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/9653f24ad8307f393de51e0a64d9b10a49efa6e3](https://git.postgresql.org/pg/commitdiff/9653f24ad8307f393de51e0a64d9b10a49efa6e3)

Peter Geoghegan pushed:

- nbtree: Rename nbtinsert.c variables for consistency. Stop naming special
  area/opaque pointer variables 'lpageop' in contexts where it doesn't make
  sense.  This is a holdover from a time when logic that performs tasks that are
  now spread across _bt_insertonpg(), _bt_findinsertloc(), and _bt_split() was
  more centralized.  'lpageop' denotes "left page", which doesn't make sense
  outside of contexts in which there isn't also a right page.  Also acquire page
  flag variables up front within _bt_insertonpg().  This makes it closer to
  _bt_split() following refactoring commit bc3087b626d. This allows the page
  split and retail insert paths to both make use of the same variables.
  
[https://git.postgresql.org/pg/commitdiff/a034f8b60c6e9afd75f42dc420a76cb9d3875fcb](https://git.postgresql.org/pg/commitdiff/a034f8b60c6e9afd75f42dc420a76cb9d3875fcb)

- Deprecate nbtree's BTP_HAS_GARBAGE flag. Streamline handling of the various
  strategies that we have to avoid a page split in nbtinsert.c.  When it looks
  like a leaf page is about to overflow, we now perform deleting LP_DEAD items
  and deduplication in one central place.  This greatly simplifies
  _bt_findinsertloc().  This has an independently useful consequence: nbtree no
  longer relies on the BTP_HAS_GARBAGE page level flag/hint for anything
  important.  We still set and unset the flag in the same way as before, but
  it's no longer treated as a gating condition when considering if we should
  check for already-set LP_DEAD bits.  This happens at the point where the page
  looks like it might have to be split anyway, so simply checking the LP_DEAD
  bits in passing is practically free.  This avoids missing LP_DEAD bits just
  because the page-level hint is unset, which is probably reasonably common
  (e.g. it happens when VACUUM unsets the page-level flag without actually
  removing index tuples whose LP_DEAD-bit was set recently, after the VACUUM
  operation began but before it reached the leaf page in question).  Note that
  this isn't a big behavioral change compared to PostgreSQL 13. We were already
  checking for set LP_DEAD bits regardless of whether the BTP_HAS_GARBAGE page
  level flag was set before we considered doing a deduplication pass.  This
  commit only goes slightly further by doing the same check for all indexes,
  even indexes where deduplication won't be performed.  We don't completely
  remove the BTP_HAS_GARBAGE flag.  We still rely on it as a gating condition
  with pg_upgrade'd indexes from before B-tree version 4/PostgreSQL 12.  That
  makes sense because we sometimes have to make a choice among pages full of
  duplicates when inserting a tuple with pre version 4 indexes.  It probably
  still pays to avoid accessing the line pointer array of a page there, since it
  won't yet be clear whether we'll insert on to the page in question at all, let
  alone split it as a result.  Author: Peter Geoghegan <[email protected]> 
Reviewed-By:
  Victor Yegorov <[email protected]> Discussion:
  
[https://postgr.es/m/CAH2-Wz%3DYpc1PDdk8OVJDChGJBjT06%3DA0Mbv9HyTLCsOknGcUFg%40mail.gmail.com](https://postgr.es/m/CAH2-Wz%3DYpc1PDdk8OVJDChGJBjT06%3DA0Mbv9HyTLCsOknGcUFg%40mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/cf2acaf4dcb5e20204dcec4d698cb4478af533e7](https://git.postgresql.org/pg/commitdiff/cf2acaf4dcb5e20204dcec4d698cb4478af533e7)

Heikki Linnakangas pushed:

- docs: Clarify that signal functions have no feedback. Bug #16652 complains
  that pg_reload_conf() returned true, even though the configuration file
  contained errors. That's the way pg_reload_conf() works, by design, but the
  documentation wasn't very clear on it. Clarify that a 'true' return value only
  means that the signal was sent successfully. Also add links to the system
  views that can be used to check the configuration files for errors.  David G.
  Johnston, with some rewording by me.  Discussion:
  
[https://www.postgresql.org/message-id/CAKFQuwax6GxhUQEes0D045UtXG-fBraM39_6UMd5JyR5K1HWCQ%40mail.gmail.com](https://www.postgresql.org/message-id/CAKFQuwax6GxhUQEes0D045UtXG-fBraM39_6UMd5JyR5K1HWCQ%40mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/dfab7f2f94812c6c3a62cfde0ec7f9e447132e64](https://git.postgresql.org/pg/commitdiff/dfab7f2f94812c6c3a62cfde0ec7f9e447132e64)

- Skip allocating hash table in EXPLAIN-only mode. Author: Alexey Bashtanov
  Discussion:
  
[https://www.postgresql.org/message-id/36823f65-050d-ae24-aa4d-a37726998240%40imap.cc](https://www.postgresql.org/message-id/36823f65-050d-ae24-aa4d-a37726998240%40imap.cc)
  
[https://git.postgresql.org/pg/commitdiff/2cccb627f10d5dd4c21806fa251e4fb61eadd28c](https://git.postgresql.org/pg/commitdiff/2cccb627f10d5dd4c21806fa251e4fb61eadd28c)

- Make pg_rewind test case more stable. If replication is exceptionally slow for
  some reason, pg_rewind might run before the test row has been replicated. Add
  an explicit wait for it.  Reported-by: Andres Freund Discussion:
  
[https://www.postgresql.org/message-id/20201120003811.iknhqwatitw2vvxf%40alap3.anarazel.de](https://www.postgresql.org/message-id/20201120003811.iknhqwatitw2vvxf%40alap3.anarazel.de)
  
[https://git.postgresql.org/pg/commitdiff/c71f9a094b32770dcd34b9ba4909435e34583747](https://git.postgresql.org/pg/commitdiff/c71f9a094b32770dcd34b9ba4909435e34583747)

Thomas Munro pushed:

- Add BarrierArriveAndDetachExceptLast(). Provide a way for one process to
  continue the remaining phases of a (previously) parallel computation alone.
  Later patches will use this to extend Parallel Hash Join.  Author: Melanie
  Plageman <[email protected]> Reviewed-by: Thomas Munro
  <[email protected]> Discussion:
  
[https://postgr.es/m/CA%2BhUKG%2BA6ftXPz4oe92%2Bx8Er%2BxpGZqto70-Q_ERwRaSyA%3DafNg%40mail.gmail.com](https://postgr.es/m/CA%2BhUKG%2BA6ftXPz4oe92%2Bx8Er%2BxpGZqto70-Q_ERwRaSyA%3DafNg%40mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/7888b0999488511e4266f2134053fa3a6505a155](https://git.postgresql.org/pg/commitdiff/7888b0999488511e4266f2134053fa3a6505a155)

- Add collation versions for FreeBSD. On FreeBSD 13, use querylocale() to read
  the current version of libc collations.  Similar to commits 352f6f2d for
  Windows and d5ac14f9 for GNU/Linux.  Discussion:
  
[https://postgr.es/m/CAEepm%3D0uEQCpfq_%2BLYFBdArCe4Ot98t1aR4eYiYTe%3DyavQygiQ%40mail.gmail.com](https://postgr.es/m/CAEepm%3D0uEQCpfq_%2BLYFBdArCe4Ot98t1aR4eYiYTe%3DyavQygiQ%40mail.gmail.com)
  
[https://git.postgresql.org/pg/commitdiff/ca051d8b101d3205f1c5faf0d1da8a523ffc95a1](https://git.postgresql.org/pg/commitdiff/ca051d8b101d3205f1c5faf0d1da8a523ffc95a1)

Magnus Hagander pushed:

- Remove ability to independently select random number generator. Remove the
  ability to select random number generator independently from SSL library.
  Instead, use the random number generator from the SSL library (today only
  OpenSSL supported) if one is configured. If no SSL library is configured, use
  the platform default (which means use CryptoAPI on Win32 and /dev/urandom on
  Linux).  This also restructures pg_strong_random.c to have three clearly
  separate sections, one for each implementation, with two functions in each,
  instead of a scattered set of ifdefs throughout the whole file.  Author:
  Daniel Gustafsson, Magnus Hagander, Michael Paquier Discussion:
  
[https://postgr.es/m/[email protected]](https://postgr.es/m/[email protected])
  
[https://git.postgresql.org/pg/commitdiff/16f96c74d48e65da23d28665103e2c4c9d3414cc](https://git.postgresql.org/pg/commitdiff/16f96c74d48e65da23d28665103e2c4c9d3414cc)

# Pending Patches

Atsushi Torikoshi sent in another revision of a patch to Enabled
pg_get_backend_memory_contexts() to collect arbitrary backend process's memory
contexts.  Previously, pg_get_backend_memory_contexts() could only get the local
memory contexts. This patch enables to get memory contexts of the arbitrary
backend process which PID is specified by the argument.

Tomáš Vondra sent in two revisions of a patch to support extended statistics on
expressions.

Seino Yuki and Fujii Masao traded patches to add a new pg_stat_statements_info
view to the pg_stat_statements extension.

Jacob Champion and Daniel Gustafsson traded patches to support NSS as a TLS
backend for libpq.

Alexandra Pervushina sent in two more revisions of a patch to make it possible
to make async replicas wait for lsn to be replayed.

Álvaro Herrera and Dmitry Dolgov traded patches to remove a spurious wait from
CREATE INDEX CONCURRENTLY.

Thomas Munro sent in two revisions of a patch to track relation sizes in shared
memory, and provide a lock-free fast path for smgrnblocks().

Masahiro Ikeda sent in another revision of a patch to add a track_wal_io_timing
GUC and a matching pg_stat_wal view to back it.

Li Japin sent in four more revisions of a patch to make it possible to terminate
idle sessions using a new GUC, idle_session_timeout, and in passing, call
setitimer() less often.

Masahiko Sawada and Bertrand Drouvot traded patches to add information during
standby recovery conflicts, controlled with a new GUC,
log_recovery_conflict_waits.

Takamichi Osumi sent in two more revisions of a patch to make it possible to
disallow WAL logging during data loads.

Simon Riggs sent in five revisions of a patch to fix a situation where the
documented behavior of DISABLE_PAGE_SKIPPING doesn't match the current behavior.

Ajin Cherian and Amit Kapila traded patches to implement logical decoding of
two-phase transactions.

Tatsuro Yamada sent in two more revisions of a patch to add a psql command for
extended statistics, \dX.

Daniel Gustafsson sent in another revision of a patch to support enabling and
disabling page checksums in a running cluster.

Justin Pryzby sent in a patch to allow composite types in bootstrap and add a
column to pg_statistic_ext_data, stxdexpr.

Peter Geoghegan sent in another revision of a patch to delete older versions in
unique indexes to avoid page splits.

Heikki Linnakangas sent in another revision of a patch to split copy.c into four
files: copy.c, which now contains the functions that are common to COPY FROM and
COPY TO, copyto.c, which contains code for COPY TO, copyfrom.c which contains
code for initilizing COPY FROM, and routing tuples to the correct table, and
copyfromparse.c, which contains code for reading from the client/file/program,
and parsing the input text/CSV/binary format into tuples.

David G. Johnston sent in another revision of a patch to clarify the fact that
signal functions have no feedback.

Simon Riggs sent in a patch to add a wal_sessioninfo GUC which when turned on
adds information about the user's session onto every commit or abort record.

David G. Johnston sent in a patch to clarify the documentation for
batch/pipelining support in libpq.

Dean Rasheed sent in another revision of a patch to improve estimation of OR
clauses.

Heikki Linnakangas sent in a patch to make the ResourceOwner implementation more
efficient and expose handier interfaces to it to external code.

Aleksey Kondratov sent in a patch to add a custom GUC to the PostgreSQL FDW
which controls whether it tries to keep connections, with the surprising name of
keep_connections.

Takayuki Tsunakawa and Tomáš Vondra traded patches to implement INSERT batching
for the PostgreSQL FDW.

Justin Pryzby and Pavel Stěhule traded patches to add a --filter option to
pg_dump, which draws from a file which specifies the filters to be used, and
makes argument parsing available both to the command line and to files so
described.

Bharath Rupireddy sent in another revision of a patch to use standard SIGHUP and
SIGTERM handlers in the autoprewarm module.

Etsuro Fujita sent in another revision of a patch to enable Asynchronous Append
on postgres_fdw nodes.

Tomáš Vondra sent in a patch to fix a bug that manifested as incremental sort
changing query behavior by adding a check for is_parallel_safe to
get_useful_pathkeys_for_relation().

David Pirotte sent in another revision of a patch to add xid to messages when
streaming, and add a "messages" option to the pgoutput output plugin. When
"messages" is true, logical decoding messages (i.e. generated via
pg_logical_emit_message) are sent to the slot consumer.

Junfeng (Jerome) Yang sent in another revision of a patch to fix vacuum freeze
with pg_database toast attribute by changing vac_update_datfrozenxid()'s source
for the pg_database tuple for current database from the disk heap table instead
of system cache.

Dmitry Dolgov sent in a patch to prevent jumbling of every element in ArrayExpr.
The motivation for this is that pg_stat_statements produces multiple entries for
queries like
    SELECT something FROM table WHERE col IN (1, 2, 3, ...)
depending on number of parameters, because every element of ArrayExpr is
jumbled. Make Consts contribute nothing to the jumble hash if they're part of a
series and at position further that specified threshold. Do the same for similar
queries with VALUES as well.

Thomas Munro sent in another revision of a patch to implement WAL prefetch.

Andrew Dunstan sent in another revision of a patch to allow matching the whole
DN from a client certificate.

Pavel Stěhule sent in two revisions of a patch to add shorthand for argument and
local variable references to PL/pgsql.

Atsushi Torikoshi sent in two revisions of a patch to document the fact that
cached plans are invalidated when statistics used to create them are updated.

Atsushi Torikoshi sent in two revisions of a patch to update the PREPARE
documentation to note that pg_prepared_statements now shows how many times each
prepared statement chose generic and custom plan cumulatively in the current
session.

Vigneshwaran C sent in another revision of a patch to parallelize COPY.

Thomas Munro sent in another revision of a patch to minimize latch signals.

Masahiro Ikeda sent in another revision of a patch to add statistics to
pg_stat_wal view for wal related parameter tuning.

Craig Ringer sent in a patch to detect and report when a LWLockAcquire() results
in a simple self-deadlock due to the caller already holding the LWLock..

Craig Ringer sent in a patch to Remove bogus lwlock__acquire tracepoint from
LWLockWaitForVar, pass the target LWLock* and tranche ID to LWLock tracepoint,
and add to the tracepoints in LWLock routines.

Heikki Linnakangas sent in another revision of a patch to move peragg and
pertrans duplicate finding to prepagg.c.

Craig Ringer sent in a patch atop the resource owner refactoring patch above
which adds some systemtap/dtrace tracepoints and provides a demo systemtap
script that shows some basic stats collection done using them.

Surafel Temesgen sent in another revision of a patch to implement system
versioned temporal tables.

Justin Pryzby sent in two more revisions of a patch to avoid errors in brin
summarization, which can happen if an index is reindexed concurrently.

Li Japin sent in a patch to use macros for calculating LWLock offset.

Kyotaro HORIGUCHI sent in another revision of a patch to implement CatCache
expiration.

Peter Eisentraut sent in another revision of a patch to add support for writing
CREATE FUNCTION and CREATE PROCEDURE statements for language SQL with a function
body that conforms to the SQL standard.

Greg Nancarrow sent in another revision of a patch to enable parallel SELECT for
"INSERT INTO ... SELECT ..." along with parallel INSERT and/or SELECT for
"INSERT INTO ... SELECT ...", where it is safe to do so.

Amit Langote sent in a patch to create foreign key triggers in partitioned
tables too in order to allow subsequent commit(s) to make the foreign key
related events to be fired in some cases using the parent table triggers instead
of those of partitions', and enforce foreign key correctly during
cross-partition updates.

Laurenz Albe sent in another revision of a patch to add session statistics to
pg_stat_database.

Justin Pryzby sent in another revision of a patch to pg_restore so it parses and
runs separately SQL commands, and allow child partitions to be independently
restored even if the parent doesn't exist, or has missing/incompatible columns.

Peter Eisentraut sent in another revision of a patch to pause recovery for
insufficient parameter settings.

Peter Eisentraut sent in another revision of a patch to add support for abstract
Unix-domain sockets, and make the error hint from bind() failure more accurate
by showing that hint only when errno == EADDRINUSE.

Matthias van de Meent sent in a patch to Fix CLUSTER progress reporting of
number of blocks scanned.

Stephen Frost sent in a patch to replace the somewhat inaccurate "default role"
term with the more precise "predefined role."

Erik Rijkers sent in a patch atop the patch to add a tutorial chapter on
architecture to fix some typos and do other wordsmithing.

Bharath Rupireddy sent in another revision of a patch to avoid checking INSERT
privilege in CTAS and MatView in order to comply with the standard.

Gilles Darold sent in two revisions of a patch to add a hook for plugins to get
control of at end of AbortCurrentTransaction, and an extension to enable
statement-level rollback based on same.

Krasiyan Andreev sent in another revision of a patch to implement <null
treatment> for window functions.

Álvaro Herrera sent in a patch to fix a bug in pageinspect which manifests as
messages along the lines of
ERROR:  invalid memory alloc request size 18446744073709551451
when pages are sufficiently broken. The fix is not to attempt to print the data
rather than dying.

Justin Pryzby sent in another revision of a patch to retire pg_standby.

Michaël Paquier sent in two more revisions of a patch to remove currtid() and
currtid2(), cleaning up some table AMs in the process.

James Coleman sent in a patch to enforce parallel safety of pathkeys in
generate_useful_gather_paths, and ensure that generate_useful_gather_paths
doesn't skip unsorted subpaths.

Vigneshwaran C sent in a PoC patch to which would make it possible to get the
call stack of a PostgreSQL process by connecting to the server.

Tom Lane sent in a patch to make the "cannot insert" message be more precise
about the fact that the reason is that non-default values can never be inserted.

Reply via email to