== PostgreSQL Weekly News - December 23, 2018 ==

Поиск
Список
Период
Сортировка
От David Fetter
Тема == PostgreSQL Weekly News - December 23, 2018 ==
Дата
Msg-id 20181223230234.GA17928@fetter.org
обсуждение исходный текст
Список pgsql-announce
== PostgreSQL Weekly News - December 23, 2018 ==

== PostgreSQL Product News ==

pgpoolAdmin 4.0.1 released.
http://pgpool.net/mediawiki/index.php/Downloads

== PostgreSQL Jobs for December ==

http://archives.postgresql.org/pgsql-jobs/2018-12/

== PostgreSQL Local ==

FOSDEM PGDay 2019, a one day conference held before the main FOSDEM event will
be held in Brussels, Belgium, on Feb 1st, 2019.
https://2019.fosdempgday.org/

Prague PostgreSQL Developer Day 2019 (P2D2 2019) is a two-day
conference that will be held on February 13-14, 2019 in Prague, Czech Republic.
The CfP is open until January 4, 2018 at https://p2d2.cz/callforpapers
http://www.p2d2.cz/

PGConf India 2019 will be on February 13-15, 2019 in Bengaluru, Karnataka.
http://pgconf.in/

pgDay Paris 2019 will be held in Paris, France on March 12, 2019
at 199bis rue Saint-Martin.
http://2019.pgday.paris/

PGConf APAC 2019 will be held in Singapore March 19-21, 2019.
http://2019.pgconfapac.org/

The German-speaking PostgreSQL Conference 2019 will take place on May 10, 2019
in Leipzig.  The CfP is open until February 26, 2019 at http://2019.pgconf.de/cfp
http://2019.pgconf.de/

PGDay.IT 2019 will take place May 16th and May 17th in Bologna, Italy. Both the
CfP https://2019.pgday.it/en/blog/cfp and the Call for Workshops
https://2019.pgday.it/en/blog/cfw are openuntil January 15, 2019.
https://2019.pgday.it/en/

PGCon 2019 will take place in Ottawa on May 28-31, 2019.  The CfP is open
through January 19, 2019 at http://www.pgcon.org/2019/papers.php
https://www.pgcon.org/2018/schedule/

Swiss PGDay 2019 will take place in Rapperswil (near Zurich) on June 28, 2019.
The CfP is open January 17, 2019 through April 18, 2019, and registration will
open January 17, 2019.
http://www.pgday.ch/2019/

== PostgreSQL in the News ==

Planet PostgreSQL: 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 david@fetter.org.

== Applied Patches ==

Tom Lane pushed:

- Modernize our code for looking up descriptive strings for Unix signals.  At
  least as far back as the 2008 spec, POSIX has defined strsignal(3) for looking
  up descriptive strings for signal numbers.  We hadn't gotten the word though,
  and were still using the crufty old sys_siglist array, which is in no standard
  even though most Unixen provide it.  Aside from not being formally
  standards-compliant, this was just plain ugly because it involved #ifdef's at
  every place using the code.  To eliminate the #ifdef's, create a portability
  function pg_strsignal, which wraps strsignal(3) if available and otherwise
  falls back to sys_siglist[] if available.  The set of Unixen with neither API
  is probably empty these days, but on any platform with neither, you'll just
  get "unrecognized signal".  All extant callers print the numeric signal number
  too, so no need to work harder than that.  Along the way, upgrade
  pg_basebackup's child-error-exit reporting to match the rest of the system.
  Discussion: https://postgr.es/m/25758.1544983503@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/a73d08319537d807a520a72bc5bd17279672c3de

- Drop support for getting signal descriptions from sys_siglist[].  It appears
  that all platforms that have sys_siglist[] also have strsignal(), making that
  fallback case in pg_strsignal() dead code.  Getting rid of it allows dropping
  a configure test, which seems worth more than providing textual signal
  descriptions on whatever platforms might still hypothetically have use for the
  fallback case.  Discussion: https://postgr.es/m/25758.1544983503@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/cc92cca43162c4635e6ab5e7c61f7f8728d56d9a

- Fix ancient thinko in mergejoin cost estimation.  "rescanratio" was computed
  as 1 + rescanned-tuples / total-inner-tuples, which is sensible if it's to be
  multiplied by total-inner-tuples or a cost value corresponding to scanning all
  the inner tuples.  But in reality it was (mostly) multiplied by inner_rows or
  a related cost, numbers that take into account the possibility of stopping
  short of scanning the whole inner relation thanks to a limited key range in
  the outer relation.  This'd still make sense if we could expect that stopping
  short would result in a proportional decrease in the number of tuples that
  have to be rescanned.  It does not, however.  The argument that establishes
  the validity of our estimate for that number is independent of whether we scan
  all of the inner relation or stop short, and experimentation also shows that
  stopping short doesn't reduce the number of rescanned tuples.  So the correct
  calculation is 1 + rescanned-tuples / inner_rows, and we should be sure to
  multiply that by inner_rows or a corresponding cost value.  Most of the time
  this doesn't make much difference, but if we have both a high rescan rate (due
  to lots of duplicate values) and an outer key range much smaller than the
  inner key range, then the error can be significant, leading to a large
  underestimate of the cost associated with rescanning.  Per report from
  Vijaykumar Jain.  This thinko appears to go all the way back to the
  introduction of the rescan estimation logic in commit 70fba7043, so back-patch
  to all supported branches.  Discussion:
  https://postgr.es/m/CAE7uO5hMb_TZYJcZmLAgO6iD68AkEK6qCe7i=vZUkCpoKns+EQ@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/d364e88155ac895710c28efb0330b0c9594300eb

- Update sepgsql regression test results for commit ca4103025.  Per buildfarm.
  https://git.postgresql.org/pg/commitdiff/b2d9e17768864030fb0829b55303b8b72bfd809f

- Make collation-aware system catalog columns use "C" collation.  Up to now we
  allowed text columns in system catalogs to use collation "default", but that
  isn't really safe because it might mean something different in template0 than
  it means in a database cloned from template0.  In particular, this could mean
  that cloned pg_statistic entries for such columns weren't entirely valid,
  possibly leading to bogus planner estimates, though (probably) not any
  outright failures.  In the wake of commit 5e0928005, a better solution is
  available: if we label such columns with "C" collation, then their
  pg_statistic entries will also use that collation and hence will be valid
  independently of the database collation.  This also provides a cleaner
  solution for indexes on such columns than the hack added by commit 0b28ea79c:
  the indexes will naturally inherit "C" collation and don't have to be forced
  to use text_pattern_ops.  Also, with the planned improvement of type "name" to
  be collation-aware, this policy will apply cleanly to both text and name
  columns.  Because of the pg_statistic angle, we should also apply this policy
  to the tables in information_schema.  This patch does that by adjusting
  information_schema's textual domain types to specify "C" collation.  That has
  the user-visible effect that order-sensitive comparisons to textual
  information_schema view columns will now use "C" collation by default.  The
  SQL standard says that the collation of those view columns is
  implementation-defined, so I think this is legal per spec.  At some point this
  might allow for translation of such comparisons into indexable conditions on
  the underlying "name" columns, although additional work will be needed before
  that can happen.  Discussion:
  https://postgr.es/m/19346.1544895309@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/6b0faf723647a851eaaddfed11e14861f8d0f588

- Doc: fix incorrect example of collecting arguments with fmgr macros.  Thinko
  in commit f66912b0a.  Back-patch to v10, as that was.  Discussion:
  https://postgr.es/m/154522283371.15419.15167411691473730460@wrigleys.postgresql.org
  https://git.postgresql.org/pg/commitdiff/639924249c8a5e1929a0c74ab4ae15d18683e7fa

- Small improvements for allocation logic in ginHeapTupleFastCollect().  Avoid
  repetitive calls to repalloc() when the required size of the collector array
  grows more than 2x in one call.  Also ensure that the array size is a power of
  2 (since palloc will probably consume a power of 2 anyway) and doesn't start
  out very small (which'd likely just lead to extra repallocs).  David Rowley,
  tweaked a bit by me Discussion:
  https://postgr.es/m/CAKJS1f8vn-iSBE8PKeVHrnhvyjRNYCxguPFFY08QLYmjWG9hPQ@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/c6e394c1a2ae641724d285ce0b043b753406dbbd

- Make type "name" collation-aware.  The "name" comparison operators now all
  support collations, making them functionally equivalent to "text" comparisons,
  except for the different physical representation of the datatype.  They do, in
  fact, mostly share the varstr_cmp and varstr_sortsupport infrastructure, which
  has been slightly enlarged to handle the case.  To avoid changes in the
  default behavior of the datatype, set name's typcollation to C_COLLATION_OID
  not DEFAULT_COLLATION_OID, so that by default comparisons to a name value will
  continue to use strcmp semantics.  (This would have been the case for system
  catalog columns anyway, because of commit 6b0faf723, but doing this makes it
  true for user-created name columns as well.  In particular, this avoids
  locale-dependent changes in our regression test results.) In consequence,
  tweak a couple of places that made assumptions about collatable base types
  always having typcollation DEFAULT_COLLATION_OID.  I have not, however,
  attempted to relax the restriction that user- defined collatable types must
  have that.  Hence, "name" doesn't behave quite like a user-defined type; it
  acts more like a domain with COLLATE "C".  (Conceivably, if we ever get rid of
  the need for catalog name columns to be fixed-length, "name" could actually
  become such a domain over text.  But that'd be a pretty massive undertaking,
  and I'm not volunteering.) Discussion:
  https://postgr.es/m/15938.1544377821@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/586b98fdf1aaef4a27744f8b988479aad4bd9a01

- Add text-vs-name cross-type operators, and unify name_ops with text_ops.  Now
  that name comparison has effectively the same behavior as text comparison, we
  might as well merge the name_ops opfamily into text_ops, allowing cross-type
  comparisons to be processed without forcing a datatype coercion first.  We
  need do little more than add cross-type operators to make the opfamily
  complete, and fix one or two places in the planner that assumed text_ops was a
  single-datatype opfamily.  I chose to unify hash name_ops into hash text_ops
  as well, since the types have compatible hashing semantics.  This allows
  marking the new cross-type equality operators as oprcanhash.  (Note: this
  doesn't remove the name_ops opclasses, so there's no breakage of index
  definitions.  Those opclasses are just reparented into the text_ops opfamily.)
  Discussion: https://postgr.es/m/15938.1544377821@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/2ece7c07dc9a14667c64f107686573590b7e45c3

- Make bitmapset.c use 64-bit bitmap words on 64-bit machines.  Using the full
  width of the CPU's native word size shouldn't cost anything in typical cases.
  When working with large bitmapsets, this halves the number of operations
  needed for many common BMS operations.  On the right sort of test case, a
  measurable improvement is obtained.  David Rowley Discussion:
  https://postgr.es/m/CAKJS1f9EGBd2h-VkXvb=51tf+X46zMX5T8h-KYgXEV_u2zmLUw@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/216af5eea5c8fdc9fca9d44da9eec33ac5e002d2

- Doc: fix ancient mistake in search_path documentation.  "$user" in a
  search_path string is replaced by CURRENT_USER not SESSION_USER.  (It actually
  was SESSION_USER in the initial implementation, but we changed it shortly
  later, and evidently forgot to fix the docs to match.) Noted by
  antonov@stdpr.ru Discussion:
  https://postgr.es/m/159151fb45d490c8d31ea9707e9ba99d@stdpr.ru
  https://git.postgresql.org/pg/commitdiff/42bdf853f664d0566c9e7af027635b48d66c0f71

- Base information_schema.sql_identifier domain on name, not varchar.  The SQL
  spec says that sql_identifier is a domain over varchar, but it also says that
  that domain is supposed to represent the set of valid identifiers for the
  implementation, in particular applying a length limit matching the
  implementation's identifier length limit.  We were declaring sql_identifier as
  just "character varying", thus duplicating what the spec says about base type,
  but entirely failing at the rest of it.  Instead, let's declare sql_identifier
  as a domain over type "name".  (We can drop the COLLATE "C" added by commit
  6b0faf723, since that's now implicit in "name".)  With the recent improvements
  to name's comparison support, there's not a lot of functional difference
  between name and varchar.  So although in principle this is a spec deviation,
  it's a pretty minor one.  And correctly enforcing PG's name length limit is a
  good thing; on balance this seems closer to the intent of the spec than what
  we had.  But that's all just language-lawyering.  The *real* reason to do this
  is that it makes sql_identifier columns exposed by information_schema views be
  just direct representations of the underlying "name" catalog columns,
  eliminating a semantic mismatch that was disastrous for performance of typical
  queries on the information_schema.  In combination with the recent change to
  allow dropping no-op CoerceToDomain nodes, this allows (for example) queries
  such as select ... from information_schema.tables where table_name = 'foo'; to
  produce an indexscan rather than a seqscan on pg_class.  Discussion:
  https://postgr.es/m/CAFj8pRBUCX4LZ2rA2BbEkdD6NN59mgx+BLo1gO08Wod4RLtcTg@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/7c15cef86d37924505b3bb49b5e1ad1740b1d8f7

- Avoid producing over-length specific_name outputs in information_schema.
  information_schema output columns that are declared as being type
  sql_identifier are supposed to conform to the implementation's rules for valid
  identifiers, in particular the identifier length limit.  Several places
  potentially violated this limit by concatenating a function's name and OID.
  (The OID is added to ensure name uniqueness within a schema, since the spec
  doesn't expect function name overloading.) Simply truncating the concatenation
  result to fit in "name" won't do, since losing part of the OID might wind up
  giving non-unique results.  Instead, let's truncate the function name as
  necessary.  The most practical way to do that is to do it in a C function; the
  information_schema.sql script doesn't have easy access to the value of
  NAMEDATALEN, nor does it have an easy way to truncate on the basis of
  resulting byte-length rather than number of characters.  (There are still a
  couple of places that cast concatenation results to sql_identifier, but as far
  as I can see they are guaranteed not to produce over-length strings, at least
  with the normal value of NAMEDATALEN.) Discussion:
  https://postgr.es/m/23817.1545283477@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/5bbee34d9f2e6097247ace3ebe1dde1f6aa80287

Michaël Paquier pushed:

- Make constraint rename issue relcache invalidation on target relation.  When a
  constraint gets renamed, it may have associated with it a target relation (for
  example domain constraints don't have one).  Not invalidating the target
  relation cache when issuing the renaming can result in issues with subsequent
  commands that refer to the old constraint name using the relation cache,
  causing various failures.  One pattern spotted was using CREATE TABLE LIKE
  after a constraint renaming.  Reported-by: Stuart <sfbarbee@gmail.com> Author:
  Amit Langote Reviewed-by: Michael Paquier Discussion:
  https://postgr.es/m/2047094.V130LYfLq4@station53.ousa.org
  https://git.postgresql.org/pg/commitdiff/b13fd344c5fce6a2f95b758e97b79eb00adf2731

- Fix use-after-free bug when renaming constraints.  This is an oversight from
  recent commit b13fd344.  While on it, tweak the previous test with a better
  name for the renamed primary key.  Detected by buildfarm member prion which
  forces relation cache release with -DRELCACHE_FORCE_RELEASE.  Back-patch down
  to 9.4 as the previous commit.
  https://git.postgresql.org/pg/commitdiff/67915fb8e51692ae92622696ad03e933be224bf2

- Include ALTER INDEX SET STATISTICS in pg_dump.  The new grammar pattern of
  ALTER INDEX SET STATISTICS able to use column numbers on top of the existing
  column names introduced by commit 5b6d13e forgot to add support for the
  feature in pg_dump, so defining statistics on index columns was missing from
  the dumps, potentially causing silent planning problems with a subsequent
  restore.  pg_dump ought to not use column names in what it generates as these
  are automatically generated by the server and could conflict with real
  relation attributes with matching patterns.  "expr" and "exprN", N incremented
  automatically after the creation of the first one, are used as default
  attribute names for index expressions, and that could easily match what is
  defined in other relations, causing the dumps to fail if some of those
  attributes are renamed at some point.  So to avoid any problems, the new
  grammar with column numbers gets used.  Reported-by: Ronan Dunklau Author:
  Michael Paquier Reviewed-by: Tom Lane, Adrien Nayrat, Amul Sul Discussion:
  https://postgr.es/m/CAARsnT3UQ4V=yDNW468w8RqHfYiY9mpn2r_c5UkBJ97NAApUEw@mail.gmail.com
  Backpatch-through: 11, where the new syntax has been introduced.
  https://git.postgresql.org/pg/commitdiff/e4fca461ab6f08d5cc0c93942017d2fbf49000af

- Update project link of pgBadger in documentation.  The project has moved to a
  new place.  Reported-by: Peter Neave Discussion:
  https://postgr.es/m/154474118231.5066.16352227860913505754@wrigleys.postgresql.org
  https://git.postgresql.org/pg/commitdiff/ed6f15eb35a95bc40ad6b05e99cbf495e034249b

- Tweak description comments in tests for partition functions.  The new wording
  is more generic and fixes one grammar mistake and one typo on the way.  Per
  discussion between Amit Langote and me.  Discussion:
  https://postgr.es/m/20181217064028.GJ31474@paquier.xyz
  https://git.postgresql.org/pg/commitdiff/3e514c1238312c56b73d956d844c67a034dead02

- Include partitioned indexes to system view pg_indexes.  pg_tables already
  includes partitioned tables, so for consistency pg_indexes should show
  partitioned indexes.  Author: Suraj Kharage Reviewed-by: Amit Langote, Michael
  Paquier Discussion:
  https://postgr.es/m/CAF1DzPVrYo4XNTEnc=PqVp6aLJc7LFYpYR4rX=_5pV=wJ2KdZg@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/f94cec64476f2752e91b10d7928a2fcd105e9fc3

- Add more tab completion for CREATE TABLE in psql The following completion
  patterns are added: - CREATE TABLE <name> with '(', OF or PARTITION OF.  -
  CREATE TABLE <name> OF with list of composite types.  - CREATE TABLE name
  (...) with PARTITION OF, WITH, TABLESPACE, ON COMMIT (depending on the
  presence of a temporary table).  - CREATE TABLE ON COMMIT with actions (only
  for temporary tables).  Author: Dagfinn Ilmari Mannsåker Discussion:
  https://postgr.es/m/d8j1s77kdbb.fsf@dalvik.ping.uio.no
  https://git.postgresql.org/pg/commitdiff/4cba9c2a33f145f76575454b0f32a0e32dcd4335 

- Add completion for storage parameters after CREATE TABLE WITH in psql.  In
  passing, move the list of parameters where it can be used for both CREATE
  TABLE and ALTER TABLE, and reorder it alphabetically.  Author: Dagfinn Ilmari
  Mannsåker Discussion: https://postgr.es/m/d8j1s77kdbb.fsf@dalvik.ping.uio.no
  https://git.postgresql.org/pg/commitdiff/11a60d496147a1e1bbf6932bda53941c5a62ee1a

- Disable WAL-skipping optimization for COPY on views and foreign tables.  COPY
  can skip writing WAL when loading data on a table which has been created in
  the same transaction as the one loading the data, however this cannot work on
  views or foreign table as this would result in trying to flush relation files
  which do not exist.  So disable the optimization so as commands are able to
  work the same way with any configuration of wal_level.  Tests are added to
  cover the different cases, which need to have wal_level set to minimal to
  allow the problem to show up, and that is not the default configuration.
  Reported-by: Luis M. Carril, Etsuro Fujita Author: Amit Langote, Michael
  Paquier Reviewed-by: Etsuro Fujita Discussion:
  https://postgr.es/m/15552-c64aa14c5c22f63c@postgresql.org Backpatch-through:
  10, where support for COPY on views has been added, while v11 has added
  support for COPY on foreign tables.
  https://git.postgresql.org/pg/commitdiff/bf491a9073e12ce1fc3e6facd0ae1308534df570

Amit Kapila pushed:

- Remove extra semicolons.  Reported-by: David Rowley Author: David Rowley
  Reviewed-by: Amit Kapila Backpatch-through: 10 Discussion:
  https://postgr.es/m/CAKJS1f8EneeYyzzvdjahVZ6gbAHFkHbSFB5m_C0Y6TUJs9Dgdg@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/3abb11e55b0a8408cd91fe341cda1f568774df58

Álvaro Herrera pushed:

- Clarify runtime pruning in EXPLAIN.  Author: Amit Langote Reviewed-by: David
  Rowley Discussion:
  https://postgr.es/m/002dec69-9afb-b621-5630-235eceafe0bd@lab.ntt.co.jp
  https://git.postgresql.org/pg/commitdiff/1e6240a3fe919e19676875927681a861e13f93c2

- Fix tablespace handling for partitioned tables.  When partitioned tables were
  introduced, we failed to realize that by copying the tablespace handling for
  other relation kinds with no physical storage we were causing the secondary
  effect that their partitions would not automatically inherit the tablespace
  setting.  This is surprising and unhelpful, so change it to adopt the behavior
  introduced in pg11 (commit 33e6c34c3267) for partitioned indexes: the parent
  relation remembers the tablespace specification, which is then used for any
  new partitions that don't declare one.  Because this commit changes behavior
  of the TABLESPACE clause for partitioned tables (it's no longer a no-op), it
  is not backpatched.  Author: David Rowley, Álvaro Herrera Reviewed-by: Michael
  Paquier Discussion:
  https://postgr.es/m/CAKJS1f9SxVzqDrGD1teosFd6jBMM0UEaa14_8mRvcWE19Tu0hA@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/ca4103025dfe26eaaf6a500dec9170fbb176eebc

- DETACH PARTITION: hold locks on indexes until end of transaction.  When a
  partition is detached from its parent, we acquire locks on all attached
  indexes to also detach them ... but we release those locks immediately.  This
  is a violation of the policy of keeping locks on user objects to the end of
  the transaction.  Bug introduced in 8b08f7d4820f.  It's unclear that there are
  any ill effects possible, but it's clearly wrong nonetheless.  It's likely
  that bad behavior *is* possible, but mostly because the relation that the
  index is for is only locked with AccessShareLock, which is an older bug that
  shall be fixed separately.  While touching that line of code, close the index
  opened with index_open() using index_close() instead of relation_close().  No
  difference in practice, but let's be consistent.  Unearthed by Robert Haas.
  Discussion:
  https://postgr.es/m/CA+TgmoYruJQ+2qnFLtF1xQtr71pdwgfxy3Ziy-TxV28M6pEmyA@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/0c2377152f2b68d46a27d5821a2327b6ca441fca

- Fix lock level used for partition when detaching it.  For probably bogus
  reasons, we acquire only AccessShareLock on the partition when we try to
  detach it from its parent partitioned table.  This can cause ugly things to
  happen if another transaction is doing any sort of DDL to the partition
  concurrently.  Upgrade that lock to ShareUpdateExclusiveLock, which per
  discussion seems to be the minimum needed.  Reported by Robert Haas.
  Discussion:
  https://postgr.es/m/CA+TgmoYruJQ+2qnFLtF1xQtr71pdwgfxy3Ziy-TxV28M6pEmyA@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/7b14bcc06cc56b110118fba408f4b9b72a663387

- Remove function names from error messages.  They are not necessary, and having
  them there gives useless work for translators.
  https://git.postgresql.org/pg/commitdiff/68f6f2b7395fe3e403034bcd97a1fcfbcc68ae10

Tatsuo Ishii pushed:

- Doc: fix typo in "Generic File Access Functions" section.  Issue reported by
  me and fix by Tom Lane.  Discussion:
  https://postgr.es/m/20181219.080458.1434575730369741406.t-ishii%40sraoss.co.jp
  https://git.postgresql.org/pg/commitdiff/3cab54878dbf212c08699bb974b069bdc43bff61

Peter Geoghegan pushed:

- Correct obsolete nbtree recovery comments.  Commit 40dae7ec537, which made the
  handling of interrupted nbtree page splits more robust, removed an
  nbtree-specific end-of-recovery cleanup step.  This meant that it was no
  longer possible to complete an interrupted page split during recovery.
  However, a reference to recovery as a reason for using a NULL stack while
  inserting into a parent page was missed.  Remove the reference.  Remove a
  similar obsolete reference to recovery that was introduced much more recently,
  as part of the btree fastpath optimization enhancement that made it into
  Postgres 11 (commit 2b272734, and follow-up commits).  Backpatch: 11-, where
  the fastpath optimization was introduced.
  https://git.postgresql.org/pg/commitdiff/60f3cc9553c7ea7a1cc61bcd1efe51537f31e531

- Remove obsolete nbtree duplicate entries comment.  Remove a comment from the
  Berkeley days claiming that nbtree must disambiguate duplicate keys within
  _bt_moveright().  There is no special care taken around duplicates within
  _bt_moveright(), at least since commit 9e85183bfc3 removed inscrutable
  _bt_moveright() code to handle pages full of duplicates.
  https://git.postgresql.org/pg/commitdiff/61a4480a68ea44d0991d983a985ae2b2cd88cd61

Gregory Stark pushed:

- Fix ADD IF NOT EXISTS used in conjunction with ALTER TABLE ONLY.  The flag for
  IF NOT EXISTS was only being passed down in the normal recursing case. It's
  been this way since originally added in 9.6 in commit 2cd40adb85 so backpatch
  back to 9.6.
  https://git.postgresql.org/pg/commitdiff/1075dfdaf33ad8b2a61c26b5748735005e6192b9

Alexander Korotkov pushed:

- Check for conflicting queries during replay of gistvacuumpage().  013ebc0a7b
  implements so-called GiST microvacuum.  That is gistgettuple() marks index
  tuples as dead when kill_prior_tuple is set.  Later, when new tuple insertion
  claims page space, those dead index tuples are physically deleted from page.
  When this deletion is replayed on standby, it might conflict with read-only
  queries.  But 013ebc0a7b doesn't handle this.  That may lead to disappearance
  of some tuples from read-only snapshots on standby.  This commit implements
  resolving of conflicts between replay of GiST microvacuum and standby queries.
  On the master we implement new WAL record type XLOG_GIST_DELETE, which
  comprises necessary information.  On stable releases we've to be tricky to
  keep WAL compatibility.  Information required for conflict processing is just
  appended to data of XLOG_GIST_PAGE_UPDATE record.  So, PostgreSQL version,
  which doesn't know about conflict processing, will just ignore that.
  Reported-by: Andres Freund Diagnosed-by: Andres Freund Discussion:
  https://postgr.es/m/20181212224524.scafnlyjindmrbe6%40alap3.anarazel.de
  Author: Alexander Korotkov Backpatch-through: 9.6
  https://git.postgresql.org/pg/commitdiff/c952eae52a33069e2e92d34f217b43d0eca3d7de

Peter Eisentraut pushed:

- Fix ancient compiler warnings and typos in !HAVE_SYMLINK code.  This has never
  been correct since this code was introduced.
  https://git.postgresql.org/pg/commitdiff/f4eabaf3e0f84d5eb3ebdeeff0a71cb8db4b1ff6

- Add some const decorations.  These mainly help understanding the function
  signatures better.
  https://git.postgresql.org/pg/commitdiff/323eaf98250e2de9afb2d9f86fa841beaeb575b7

- Add WRITE_*_ARRAY macros.  Add WRITE_ATTRNUMBER_ARRAY, WRITE_OID_ARRAY,
  WRITE_INT_ARRAY, WRITE_BOOL_ARRAY macros to outfuncs.c, mirroring the existing
  READ_*_ARRAY macros in readfuncs.c.  Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
  Discussion:
  https://www.postgresql.org/message-id/flat/8f2ebc67-e75f-9478-f5a5-bbbf090b1f8d%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/66ca44084d7ae40c45802d19f19eb4597bd12f40

== Pending Patches ==

Álvaro Herrera sent in another revision of a patch to Allow newly created
partitions to inherit their parents' tablespaces.

Surafel Temesgen sent in another revision of a patch to add a multi-values
INSERT option to pg_dump.

Alexander Kukushkin sent in another revision of a patch to add
replication_reserved_connections.

Etsuro Fujita sent in another revision of a patch to postgres_fdw to make it do
the UPPERREL_ORDERED and UPPERREL_FINAL steps remotely.

Dmitry Dolgov sent in a patch to add pg_dump support to user-defined access
methods.

Michaël Paquier sent in two more revisions of a patch to ensure that things
created by ALTER INDEX are supported by pg_dump.

Álvaro Herrera sent in another revision of a patch to ensure that storage is
only created when needed.

Pavel Stěhule sent in two more revisions of a patch to add \dP (partitioned
tables) to psql.

Hayato Kuroda sent in two revisions of a patch to add DECLARE STATEMENT to ECPG.

Aleksey Kondratov and Tomáš Vondra traded patches to add logical_work_mem.

Andres Freund sent in a patch to add overflow checks for interval.

Konstantin Knizhnik sent in another revision of a patch to build in connection
pooling.

Tony Reix sent in a patch to enable SysV shm for AIX.

Kyotaro HORIGUCHI sent in a patch to clarify the fact that -c options passed to
psql are treated as though they were lines in a script and make psql's behavior
more uniform in the presence of multiple -c options.

Robbie Harwood sent in another revision of a patch to support GSSAPI encryption.

Filip Rembiałkowski and Pavel Stěhule traded patches to add a --force option to
dropdb.

Masahiko Sawada sent in another revision of a patch to implement block-level
parallel vacuum.

Peter Eisentraut sent in a patch to implement insensitive collations.

Ryo Matsumura sent in another revision of a patch to add bytea to ECPG.

Surafel Temesgen sent in another revision of a patch to add conflict handling to
COPY ... FROM.

Chengchao Yu sent in another revision of a patch to fix a deadlock issue in
single-user mode.

David Rowley sent in another revision of a patch to llow Append to be used in
place of MergeAppend for some cases.

Álvaro Herrera sent in a patch to add the idea of an unsuitable relkind to
errdetail.

Nathan Bossart sent in a patch to add some options to vacuumdb that correspond
to the ones VACUUM already has by itself.

Kyotaro HORIGUCHI sent in another revision of a patch to add a WAL relief vent
for replication slots.

Kyotaro HORIGUCHI sent in another revision of a patch to allow skipping WAL
logging in cases where that would help.

David Rowley sent in a patch to make it possible to use POPCNT and similar
advanced bit-twiddling instructions where available.

Michael Banck sent in another revision of a patch to make it possible to verify
checksums online.

Yuzuko Hosoya sent in two revisions of a patch to improve selectivity estimate
for range queries.

Robert Haas sent in a patch to make it possible to ATTACH/DETACH PARTITION
CONCURRENTLY.

John Naylor sent in three revisions of a patch to reduce the footprint of
ScanKeyword by making it offset-based.

Kyotaro HORIGUCHI sent in a patch to clarify the comments about "all" and
"replication" in pg_hba.conf.sample.

Tsutomu Yamada and Michaël Paquier traded patches to add  tab completion in psql
for ALTER INDEX|TABLE ALTER COLUMN SET STATISTICS.

Michael Banck sen in another revision of a patch to add progress reporting for
pg_verify_checksums.

Jesper Pedersen sent in a patch to make pg_upgrade pass -j down to vacuumdb.

Michaël Paquier sent in a patch to clean up some elog messages and comments for
do_pg_stop_backup and do_pg_start_backup.

Michaël Paquier sent in another revision of a patch to change pgarch_readyXlog()
to return .history files first.

Michael Banck sent in a patch to add offline enabling/disabling of checksums to
pg_verify_checksums.

Tom Lane sent in a patch to support parameterized TID scans.

Jeff Janes sent in a patch to make relcache init write errors not be fatal.

Dilip Kumar sent in another revision of a patch to add an UNDO log manager,
provide access to its data via the buffer manager, and provide an interface for
prepare, insert, or fetch the UNDO records.

Heikki Linnakangas sent in another revision of a patch to speed up up
text_position_next with multibyte encodings using the single-byte
Boyer-Moore-Horspool search.

David Rowley sent in a patch to fix a performance issue in foreign-key-aware
join estimation.


В списке pgsql-announce по дате отправления:

Предыдущее
От: Bo Peng
Дата:
Сообщение: PgpoolAdmin 4.0.1 officially released.
Следующее
От: Gilles Darold
Дата:
Сообщение: pgBadger 10.2 is out