== PostgreSQL Weekly News - September 17, 2018 ==
От | David Fetter |
---|---|
Тема | == PostgreSQL Weekly News - September 17, 2018 == |
Дата | |
Msg-id | 20180918045547.GA18342@fetter.org обсуждение исходный текст |
Список | pgsql-announce |
== PostgreSQL Weekly News - September 17, 2018 == == PostgreSQL Product News == pgBadger v10.1, a PostgreSQL log analyzer and graph tool written in Perl, released. https://github.com/dalibo/pgbadger/releases/ Postgres-XL 10R1Beta1, a fork of PostgreSQL featuring massively parallel processing, released. https://www.postgres-xl.org/ PostGIS 2.5.0rc2 the industry standard geographic information system package for PostgreSQL, released. http://postgis.net/2018/09/16/postgis-2.5.0rc2/ pgFormatter 3.1, a formatter/beautifier for SQL code, released. http://sqlformat.darold.net/ == PostgreSQL Local == PostgresConf South Africa 2018 will take place in Johannesburg on October 9, 2018 https://postgresconf.org/conferences/SouthAfrica2018 PostgreSQL Conference Europe 2018 will be held on October 23-26, 2018 at the Lisbon Marriott Hotel in Lisbon, Portugal. https://2018.pgconf.eu/ 2Q PGConf will be on December 4-5, 2018 in Chicago, IL. http://www.2qpgconf.com/ PGConf.ASIA 2018 will take place on December 10-12, 2018 in Akihabara, Tokyo, Japan. http://www.pgconf.asia/EN/2018/ == 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: - Hide a static inline from FRONTEND code. For some reason pg_waldump is including tuptable.h, and the recent addition of a static inline function to it is causing problems on older buildfarm members that fail to optimize such functions away completely. I wonder if this situation doesn't mean that some header refactoring is called for ... but as a band-aid, wrap the static function in "#ifndef FRONTEND". Discussion: https://postgr.es/m/20180824154237.mabsv6fsz5q37bma@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/14ea36520389dbb1b48524223cf09389154a0f2e - Use -Bsymbolic for shared libraries on HP-UX and Solaris. These platforms are also subject to the mis-linking problem addressed in commit e3d77ea6b. It's not clear whether we could solve it with a solution equivalent to GNU ld's version scripts, but -Bsymbolic appears to fix it, so let's use that. Like the previous commit, back-patch as far as v10. Discussion: https://postgr.es/m/153626613985.23143.4743626885618266803@wrigleys.postgresql.org https://git.postgresql.org/pg/commitdiff/4fa3741d1cfb3898c3ff7b01fa873383108e1fe3 - Remove ruleutils.c's special case for BIT [VARYING] literals. Up to now, get_const_expr() insisted on prefixing BIT and VARBIT literals with 'B'. That's not really necessary, because we always append explicit-cast syntax to identify the constant's type. Moreover, it's subtly wrong for VARBIT, because the parser will interpret B'...' as '...'::"bit"; see make_const() which explicitly assigns type BITOID for a T_BitString literal. So what had been a simple VARBIT literal is reconstructed as ('...'::"bit")::varbit, which is not the same thing, at least not before constant folding. This results in odd differences after dump/restore, as complained of by the patch submitter, and it could result in actual failures in partitioning or inheritance DDL operations (see commit 542320c2b, which repaired similar misbehaviors for some other data types). Fixing it is pretty easy: just remove the special case and let the default code path handle these types. We could have kept the special case for BIT only, but there seems little point in that. Like the previous patch, I judge that back-patching this into stable branches wouldn't be a good idea. However, it seems not quite too late for v11, so let's fix it there. Paul Guo, reviewed by Davy Machado and John Naylor, minor adjustments by me Discussion: https://postgr.es/m/CABQrizdTra=2JEqA6+Ms1D1k1Kqw+aiBBhC9TreuZRX2JzxLAA@mail.gmail.com https://git.postgresql.org/pg/commitdiff/fedc97cdfd834a2137d9c5aa8e7f89e39546fc6b - Add PQresultMemorySize function to report allocated size of a PGresult. This number can be useful for application memory management, and the overhead to track it seems pretty trivial. Lars Kanis, reviewed by Pavel Stehule, some mods by me Discussion: https://postgr.es/m/fa16a288-9685-14f2-97c8-b8ac84365a4f@greiz-reinsdorf.de https://git.postgresql.org/pg/commitdiff/2970afa6cf1057107c998bf3cdd1fbf6dc78cf6c - Minor fixes for psql tab completion. * Include partitioned tables in what's offered after ANALYZE. * Include toast_tuple_target in what's offered after ALTER TABLE ... SET|RESET. * Include HASH in what's offered after PARTITION BY. This is extracted from a larger patch; these bits seem like uncontroversial bug fixes for v11 features, so back-patch them into v11. Justin Pryzby Discussion: https://postgr.es/m/20180529000623.GA21896@telsasoft.com https://git.postgresql.org/pg/commitdiff/7046d30246057b65dd7ad735fd89058684e782cd - Attempt to identify system timezone by reading /etc/localtime symlink. On many modern platforms, /etc/localtime is a symlink to a file within the IANA database. Reading the symlink lets us find out the name of the system timezone directly, without going through the brute-force search embodied in scan_available_timezones(). This shortens the runtime of initdb by some tens of ms, which is helpful for the buildfarm, and it also allows us to reliably select the same zone name the system was actually configured for, rather than possibly choosing one of IANA's many zone aliases. (For example, in a system configured for "Asia/Tokyo", the brute-force search would not choose that name but its alias "Japan", on the grounds of the latter string being shorter. More surprisingly, "Navajo" is preferred to either "America/Denver" or "US/Mountain", as seen in an old complaint from Josh Berkus.) If /etc/localtime doesn't exist, or isn't a symlink, or we can't make sense of its contents, or the contents match a zone we know but that zone doesn't match the observed behavior of localtime(), fall back to the brute-force search. Also, tweak initdb so that it prints the zone name it selected. In passing, replace the last few references to the "Olson" database in code comments with "IANA", as that's been our preferred term since commit b2cbced9e. Patch by me, per a suggestion from Robert Haas; review by Michael Paquier Discussion: https://postgr.es/m/7408.1525812528@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/23bd3cec6eb1ffb80ed2601c13f89d89e658fcc1 - Improve parallel scheduling logic in pg_dump/pg_restore. Previously, the way this worked was that a parallel pg_dump would re-order the TABLE_DATA items in the dump's TOC into decreasing size order, and separately re-order (some of) the INDEX items into decreasing size order. Then pg_dump would dump the items in that order. Later, parallel pg_restore just followed the TOC order. This method had lots of deficiencies: * TOC ordering randomly differed between parallel and non-parallel dumps, and was hard to predict in the former case, causing problems for building stable pg_dump test cases. * Parallel restore only followed a well-chosen order if the dump had been done in parallel; in particular, this never happened for restore from custom-format dumps. * The best order for restore isn't necessarily the same as for dump, and it's not really static either because of locking considerations. * TABLE_DATA and INDEX items aren't the only things that might take a lot of work during restore. Scheduling was particularly stupid for the BLOBS item, which might require lots of work during dump as well as restore, but was left to the end in either case. This patch removes the logic that changed the TOC order, fixing the test instability problem. Instead, we sort the parallelizable items just before processing them during a parallel dump. Independently of that, parallel restore prioritizes the ready-to-execute tasks based on the size of the underlying table. In the case of dependent tasks such as index, constraint, or foreign key creation, the largest relevant table is used as the metric for estimating the task length. (This is pretty crude, but it should be enough to avoid the case we want to avoid, which is ending the run with just a few large tasks such that we can't make use of all N workers.) Patch by me, responding to a complaint from Peter Eisentraut, who also reviewed the patch. Discussion: https://postgr.es/m/5137fe12-d0a2-4971-61b6-eb4e7e8875f8@2ndquadrant.com https://git.postgresql.org/pg/commitdiff/548e50976ce721b5e927d42a105c2f05b51b52a6 - Fix failure with initplans used conditionally during EvalPlanQual rechecks. The EvalPlanQual machinery assumes that any initplans (that is, uncorrelated sub-selects) used during an EPQ recheck would have already been evaluated during the main query; this is implicit in the fact that execPlan pointers are not copied into the EPQ estate's es_param_exec_vals. But it's possible for that assumption to fail, if the initplan is only reached conditionally. For example, a sub-select inside a CASE expression could be reached during a recheck when it had not been previously, if the CASE test depends on a column that was just updated. This bug is old, appearing to date back to my rewrite of EvalPlanQual in commit 9f2ee8f28, but was not detected until Kyle Samson reported a case. To fix, force all not-yet-evaluated initplans used within the EPQ plan subtree to be evaluated at the start of the recheck, before entering the EPQ environment. This could be inefficient, if such an initplan is expensive and goes unused again during the recheck --- but that's piling one layer of improbability atop another. It doesn't seem worth adding more complexity to prevent that, at least not in the back branches. It was convenient to use the new-in-v11 ExecEvalParamExecParams function to implement this, but I didn't like either its name or the specifics of its API, so revise that. Back-patch all the way. Rather than rewrite the patch to avoid depending on bms_next_member() in the oldest branches, I chose to back-patch that function into 9.4 and 9.3. (This isn't the first time back-patches have needed that, and it exhausted my patience.) I also chose to back-patch some test cases added by commits 71404af2a and 342a1ffa2 into 9.4 and 9.3, so that the 9.x versions of eval-plan-qual.spec are all the same. Andrew Gierth diagnosed the problem and contributed the added test cases, though the actual code changes are by me. Discussion: https://postgr.es/m/A033A40A-B234-4324-BE37-272279F7B627@tripadvisor.com https://git.postgresql.org/pg/commitdiff/1f4a920b7309499d2d0c4ceda5e6356e10bc51da - In v11, disable JIT by default (it's still enabled by default in HEAD). Per discussion, JIT isn't quite mature enough to ship enabled-by-default. I failed to resist the temptation to do a bunch of copy-editing on the related documentation. Also, clean up some inconsistencies in which section of config.sgml the JIT GUCs are documented in vs. what guc.c and postgresql.config.sample had. Discussion: https://postgr.es/m/20180914222657.mw25esrzbcnu6qlu@alap3.anarazel.de https://git.postgresql.org/pg/commitdiff/8f32bacc006692e63f137924d5849b3cb9f2d4d3 - Add outfuncs.c support for RawStmt nodes. I noticed while poking at a report from Andrey Lepikhov that the recent addition of RawStmt nodes at the top of raw parse trees makes it impossible to print any raw parse trees whatsoever, because outfuncs.c doesn't know RawStmt and hence fails to descend into it. While we generally lack outfuncs.c support for utility statements, there is reasonably complete support for what you can find in a raw SELECT statement. It was not my intention to make that all dead code ... so let's add support for RawStmt. Back-patch to v10 where RawStmt appeared. https://git.postgresql.org/pg/commitdiff/3844adbf3c2521c0956064c1c27096c96ca92201 - Fix pgbench lexer's "continuation" rule to cope with Windows newlines. Our general practice in frontend code is to accept input with either Unix-style newlines (\n) or DOS-style (\r\n). pgbench was mostly down with that, but its rule for line continuations (backslash-newline) was not. This had been masked on Windows buildfarm machines before commit 0ba06e0bf by use of Windows text mode to read files. We could have fixed it by forcing text mode again, but it's better to fix the parsing code so that Windows-style text files on Unix systems don't cause problems. Back-patch to v10 where pgbench grew line continuations. Discussion: https://postgr.es/m/17194.1537191697@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/db37ab2c60b877b977f531bcd680848ee4511537 - Remove dead code from pop_next_work_item(). The pref_non_data heuristic has been dead code for nearly ten years, and as far as I can tell was dead code even when it was first committed. I'm tired of silencing Coverity complaints about it, so get rid of it. If anyone is ever interested in pursuing the concept, they can get the code out of our git history. https://git.postgresql.org/pg/commitdiff/789ba5029a8aea8256d20780410cfa2872637f15 - Fix parsetree representation of XMLTABLE(XMLNAMESPACES(DEFAULT ...)). The original coding for XMLTABLE thought it could represent a default namespace by a T_String Value node with a null string pointer. That's not okay, though; in particular outfuncs.c/readfuncs.c are not on board with such a representation, meaning you'll get a null pointer crash if you try to store a view or rule containing this construct. To fix, change the parsetree representation so that we have a NULL list element, instead of a bogus Value node. This isn't really a functional limitation since default XML namespaces aren't yet implemented in the executor; you'd just get "DEFAULT namespace is not supported" anyway. But crashes are not nice, so back-patch to v10 where this syntax was added. Ordinarily we'd consider a parsetree representation change to be un-backpatchable; but since existing releases would crash on the way to storing such constructs, there can't be any existing views/rules to be incompatible with. Per report from Andrey Lepikhov. Discussion: https://postgr.es/m/3690074f-abd2-56a9-144a-aa5545d7a291@postgrespro.ru https://git.postgresql.org/pg/commitdiff/07a3af0ff81d8ac6d2e787e13ca10de36313aa51 Andrew Gierth pushed: - Repair double-free in SP-GIST rescan (bug #15378). spgrescan would first reset traversalCxt, and then traverse a potentially non-empty stack containing pointers to traversalValues which had been allocated in those contexts, freeing them a second time. This bug originates in commit ccd6eb49a where traversalValue was introduced. Repair by traversing the stack before the context reset; this isn't ideal, since it means doing retail pfree in a context that's about to be reset, but the freeing of a stack entry is also done in other places in the code during the scan so it's not worth trying to refactor it further. Regression test added. Backpatch to 9.6 where the problem was introduced. Per bug #15378; analysis and patch by me, originally from a report on IRC by user velix; see also PostGIS ticket #4174; review by Alexander Korotkov. Discussion: https://postgr.es/m/153663176628.23136.11901365223750051490@wrigleys.postgresql.org https://git.postgresql.org/pg/commitdiff/500d49794f1f61cb20f485bd5c5052c122e58cf9 - Repair bug in regexp split performance improvements. Commit c8ea87e4b introduced a temporary conversion buffer for substrings extracted during regexp splits. Unfortunately the code that sized it was failing to ignore the effects of ignored degenerate regexp matches, so for regexp_split_* calls it could under-size the buffer in such cases. Fix, and add some regression test cases (though those will only catch the bug if run in a multibyte encoding). Backpatch to 9.3 as the faulty code was. Thanks to the PostGIS project, Regina Obe and Paul Ramsey for the report (via IRC) and assistance in analysis. Patch by me. https://git.postgresql.org/pg/commitdiff/b7f6bcbffcc0b41d783c0c9c61766428159969ff - Order active window clauses for greater reuse of Sort nodes. By sorting the active window list lexicographically by the sort clause list but putting longer clauses before shorter prefixes, we generate more chances to elide Sort nodes when building the path. Author: Daniel Gustafsson (with some editorialization by me) Reviewed-by: Alexander Kuzmenkov, Masahiko Sawada, Tom Lane Discussion: https://postgr.es/m/124A7F69-84CD-435B-BA0E-2695BE21E5C2%40yesql.se https://git.postgresql.org/pg/commitdiff/728202b63cdcd7fb73fdba114903ed235eb02f3a - Fix out-of-tree build for transform modules. Neither plperl nor plpython installed sufficient header files to permit transform modules to be built out-of-tree using PGXS. Fix that by installing all plperl and plpython header files (other than those with special purposes such as generated data tables), and also install plpython's special .mk file for mangling regression tests. (This commit does not fix the windows install, which does not currently install _any_ plperl or plpython headers.) Also fix the existing transform modules for hstore and ltree so that their cross-module #include directives work as anticipated by commit df163230b9 et seq. This allows them to serve as working examples of how to reference other modules when doing separate out-of-tree builds. Discussion: https://postgr.es/m/87o9ej8bgl.fsf%40news-spur.riddles.org.uk https://git.postgresql.org/pg/commitdiff/60f6756f92251d7325d58a048f7e9a81881f8d41 Bruce Momjian pushed: - doc: adjust PG 11 release notes. Fixes for channel binding, SQL procedures, and pg_trgm. Backpatch-through: 11 https://git.postgresql.org/pg/commitdiff/0d45cd96fd0f3387d1bcf7e6f873c73c4f251df8 - doc: clarify pg_basebackup's -C/--create-slot description. The previous text was overly complex. Backpatch-through: 11 https://git.postgresql.org/pg/commitdiff/da1db404358ebc2d4f1abcee712405cd888148de Michaël Paquier pushed: - Parse more strictly integer parameters from connection strings in libpq The following parameters have been parsed in lossy ways when specified in a connection string processed by libpq: - connect_timeout - keepalives - keepalives_count - keepalives_idle - keepalives_interval - port. Overflowing values or the presence of incorrect characters were not properly checked, leading to libpq trying to use such values and fail with unhelpful error messages. This commit hardens the parsing of those parameters so as it is possible to find easily incorrect values. Author: Fabien Coelho Reviewed-by: Peter Eisentraut, Michael Paquier Discussion: https://postgr.es/m/alpine.DEB.2.21.1808171206180.20841@lancre https://git.postgresql.org/pg/commitdiff/e7a2217978d9cbb2149bfcb4ef1e45716cfcbefb - Simplify static function in extension.c. An extra argument for the filename defining the extension script location was present, aimed at being used for error reporting, but has never been used. This was around since extensions have been added in d9572c4. Author: Yugo Nagata Reviewed-by: Tatsuo Ishii Discussion: https://postgr.es/m/20180907180504.1ff19e1675bb44a67e9c7ab1@sraoss.co.jp https://git.postgresql.org/pg/commitdiff/514a731ddcd8449d8a7bfb96f138c72c694a7ef8 - Improve autovacuum logging for aggressive and anti-wraparound runs. A log message was being generated when log_min_duration is reached for autovacuum on a given relation to indicate if it was an aggressive run, and missed the point of mentioning if it is doing an anti-wrapround run. The log message generated is improved so as one, both or no extra details are added depending on the option set. Author: Sergei Kornilov Reviewed-by: Masahiko Sawada, Michael Paquier Discussion: https://postgr.es/m/11587951532155118@sas1-19a94364928d.qloud-c.yandex.net https://git.postgresql.org/pg/commitdiff/28a8fa984c63fd525ab03c469f293e957619654b - Allow concurrent-safe open() and fopen() in frontend code for Windows PostgreSQL uses a custom wrapper for open() and fopen() which is concurrent-safe, allowing multiple processes to open and work on the same file. This has a couple of advantages: - pg_test_fsync does not handle O_DSYNC correctly otherwise, leading to false claims that disks are unsafe. - TAP tests can run into race conditions when a postmaster and pg_ctl. open postmaster.pid, fixing some random failures in the buildfam. pg_upgrade is one frontend tool using workarounds to bypass file locking issues with the log files it generates, however the interactions with pg_ctl are proving to be tedious to get rid of, so this is left for later. Author: Laurenz Albe Reviewed-by: Michael Paquier, Kuntal Ghosh Discussion: https://postgr.es/m/1527846213.2475.31.camel@cybertec.at Discussion: https://postgr.es/m/16922.1520722108@sss.pgh.pa.us https://git.postgresql.org/pg/commitdiff/0ba06e0bfb8cfd24ff17aca92aa72245ddd6c4d7 Peter Eisentraut pushed: - ecpg: Change --version output to common style. When we removed the ecpg-specific versions, we also removed the "(PostgreSQL)" from the --version output, which we show in other programs. Reported-by: Ioseph Kim <pgsql-kr@postgresql.kr> https://git.postgresql.org/pg/commitdiff/ba37349cff781120f61b2778257f594f0d10253c - Simplify index tuple descriptor initialization. We have two code paths for initializing the tuple descriptor for a new index: For a normal index, we copy the tuple descriptor from the table and reset a number of fields that are not applicable to indexes. For an expression index, we make a blank tuple descriptor and fill in the needed fields based on the provided expressions. As pg_attribute has grown over time, the number of fields that we need to reset in the first case is now bigger than the number of fields we actually want to copy, so it's sensible to do it the other way around: Make a blank descriptor and copy just the fields we need. This also allows more code sharing between the two branches, and it avoids having to touch this code for almost every unrelated change to the pg_attribute structure. Reviewed-by: Arthur Zakirov <a.zakirov@postgrespro.ru> https://git.postgresql.org/pg/commitdiff/e5f1bb92cfa724ba50f5b42a9cd3f8ab544b960a - Message style improvements. Fix one untranslatable string concatenation in pg_rewind. Fix one message in pg_verify_checksums to use a style use elsewhere and avoid plural issues. Fix one gratuitous abbreviation in psql. https://git.postgresql.org/pg/commitdiff/f48fa2bc8b6252ae8fccc69729a3bddb6863b8f1 - Add list of acknowledgments to release notes. This contains all individuals mentioned in the commit messages during PostgreSQL 11 development. current through 7a2f70f0e5e83871d091ee479abea4b8f850dd29 https://git.postgresql.org/pg/commitdiff/f9907c6ac2e9817baffe37c9087bedc8df3e9625 Amit Kapila pushed: - Attach FPI to the first record after full_page_writes is turned on. XLogInsert fails to attach a required FPI to the first record after full_page_writes is turned on by the last checkpoint. This bug got introduced in 9.5 due to code rearrangement in commits 2c03216d83 and 2076db2aea. Fix it by ensuring that XLogInsertRecord performs a recomputation when the given record is generated with FPW as off but found that the flag has been turned on while actually inserting the record. Reported-by: Kyotaro Horiguchi Author: Kyotaro Horiguchi Reviewed-by: Amit Kapila Backpatch-through: 9.5 where this problem was introduced Discussion: https://postgr.es/m/20180420.151043.74298611.horiguchi.kyotaro@lab.ntt.co.jp https://git.postgresql.org/pg/commitdiff/bc153c941d2ec4e605b1e79be9478abc3d166a18 - Don't allow LIMIT/OFFSET clause within sub-selects to be pushed to workers. Allowing sub-select containing LIMIT/OFFSET in workers can lead to inconsistent results at the top-level as there is no guarantee that the row order will be fully deterministic. The fix is to prohibit pushing LIMIT/OFFSET within sub-selects to workers. Reported-by: Andrew Fletcher Bug: 15324 Author: Amit Kapila Reviewed-by: Dilip Kumar Backpatch-through: 9.6 Discussion: https://postgr.es/m/153417684333.10284.11356259990921828616@wrigleys.postgresql.org https://git.postgresql.org/pg/commitdiff/75f9c4ca5a8047d7a9cfbc7d51a610933d04dc7f Andres Freund pushed: - Detect LLVM 7 without specifying binaries explicitly. Before this commit LLVM 7 was supported, but only if one explicitly provided LLVM_CONFIG= and CLANG= paths. As LLVM 7 is the first version that includes our upstreamed debugging and profiling features, and as debian is planning to default to 7 due to wider architecture support, it seems good to support auto-detecting that version. Author: Christoph Berg Discussion: https://postgr.es/m/20180912124517.GD24584@msg.df7cb.de Backpatch: 11, where LLVM was introduced https://git.postgresql.org/pg/commitdiff/240d40db88ec0e6f98ac547759bac8e331f3ba89 Álvaro Herrera pushed: - Fix ALTER/TYPE on columns referenced by FKs in partitioned tables. When ALTER TABLE ... SET DATA TYPE affects a column referenced by constraints and indexes, it drop those constraints and indexes and recreates them afterwards, so that the definitions match the new data type. The original code did this by dropping one object at a time (commit 077db40fa1f3 of May 2004), which worked fine because the dependencies between the objects were pretty straightforward, and ordering the objects in a specific way was enough to make this work. However, when there are foreign key constraints in partitioned tables, the dependencies are no longer so straightforward, and we were getting errors when attempted: ERROR: cache lookup failed for constraint 16398 This can be fixed by doing all the drops in one pass instead, using performMultipleDeletions (introduced by df18c51f2955 of Aug 2006). With this change we can also remove the code to carefully order the list of objects to be deleted. Reported-by: Rajkumar Raghuwanshi <rajkumar.raghuwanshi@enterprisedb.com> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/CAKcux6nWS_m+s=1Udk_U9B+QY7pA-Ac58qR5BdUfOyrwnWHDew@mail.gmail.com https://git.postgresql.org/pg/commitdiff/20bef2c3110af295501919bac463b87ac58876de - Move PartitionDispatchData struct definition to execPartition.c. There's no reason to expose the struct definition, so don't. Author: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp> Discussion: https://postgr.es/m/d3fa24c1-bc65-7133-81df-6474387ccc4f@lab.ntt.co.jp https://git.postgresql.org/pg/commitdiff/6b78231d918bba1b99d15e0bf19753bd8f826222 == Pending Patches == Haribabu Kommi sent in another revision of a patch to limit memory used by the COPY FROM because of slotification, remove the Bulk Insert API, and add CREATE AS ... USING grammar support. Amit Khandekar sent in two revisions of a patch to accumulate the per-worker jit counters into the leader process. Amit Khandekar sent in another revision of a patch to slotify partition tuple conversion. Konstantin Knizhnik sent in another revision of a patch to skip redundant partition quals. Jesper Pedersen and Dmitry Dolgov traded patches to implement index skip scan. Marina Polyakova sent in another revision of a patch to fix pgbench serialization and deadlock errors. Michael Banck sent in a patch to fix a bug in the pg_restore help output. Peter Geoghegan sent in another revision of a patch to make all nbtree index tuples have unique keys. Tom Lane sent in another revision of a patch to speed up snprintf. Nikolay Shaplov sent in another revision of a patch to add an enum relation option type. Amit Langote sent in two revisions of a patch to fix a bug that manifested as could not open file "base/13164/t3_16388" with partition table with ON COMMIT. Tom Lane sent in another revision of a patch to create a strerror wrapper. Amit Langote sent in three more revisions of a patch to improve executor relation handling. Fabien COELHO sent in two more revisions of a patch to a pseudo-random permutation function to pgbench. Dmitry Dolgov sent in another revision of a patch to improve the partition matching algorithm for partition-wise joins. Artur Zakirov sent in another revision of a patch to update the snowball stemmers. Kyotaro HORIGUCHI sent in another revision of a patch to add a WAL relief vent for replication slots, add two columns, "status" and "remain", to pg_replication_slot, a TAP test for the feature, and document same. Kyotaro HORIGUCHI sent in another revision of a patch to remove catcache entries that haven't been used for a certain time. Andres Freund sent in a patch to error out for clang on x86-32 without SSE2 support, no -fexcess-precision. Sergei Kornilov sent in another revision of a patch to indicate anti-wraparound autovacuum in log_autovacuum_min_duration. Kyotaro HORIGUCHI sent in a patch to ensure that only one lock for the same object can be created by XLOG_STANDBY_LOCK logs. Amit Langote sent in another revision of a patch to speed up planning for partitions. Etsuro Fujita sent in another revision of a patch to fix foreign modify behavior. Antonin Houska sent in another revision of a patch to implement data encryption at rest. Andres Freund sent in a patch to fix a logical decoding bug when mapped relation with TOAST contents is rewritten repeatedly. Michaël Paquier sent in a patch to extend the lookup routines for FDW and foreign server with NULL handling, refactor the routines for subscription and publication lookups, and eliminate user-visible cache lookup errors for objaddr SQL functions. Nikolay Shaplov sent in another revision of a patch to replace StdRdOptions with individual binary reloptions representation for each relation kind. Pavel Stěhule sent in three more revisions of a patch to implement schema variables. Michaël Paquier sent in another revision of a patch to fix UpdateFullPageWrites concurrency. Masahiko Sawada sent in a patch to fix a problem where, when set track_commit_timestamp is on, the database system aborts at startup. Fabien COELHO sent in another revision of a patch to pgbench to add an option to build using ppoll() for larger connection counts. Jonathan Katz sent in three revisions of a patch to update the major improvements section of the release nodes for 11. Noah Misch sent in a patch to ensure that srandom is called early enough in the startup process. Alexander Korotkov sent in another revision of a patch to add kNN support for SP-GiST indexes. Matheus de Oliveira sent in another revision of a patch to add support for ON UPDATE/DELETE actions to ALTER CONSTRAINT. David Rowley sent in another revision of a patch to speed up INSERT and UPDATE on partitioned tables. lexander Kukushkin sent in another revision of a patch to add a replication_reserved_connections GUC. Tomáš Vondra and Thomas Munro traded patches to prevent an infinite loop in parallel hash joins / DSA / get_best_segment. Thomas Munro and Chris Travers traded patches to fix a condition that could cause an infinite signal loop in parallel scan. Amit Khandekar sent in another revision of a patch to add instrumentation for JITed workers.
В списке pgsql-announce по дате отправления: