== PostgreSQL Weekly News - February 24, 2019 ==

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

Pgpool-II 4.0.3, 3.7.8, 3.6.15, 3.5.19 and 3.4.22 released.
http://pgpool.net/mediawiki/index.php/Downloads

PGConf.Brazil 2019 is on August 1-3 2019 in São Paulo.  The CfP is open at
https://goo.gl/forms/owW8g5DKwnZtI4Mq1 until February 28, 2019.
http://pgconf.com.br

== PostgreSQL Product News ==

psycopg2 2.8 beta 1, a Python connector for PostgreSQL, released.
https://www.postgresql.org/message-id/CA%2Bmi_8aNS0e29cWbd42Erdu_OW5Jx%2BQ5O_Hre%2BWdF3DcbfRU0A%40mail.gmail.com

pgmetrics 1.6, a command-line tool for PostgreSQL metrics, released.
https://pgmetrics.io/

== PostgreSQL Jobs for February ==

http://archives.postgresql.org/pgsql-jobs/2019-02/

== PostgreSQL Local ==

PostgreSQL@SCaLE is a two day, two track event which takes place on
March 7-8, 2019, at Pasadena Convention Center, as part of SCaLE 17X.
https://www.socallinuxexpo.org/scale/17x/postgresscale

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

Nordic PGDay 2019 will be held in Copenhagen, Denmark, at the
Copenhagen Marriott Hotel, on March 19, 2019.
https://2019.nordicpgday.org/

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.
https://2019.pgday.it/en/

PGCon 2019 will take place in Ottawa on May 28-31, 2019.
https://www.pgcon.org/2019

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

PostgresLondon 2019 will be July 2-3, 2019 with an optional training day on
July 1. The CfP is open at https://goo.gl/forms/hsvZKAmq0c96XQ4l2 through March
15, 2019.
http://postgreslondon.org

== 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 ==

Michaël Paquier pushed:

- Avoid some unnecessary block reads in WAL reader. When reading a new page
  internally and depending on the way the WAL reader facility gets used by
  plugins, the current implementation of the WAL reader may finish by reading a
  block multiple times while it is not actually necessary as the requested data
  length may be equal to what has been already read.  This can happen for any
  size, but is more likely to happen at the end of a page.  This can cause
  performance penalties in plugins which rely on the block reads to be purely
  sequential, zlib not liking backward reads for example.  The new behavior also
  shaves some cycles when doing recovery.  Author: Arthur Zakirov Reviewed-by:
  Andrey Lepikhov, Michael Paquier, Grigory Smolkin Discussion:
  https://postgr.es/m/2ddf4a32-517e-d6f4-d992-4a63b6035bfd@postgrespro.ru
  https://git.postgresql.org/pg/commitdiff/0dd6ff0ac8482f753405c5bdb091d2a8adc58e75

- Fix typo in transam.h for OIDs assigned by genbki.pl. The actual range of
  reserved OIDs in this case is [11000,11999] and not [11000,12000].  Author:
  John Naylor Discussion:
  https://postgr.es/m/CAJVSVGV5StmK-inxbmrf0nLbBGeaAKnjnqxXmk+4ufeav8JMSA@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/f0cce9fcb5fd9f4158dbf5dfe11f263ad3b7b1dd

- Fix some issues with TAP tests of pg_basebackup and pg_verify_checksums.
  ee9e145 has fixed the tests of pg_basebackup for checksums a first time, still
  one seek() call missed the shot.  Also, the data written in files to emulate
  corruptions was not actually writing zeros as the quoting style was incorrect.
  Backpatch the portion for pg_basebackup to v11 where these tests have been
  introduced.  The tests of pg_verify_checksums are new as of v12.  Author:
  Michael Banck Discussion:
  https://postgr.es/m/1550153276.796.35.camel@credativ.de Backpatch-through: 11
  https://git.postgresql.org/pg/commitdiff/a916bdc496a9d3fde48ca7c72478e7e4aecc5597

- Mark correctly initial slot snapshots with MVCC type when built. When building
  an initial slot snapshot, snapshots are marked with historic MVCC snapshots as
  type with the marker field being set in SnapBuildBuildSnapshot() but not
  overriden in SnapBuildInitialSnapshot(). Existing callers of
  SnapBuildBuildSnapshot() do not care about the type of snapshot used, but
  extensions calling it actually may, as reported.  While on it, mark correctly
  the snapshot type when importing one.  This is cosmetic as the field is
  enforced to 0.  Author: Antonin Houska Reviewed-by: Álvaro Herrera, Michael
  Paquier Discussion: https://postgr.es/m/23215.1527665193@localhost
  Backpatch-through: 9.4
  https://git.postgresql.org/pg/commitdiff/56fadbedbd2f697400b89e7b767cfa4ec67932d6

- Remove duplicate variable declaration in fe-connect.c. The same variables are
  declared twice when checking if a connection is writable, which is useless.
  Author: Haribabu Kommi Discussion:
  https://postgr.es/m/CAJrrPGf=rcALB54w_Tg1_hx3y+cgSWaERY-uYSQzGc3Zt5XN4g@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/554ca6954ecbfc54e7159a609b5ffc7921670185

- Add TAP tests for 2PC post-commit callbacks of multixacts at recovery. The
  current set of TAP tests for two-phase transactions include some coverage for
  post-commit callbacks of multixact, but it lacked tests for testing the
  recovery of those callbacks.  This commit adds some tests with soft and hard
  restarts in this case, using transactions which include DDLs.  Author: Michael
  Paquier Reviewed-by: Oleksii Kliukin Discussion:
  https://postgr.es/m/20190221055431.GO15532@paquier.xyz
  https://git.postgresql.org/pg/commitdiff/b1086767087efe437131b9059fc6f2d3b7c7ecc2

- Fix incorrect function reference in comment of twophase.c. The header block of
  TwoPhaseGetDummyBackendId mentioned incorrectly TwoPhaseGetDummyProc.
  Reported-by: Oleksii Kliukin Discussion:
  https://postgr.es/m/D8336E40-BBE1-4954-98BB-7830D3F5CB36@hintbits.com
  https://git.postgresql.org/pg/commitdiff/4c23216002ac816f67fb87301290fa992115215e

Etsuro Fujita pushed:

- Save PathTargets for distinct/ordered relations in root->upper_targets[]. For
  the convenience of extensions, we previously only saved PathTargets for
  grouped, window, and final relations in root->upper_targets[] in
  grouping_planner().  To improve the convenience, save PathTargets for distinct
  and ordered relations as well.  Author: Antonin Houska, with an additional
  change by me Discussion: https://postgr.es/m/10994.1549559088@localhost
  https://git.postgresql.org/pg/commitdiff/3fdc374b5d24b08119a91555ca2fae427af0b085

Michael Meskes pushed:

- Add bytea datatype to ECPG. So far ECPG programs had to treat binary data for
  bytea column as 'char' type. But this meant converting from/to escaped format
  with PQunescapeBytea/ PQescapeBytea() and therefore forcing users to add
  unnecessary code and cost for the conversion in runtime. By adding a dedicated
  datatype for bytea most of this special handling is no longer needed.  Author:
  Matsumura-san ("Matsumura, Ryo" <matsumura.ryo@jp.fujitsu.com>)  Discussion:
  https://postgr.es/m/flat/03040DFF97E6E54E88D3BFEE5F5480F737A141F9@G01JPEXMBYT04
  https://git.postgresql.org/pg/commitdiff/050710b36964dee7e1b2bf6b5ef00041fd5d2787

- Sync ECPG's CREATE TABLE AS statement with backend's. Author: Higuchi-san
  ("Higuchi, Daisuke" <higuchi.daisuke@jp.fujitsu.com>)
  https://git.postgresql.org/pg/commitdiff/e81f0e3113e6d9791285e6629d5301759839f3c9

- Properly end string to make sure ecpglib does not read beyond its boundaries.
  https://git.postgresql.org/pg/commitdiff/8e6ab9f8012ff54d2e3cf2804db811e5f8eada1b

Andrew Dunstan pushed:

- Provide an extra-float-digits setting for pg_dump / pg_dumpall. Changes made
  by commit 02ddd49 mean that dumps made against pre version 12 instances are no
  longer comparable with those made against version 12 or later instances. This
  makes cross-version upgrade testing fail in the buildfarm. Experimentation has
  shown that the error is cured if the dumps are made when extra_float_digits is
  set to 0. Hence this patch allows for it to be explicitly set rather than
  relying on pg_dump's builtin default (3 in almost all cases). This feature
  might have other uses, but should not normally be used.  Discussion:
  https://postgr.es/m/c76f7051-8fd3-ec10-7579-1f8842305b85@2ndQuadrant.com
  https://git.postgresql.org/pg/commitdiff/af25bc03e17eb0aba195e42506b1a15f47178e44

Tom Lane pushed:

- De-clutter display of script runtimes in pg_regress. Add more whitespace, per
  suggestion from Peter Eisentraut.  Discussion:
  https://postgr.es/m/e265e2ae-e92e-5ab9-dc68-60b6cb047b3d@2ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/93b5cc039e2328b7ac256de57a25c810d50a7f29

- Fix omissions in ecpg/test/sql/.gitignore. Oversights in commits 050710b36 and
  e81f0e311.
  https://git.postgresql.org/pg/commitdiff/315dcffb949bba8d2a002664bb6c4718e28b803b

- Fix incorrect strictness test for ArrayCoerceExpr expressions. The recursion
  in contain_nonstrict_functions_walker() was done wrong, causing the strictness
  check to be bypassed for a parse node that is the immediate input of an
  ArrayCoerceExpr node.  This could allow, for example, incorrect decisions
  about whether a strict SQL function can be inlined.  I didn't add a regression
  test, because (a) the bug is so narrow and (b) I couldn't think of a test case
  that wasn't dependent on a large number of other behaviors, to the point where
  it would likely soon rot to the point of not testing what it was intended to.
  I broke this in commit c12d570fa, so back-patch to v11.  Discussion:
  https://postgr.es/m/27571.1550617881@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/1571bc0f0613a82befe1a6eda39df161777231ad

- Improve planner's understanding of strictness of type coercions. PG type
  coercions are generally strict, ie a NULL input must produce a NULL output
  (or, in domain cases, possibly an error).  The planner's understanding of that
  was a bit incomplete though, so improve it:  * Teach
  contain_nonstrict_functions() that CoerceViaIO can always be considered
  strict.  Previously it believed that only if the underlying I/O functions were
  marked strict, which is often but not always true.  * Teach
  clause_is_strict_for() that CoerceViaIO, ArrayCoerceExpr, ConvertRowtypeExpr,
  CoerceToDomain can all be considered strict. Previously it knew nothing about
  any of them.  The main user-visible impact of this is that IS NOT NULL
  predicates can be proven to hold from expressions involving casts in more
  cases than before, allowing partial indexes with such predicates to be used
  without extra pushups.  This reduces the surprise factor for users, who may
  well be used to ordinary (function-call-based) casts being known to be strict.
  Per a gripe from Samuel Williams.  This doesn't rise to the level of a bug,
  IMO, so no back-patch.  Discussion:
  https://postgr.es/m/27571.1550617881@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/e04a3905e4f2e93bbd8fca08c3baeed7b15a48cf

- Speed up match_eclasses_to_foreign_key_col() when there are many ECs. Check
  ec_relids before bothering to iterate through the EC members. On a perhaps
  extreme, but still real-world, query in which
  match_eclasses_to_foreign_key_col() accounts for the bulk of the planner's
  runtime, this saves nearly 40% of the runtime.  It's a bit of a stopgap fix,
  but it's simple enough to be back-patched to 9.6 where this code came in; so
  let's do that.  David Rowley  Discussion:
  https://postgr.es/m/6970.1545327857@sss.pgh.pa.us
  https://git.postgresql.org/pg/commitdiff/fa86238f1eac5b1bfb3887d2deb138f53da82c9b

- Move estimate_hashagg_tablesize to selfuncs.c, and widen result to double. It
  seems to make more sense for this to be in selfuncs.c, since it's largely a
  statistical-estimation thing, and it's related to other functions like
  estimate_hash_bucket_stats that are there.  While at it, change the result
  type from Size to double.  Perhaps at one point it was impossible for the
  result to overflow an integer, but I've got no confidence in that proposition
  anymore.  Nothing's actually done with the result except to compare it to a
  work_mem-based limit, so as long as we don't get an overflow on the way to
  that comparison, things should be fine even with very large dNumGroups.  Code
  movement proposed by Antonin Houska, type change by me  Discussion:
  https://postgr.es/m/25767.1549359615@localhost
  https://git.postgresql.org/pg/commitdiff/0c7d53793079a1af3f070d93e3eb86a52720f6e7

- Fix mark-and-restore-skipping test case to not be a self-join. There isn't any
  good reason for this test to be a self-join rather than a join between
  separate tables, except that it saved a couple of SQL commands for setup.  A
  proposed patch to optimize away self-joins breaks the test, so adjust it to
  avoid that happening.  Discussion:
  https://postgr.es/m/64486b0b-0404-e39e-322d-0801154901f3@postgrespro.ru
  https://git.postgresql.org/pg/commitdiff/24d08f3c0a1f04ea8bac68eb3aa3b069680e43f5

- Fix plan created for inherited UPDATE/DELETE with all tables excluded. In the
  case where inheritance_planner() finds that every table has been excluded by
  constraints, it thought it could get away with making a plan consisting of
  just a dummy Result node.  While certainly there's no updating or deleting to
  be done, this had two user-visible problems: the plan did not report the
  correct set of output columns when a RETURNING clause was present, and if
  there were any statement-level triggers that should be fired, it didn't fire
  them.  Hence, rather than only generating the dummy Result, we need to stick a
  valid ModifyTable node on top, which requires a tad more effort here.  It's
  been broken this way for as long as inheritance_planner() has known about
  deleting excluded subplans at all (cf commit 635d42e9c), so back-patch to all
  supported branches.  Amit Langote and Tom Lane, per a report from Petr
  Fedorov.  Discussion:
  https://postgr.es/m/5da6f0f0-1364-1876-6978-907678f89a3e@phystech.edu
  https://git.postgresql.org/pg/commitdiff/ab5fcf2b04f9cc4ecccb1832faabadb047087d23

- Fix ecpg bugs caused by missing semicolons in the backend grammar. The Bison
  documentation clearly states that a semicolon is required after every grammar
  rule, and our scripts that generate ecpg's grammar from the backend's
  implicitly assumed this is true.  But it turns out that only ancient versions
  of Bison actually enforce that. There have been a couple of rules without
  trailing semicolons in gram.y for some time, and as a consequence, ecpg's
  grammar was faulty and produced wrong output for the affected statements.  To
  fix, add the missing semis, and add some cross-checks to ecpg's scripts so
  that they'll bleat if we mess this up again.  The cases that were broken were:
  * "SET variable = DEFAULT" (but not "SET variable TO DEFAULT"),   as well as
  allied syntaxes such as ALTER SYSTEM SET ... DEFAULT.   These produced
  syntactically invalid output that the server   would reject. * Multiple type
  names in DROP TYPE/DOMAIN commands.  Only the   first type name would be
  listed in the emitted command.  Per report from Daisuke Higuchi.  Back-patch
  to all supported versions.  Discussion:
  https://postgr.es/m/1803D792815FC24D871C00D17AE95905DB51CE@g01jpexmbkw24
  https://git.postgresql.org/pg/commitdiff/9e138a401d19acc2129ebfd37e7609589210ff67

Andres Freund pushed:

- Remove line duplicated during conflict resolution. I included the duplicated
  ExecTypeFromTL in 578b2297 "Remove WITH OIDS support".  Reported-By: Peter
  Eisentraut Discussion:
  https://postgr.es/m/ba819888-63c6-7f98-6acb-3731142d9414@2ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/22bc403029c096639a74d7c91069bf9e8a35460f

Peter Eisentraut pushed:

- Use varargs macro for CACHEDEBUG. Reviewed-by: Andres Freund
  <andres@anarazel.de>
  https://git.postgresql.org/pg/commitdiff/90cfa49003831dbea109a9f0a7924dc95c1bf1c5

- Fix dbtoepub output file name. In previous releases, the input file of
  dbtoepub was postgres.xml, and dbtoepub knows to derive the output file name
  postgres.epub from that automatically.  But now the intput file is
  postgres.sgml (since postgres.sgml is itself an XML file and we no longer need
  the intermediate postgres.xml file), but dbtoepub doesn't know how to deal
  with the .sgml suffix, so the automatically derived output file name becomes
  postgres.sgml.epub.  Fix by adding an explicit -o option.
  https://git.postgresql.org/pg/commitdiff/7aa00d2464b4e14d553e8a64adacfe9741939e14

- pg_regress: Don't use absolute paths for the diff. Don't expand inputfile and
  outputfile to absolute paths globally, just where needed.  In particular, pass
  them as is to the file name arguments of the diff command, so that we don't
  see the full absolute path in the diff header, which makes the diff
  unnecessarily verbose and harder to read.  Discussion:
  https://www.postgresql.org/message-id/0cc82900-c457-1cee-3ab2-7b0f5d215061@2ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/1995552deb5479a50ec9044f0179f906ff7772e0

- doc: Add security information about pg_stat_activity. Add a basic note that
  some columns in pg_stat_activity and related views are not visible to all
  users.  Discussion:
  https://www.postgresql.org/message-id/3018acd9-e5d8-1e85-5ed7-47276cd77569%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/213eae9b8a8a6b2ce3b0e5f5dc86d4b267096398

- Hide other user's pg_stat_ssl rows. Change pg_stat_ssl so that an unprivileged
  user can only see their own rows; other rows will be all null.  This makes the
  behavior consistent with pg_stat_activity, where information about where the
  connection came from is also restricted.  Reviewed-by: Michael Paquier
  <michael@paquier.xyz> Discussion:
  https://www.postgresql.org/message-id/flat/63117976-d02c-c8e2-3aef-caa31a5ab8d3%402ndquadrant.com
  https://git.postgresql.org/pg/commitdiff/f9692a769b16f53be80f819fa5ee91e28dc7683a

- Add const qualifier. New code introduced in
  050710b36964dee7e1b2bf6b5ef00041fd5d2787.  The lack of const is not currently
  a compiler warning, but it's nice to have for consistency with surrounding
  code.
  https://git.postgresql.org/pg/commitdiff/1373ba55c9b9c9a5e4705daa03643255b4de1519

- Revert "pg_regress: Don't use absolute paths for the diff". This reverts
  commit 1995552deb5479a50ec9044f0179f906ff7772e0.  Several developers didn't
  like the new behavior.
  https://git.postgresql.org/pg/commitdiff/f27522553992132d34c67caeea193d57934111cf

Dean Rasheed pushed:

- Fix DEFAULT-handling in multi-row VALUES lists for updatable views. INSERT ...
  VALUES for a single VALUES row is implemented differently from a multi-row
  VALUES list, which causes inconsistent behaviour in the way that DEFAULT items
  are handled. In particular, when inserting into an auto-updatable view on top
  of a table with a column default, a DEFAULT item in a single VALUES row gets
  correctly replaced with the table column's default, but for a multi-row VALUES
  list it is replaced with NULL.  Fix this by allowing rewriteValuesRTE() to
  leave DEFAULT items in the VALUES list untouched if the target relation is an
  auto-updatable view and has no column default, deferring DEFAULT-expansion
  until the query against the base relation is rewritten. For all other types of
  target relation, including tables and trigger- and rule-updatable views, we
  must continue to replace DEFAULT items with NULL in the absence of a column
  default.  This is somewhat complicated by the fact that if an auto-updatable
  view has DO ALSO rules attached, the VALUES lists for the product queries need
  to be handled differently from the original query, since the product queries
  need to act like rule-updatable views whereas the original query has
  auto-updatable view semantics.  Back-patch to all supported versions.
  Reported by Roger Curley (bug #15623). Patch by Amit Langote and me.
  Discussion: https://postgr.es/m/15623-5d67a46788ec8b7f@postgresql.org
  https://git.postgresql.org/pg/commitdiff/41531e42d34f4aca117d343b5e40f3f757dec5fe

Amit Kapila pushed:

- Doc: Update the documentation for FSM behavior for small tables. In commit
  b0eaa4c51b, we have avoided the creation of FSM for small tables. So the
  functions that use FSM to compute the free space can return zero for such
  tables.  This was previously also possible for the cases where the vacuum has
  not been triggered to update FSM.  This commit updates the comments in code
  and documentation to reflect this behavior.  Author: John Naylor Reviewed-by:
  Amit Kapila Discussion:
  https://postgr.es/m/CACPNZCtba-3m1q3A8gxA_vxg=T7gQf7gMbpR4Ciy5LntY-j+0Q@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/29d108cdecbe918452e70041d802cc515b2d56b8

Álvaro Herrera pushed:

- Make object address handling more robust. pg_identify_object_as_address
  crashes when passed certain tuples from inconsistent system catalogs.  Make it
  more defensive.  Author: Álvaro Herrera Reviewed-by: Michaël Paquier
  Discussion: https://postgr.es/m/20190218202743.GA12392@alvherre.pgsql
  https://git.postgresql.org/pg/commitdiff/5721b9b3ceaa57219244954a6084d107b73082b6

- Report correct name in autovacuum "work items" activity. We were reporting the
  database name instead of the relation name to pg_stat_activity.  Repair.
  Reported-by: Justin Pryzby Discussion:
  https://postgr.es/m/20190220185552.GR28750@telsasoft.com
  https://git.postgresql.org/pg/commitdiff/98098faaff77a632c759c967f3b956524e492ee4

Andrew Gierth pushed:

- Use an unsigned char for bool if we don't use the native bool. On (rare)
  platforms where sizeof(bool) > 1, we need to use our own bool, but imported
  c99 code (such as Ryu) may want to use bool values as array subscripts, which
  elicits warnings if bool is defined as char. Using unsigned char instead
  should work just as well for our purposes, and avoid such warnings.  Per
  buildfarm members prariedog and locust.
  https://git.postgresql.org/pg/commitdiff/d26a810ebf9e419556a60bdc0a4190883c38f4c4

Robert Haas pushed:

- Delay lock acquisition for partitions until we route a tuple to them. Instead
  of locking all partitions to which we might route a tuple at executor startup,
  just lock them as we use them.  In some cases such a partition might get
  locked at executor startup anyway because it appears in the query's range
  table for some other reason, but in other cases this is a bit savings.  This
  changes the order in which partitions are locked in some cases, which might
  conceivably create deadlock hazards that don't exist today, but per
  discussion, it seems like such cases should be rare enough that we can neglect
  them in favor of improving performance.  David Rowley, reviewed and tested by
  Tomas Vondra, Sho Kato, John Naylor, Tom Lane, and me.  Discussion:
  http://postgr.es/m/CAKJS1f-=FnMqmQP6qitkD+xEddxw22ySLP-0xFk3JAqUX2yfMw@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/9eefba181f7782d27d85d7e94e6028371e7ab2d7

- Move code for managing PartitionDescs into a new file, partdesc.c. This is
  similar in spirit to the existing partbounds.c file in the same directory,
  except that there's a lot less code in the new file created by this commit.
  Pending work in this area proposes to add a bunch more code related to
  PartitionDescs, though, and this will give us a good place to put it.
  Discussion:
  http://postgr.es/m/CA+TgmoZUwPf_uanjF==gTGBMJrn8uCq52XYvAEorNkLrUdoawg@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/1bb5e78218107db543086e71fc162d36a955b08e

Thomas Munro pushed:

- Tolerate ENOSYS failure from sync_file_range(). One unintended consequence of
  commit 9ccdd7f6 was that Windows WSL users started getting a panic whenever we
  tried to initiate data flushing with sync_file_range(), because WSL does not
  implement that system call.  Previously, they got a stream of periodic
  warnings, which was also undesirable but at least ignorable.  Prevent the
  panic by handling ENOSYS specially and skipping the panic promotion with
  data_sync_elevel().  Also suppress future attempts after the first such
  failure so that the pre-existing problem of noisy warnings is improved.
  Back-patch to 9.6 (older branches were not affected in this way by 9ccdd7f6).
  Author: Thomas Munro and James Sewell Tested-by: James Sewell Reported-by:
  Bruce Klein Discussion:
  https://postgr.es/m/CA+mCpegfOUph2U4ZADtQT16dfbkjjYNJL1bSTWErsazaFjQW9A@mail.gmail.com
  https://git.postgresql.org/pg/commitdiff/483520eca426fb1b428e8416d1d014ac5ad80ef4

- Tolerate EINVAL when calling fsync() on a directory. Previously, we tolerated
  EBADF as a way for the operating system to indicate that it doesn't support
  fsync() on a directory.  Tolerate EINVAL too, for older versions of Linux
  CIFS.  Bug #15636.  Back-patch all the way.  Reported-by: John Klann
  Discussion: https://postgr.es/m/15636-d380890dafd78fc6@postgresql.org
  https://git.postgresql.org/pg/commitdiff/f16735d80d2fbe1c86f4ac044ee66fe2073b8877

== Pending Patches ==

Thomas Munro sent in a patch to fix inconsistent out-of-memory error reporting
in dsa.c.

Donald Dong sent in another revision of a patch to improve cost computations for
EXPLAIN.

Noah Misch sent in a patch to restrict vac_update_datfrozenxid() to one backend per
database, and restrict vac_truncate_clog() and asyncQueueAdvanceTail() to one
backend per cluster.

Peter Eisentraut sent in a patch to add the eponymous environment GUC and a new
--clear-environment option for pg_ctl.

Michael Banck sent in two more revisions of a patch to make it possible to track
the progress of pg_verify_checksums.

Euler Taveira de Oliveira sent in two revisions of a patch to pg_restore to
stdout in --file.

Aleksey Kondratov sent in two more revisions of a patch to pg_rewind which adds
options to use restore_command from command line or cluster config.

Kyotaro HORIGUCHI sent in three more revisions of a patch to make the stats
collector use shared memory instead of files.

Iwata Aya sent in two more revisions of a patch to add a libpq debug log.

Chengchao Yu sent in another revision of a patch to fix a deadlock issue in
single user mode when an I/O failure occurs.

Dmitry Dolgov sent in another revision of a patch to implement generic type
subscripting.

Masahiko Sawada sent in another revision of a patch to create a copy function
for replication slots.

Surafel Temesgen sent in two more revisions of a patch to let COPY continue
after a failure and log the failing rows.

Peter Eisentraut sent in two more revisions of a patch to add collations with
nondeterministic comparison, of which case-insensitive ones are an example.

Amit Langote sent in three more revisions of a patch to speed up planning with
partitions.

Michaël Paquier sent in three more revisions of a patch to fix an infelicity
in 2PC's locking.

Takayuki Tsunakawa sent in another revision of a patch to speed up transaction
completion in the case where many relations are accessed in a transaction.

Nikita Glukhov sent in three more revisions of a patch to add kNN to B-Tree
indexes.

Dmitry Dolgov sent in another revision of a patch to implement index skip scan
a.k.a. loose index scan atop IndexOnlyScan.

Artur Zakirov sent in another revision of a patch to make it possible to use
shared Ispell dictionaries.

Peter Eisentraut sent in a patch to hide other users' pg_stat_ssl rows from
unprivileged users.

David Rowley sent in another revision of a patch to ensure that partitions are
locked on demand rather than in advance during INSERT and UPDATE.

Sergei Kornilov sent in a patch to clarify the in-line documentation of
bgwriter_lru_maxpages in the sample postgresql.conf.

Etsuro Fujita sent in another revision of a patch to fix some problems with plan
estimates in the PostgreSQL FDW.

Kyotaro HORIGUCHI and Takeshi Ideriha traded patches to protect syscache from
bloating with negative cache entries.

Robert Haas sent in a patch to add a catalog_cache_memory_target GUC.

Haribabu Kommi sent in another revision of a patch to add a pluggable storage
API.

Amit Kapila and John Naylor traded patches to avoid creation of the free space
map for small tables.

Tom Lane sent in another revision of a patch to add equivalence class indexing.

Michaël Paquier sent in another revision of a patch to add a flag to
format_type_extended to enforce NULL-ness, refactor the format procedure and
operator APIs to be more modular, and eliminate the user-visible cache lookup
errors for objaddr SQL functions.

Christoph Berg sent in a patch to align timestamps in pg_regress output.

Pierre Ducroquet sent in a patch to document some of the row-level security
limitations.

Pavan Deolasee sent in another revision of a patch to fix an infelicity between
COPY FREEZE and setting PD_ALL_VISIBLE/visibility map bits.

Justin Pryzby sent in another revision of a patch to show the size of a
partitioned table in psql.

Paul Ramsey sent in another revision of a patch to implement compressed TOAST
slicing.

David Rowley sent in another revision of a patch to transform suitable NOT IN
constructs into anti-joins, greatly speeding up execution.

Thomas Munro sent in a PoC patch to add parameterized vectors and
sorting/searching support, inject a few extra tricks into simplevector.h,
convert the type of various relationOids members from List to oid_vector, add a
few more simplevector improvements, and convert p_joinexprs from a List to a
nodep_vector.

Mitani sent in two revisions of a patch to enable transactions on partitioned
tables via the PostgreSQL FDW.

Shawn Debnath sent in another revision of a patch to refactor the fsync
mechanism to support future SMGR implementations, along with a couple of
temporary patches to instrument.

Robbie Harwood sent in a patch to log the encryption strength in libpq GSSAPI
connections.

Gilles Darold sent in another revision of a patch to psql to add schema total
size to the output of \dn+.

Pavel Stěhule and Chapman Flack traded patches to add variadic support to LEAST
and GREATEST.

Nikita Glukhov sent in a patch to make some JSONB functions more efficient.

Tom Lane sent in another revision of a patch to remove unneeded self-joins.

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

Haribabu Kommi sent in another revision of a patch to libpq to add a
TargetSessionAttrsType enum, make transaction_read_only a GUC_REPORT variable,
and add a prefer-read target_session_attrs type.

Yuzuko Hosoya sent in a patch to fix a bug in the pruning of default partitions.

Peter Eisentraut sent in another revision of a patch to create a unified logging
system for command-line programs.

Dean Rasheed sent in a patch to clarify and fix OVERRIDING {USER | SYSTEM}
VALUES in DML.

Magnus Hagander sent in two revisions of a patch to fix an issue that manifested
as checksum errors in pg_stat_database.

Magnus Hagander sent in another revision of a patch to prevent XID wraparound by
making it easier to reap temp tables.

Álvaro Herrera sent in another revision of a patch to make it possible for
foreign keys to point at partitioned tables.

Robert Haas sent in another revision of the lastRemovedXid-to-primary patch.

Amit Khandekar sent in another revision of a patch to add a
prefetch_xid_horizon_scan.

Álvaro Herrera sent in another revision of a patch to make it possible to
monitor the progress of CREATE INDEX CONCURRENTLY.

Peter Eisentraut and Corey Huinker traded patches to clean up ri_triggers.c.

Andrew Gierth sent in a patch to make JIT on FreeBSD ARMv7 work.

Andrew Dunstan sent in a patch to fix some FOP warnings about id attributes in
title tags in the documentation.

Tomáš Vondra sent in another revision of a patch to add multi-range capability
to BRIN indexes.

Magnus Hagander sent in a patch to prevent dropping temp schemas.

Tomáš Vondra sent in a patch to enable including configuration parameters in
EXPLAIN output via a new SETTINGS option.

Tom Lane sent in a patch to convert Lists into arrays.

David Rowley sent in another revision of a patch to forgo generating
single-subpath Append and MergeAppend paths.

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

David Rowley sent in another revision of a patch to make it possible to make
pg_dump output multiple-values INSERTs.

Alexander Korotkov sent in another revision of a patch to implement JSONPATH.

Andrey Borodin sent in another revision of a patch to implement GiST
verification function for amcheck.

Jeff Janes sent in another revision of a patch to fix the Bloom index cost
model.


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

Предыдущее
От: Bo Peng
Дата:
Сообщение: Pgpool-II 4.0.3, 3.7.8, 3.6.15, 3.5.19 and 3.4.22 are nowofficially released.
Следующее
От: Stephen Frost
Дата:
Сообщение: PostgreSQL Participates in Google Summer of Code 2019!