== PostgreSQL Weekly News - May 10 2015 == - Mailing list pgsql-announce
From | David Fetter |
---|---|
Subject | == PostgreSQL Weekly News - May 10 2015 == |
Date | |
Msg-id | 20150510233439.GB4821@fetter.org Whole thread Raw |
List | pgsql-announce |
== PostgreSQL Weekly News - May 10 2015 == == PostgreSQL Product News == barman 1.4.1, a backup and recovery manager for PostgreSQL, released. http://www.pgbarman.org/barman-1-4-1-released/ == PostgreSQL Jobs for May == http://archives.postgresql.org/pgsql-jobs/2015-05/threads.php == PostgreSQL Local == The second Swiss Postgres Conference will be held June 25-26, 2015 at HSR Rapperswil. http://www.postgres-conference.ch/ There is a Postgres track in a database technology conference(DTCC) in April 18, 2015 in Beijing, China. http://dtcc.it168.com/list_jiabin.html pgDay Paris will be held in Paris France on April 21, 2015. http://pgday.paris/ PGDay in Belfort, France will be held June 2, 2015. http://select-2-6-2015-as-pgday.org PGCon 2015 is June 16-20 in Ottawa, Canada. http://www.pgcon.org/2015/ PGDay UK, Conference will be taking place on 7th July 2015 – it is aimed at the UK PostgreSQL Community. The CfP is open until 13 April 2015. http://www.postgresqlusergroup.org.uk PGDay Campinas 2015 will take place in Campinas on August 7. The CfP is open through May 31. http://pgdaycampinas.com.br/english/ The Call For Papers for PostgresOpen 2015, being held in Dallas, Texas from September 16th to 18th, is now open. http://2015.postgresopen.org/callforpapers/ The CfP for PostgreSQL Session #7, September 24th, 2015 in Paris, Francisc, is open until June 15, 2015. call-for-paper <AT> postgresql-sessions <DOT> org. http://www.postgresql-sessions.org/7/about PGConf Silicon Valley 2015 is November 17-18 at the South San Francisco Convention Center. The CfP is open through June 15. http://www.pgconfsv.com == 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 Pacific time. Please send English language ones to david@fetter.org, German language to pwn@pgug.de, Italian language to pwn@itpug.org. Spanish language to pwn@arpug.com.ar. == Applied Patches == Tom Lane pushed: - Second try at fixing warnings caused by commit 9b43d73b3f9bef27. Commit ef3f9e642d2b2bba suppressed one cause of warnings here, but recent clang on OS X is still unhappy because we're passing a "long" to abs(). The fact that tm_gmtoff is declared as long is no doubt a hangover from days when int might be only 16 bits; but Postgres has never been able to run on such machines, so we can just cast it to int with no worries. For consistency, also cast to int in the other uses of tm_gmtoff in this stanza. Note: this code is still broken on machines that don't follow C99 integer-division-truncates-towards-zero rules. Given the lack of complaints about it, I don't feel a large desire to complicate things enough to cope with the pre-C99 rules. http://git.postgresql.org/pg/commitdiff/c90b85e4d9e4ae3bc26459cc54697e1adaa4315f - Improve procost estimates for some text search functions. The text search functions that involve parsing raw text into lexemes are remarkably CPU-intensive, so estimating them at the same cost as most other built-in functions seems like a mistake; moreover, doing so turns out to discourage the optimizer from using functional indexes on these functions. After some debate, we've agreed to raise procost from 1 to 100 for to_tsvector(), plainto_tsvector(), to_tsquery(), ts_headline(), ts_match_tt(), and ts_match_tq(), which are all the text search functions that parse raw text. Also increase procost for the 2-argument form of ts_rewrite() (tsquery_rewrite_query); while this function doesn't do text parsing, it does execute a user-supplied SQL query, so its previous procost of 1 is clearly a drastic underestimate. It seems reasonable to assign it the same cost we assign to PL functions by default, so 100 is the number here too. I did not bother bumping catversion for this change, since it does not break catalog compatibility with the server executable nor result in any regression test changes. Per complaint from Andrew Gierth and subsequent discussion. http://git.postgresql.org/pg/commitdiff/2503982be4ca48f48d2bb6e1d46160b23e4bb268 - Fix incorrect declaration of citext's regexp_matches() functions. These functions should return SETOF TEXT[], like the core functions they are wrappers for; but they were incorrectly declared as returning just TEXT[]. This mistake had two results: first, if there was no match you got a scalar null result, whereas what you should get is an empty set (zero rows). Second, the 'g' flag was effectively ignored, since you would get only one result array even if there were multiple matches, as reported by Jeff Certain. While ignoring 'g' is a clear bug, the behavior for no matches might well have been thought to be the intended behavior by people who hadn't compared it carefully to the core regexp_matches() functions. So we should tread carefully about introducing this change in the back branches. Still, it clearly is a bug and so providing some fix is desirable. After discussion, the conclusion was to introduce the change in a 1.1 version of the citext extension (as we would need to do anyway); 1.0 still contains the incorrect behavior. 1.1 is the default and only available version in HEAD, but it is optional in the back branches, where 1.0 remains the default version. People wishing to adopt the fix in back branches will need to explicitly do ALTER EXTENSION citext UPDATE TO '1.1'. (I also provided a downgrade script in the back branches, so people could go back to 1.0 if necessary.) This should be called out as an incompatible change in the 9.5 release notes, although we'll also document it in the next set of back-branch release notes. The notes should mention that any views or rules that use citext's regexp_matches() functions will need to be dropped before upgrading to 1.1, and then recreated again afterwards. Back-patch to 9.1. The bug goes all the way back to citext's introduction in 8.4, but pre-9.1 there is no extension mechanism with which to manage the change. Given the lack of previous complaints it seems unnecessary to change this behavior in 9.0, anyway. http://git.postgresql.org/pg/commitdiff/b22527f29dba6395a9e950fc655d34914c960f89 - citext's regexp_matches() functions weren't documented, either. http://git.postgresql.org/pg/commitdiff/929ca96584bef1cc7d09a8e57d26d8c3f25a92a4 - Add missing "static" marker. Per buildfarm member pademelon. http://git.postgresql.org/pg/commitdiff/c594c750789fd98a19dcdf974b87ba9833995cf5 - Code review for foreign/custom join pushdown patch. Commit e7cb7ee14555cc9c5773e2c102efd6371f6f2005 included some design decisions that seem pretty questionable to me, and there was quite a lot of stuff not to like about the documentation and comments. Clean up as follows: * Consider foreign joins only between foreign tables on the same server, rather than between any two foreign tables with the same underlying FDW handler function. In most if not all cases, the FDW would simply have had to apply the same-server restriction itself (far more expensively, both for lack of caching and because it would be repeated for each combination of input sub-joins), or else risk nasty bugs. Anyone who's really intent on doing something outside this restriction can always use the set_join_pathlist_hook. * Rename fdw_ps_tlist/custom_ps_tlist to fdw_scan_tlist/custom_scan_tlist to better reflect what they're for, and allow these custom scan tlists to be used even for base relations. * Change make_foreignscan() API to include passing the fdw_scan_tlist value, since the FDW is required to set that. Backwards compatibility doesn't seem like an adequate reason to expect FDWs to set it in some ad-hoc extra step, and anyway existing FDWs can just pass NIL. * Change the API of path-generating subroutines of add_paths_to_joinrel, and in particular that of GetForeignJoinPaths and set_join_pathlist_hook, so that various less-used parameters are passed in a struct rather than as separate parameter-list entries. The objective here is to reduce the probability that future additions to those parameter lists will result in source-level API breaks for users of these hooks. It's possible that this is even a small win for the core code, since most CPU architectures can't pass more than half a dozen parameters efficiently anyway. I kept root, joinrel, outerrel, innerrel, and jointype as separate parameters to reduce code churn in joinpath.c --- in particular, putting jointype into the struct would have been problematic because of the subroutines' habit of changing their local copies of that variable. * Avoid ad-hocery in ExecAssignScanProjectionInfo. It was probably all right for it to know about IndexOnlyScan, but if the list is to grow we should refactor the knowledge out to the callers. * Restore nodeForeignscan.c's previous use of the relcache to avoid extra GetFdwRoutine lookups for base-relation scans. * Lots of cleanup of documentation and missed comments. Re-order some code additions into more logical places. http://git.postgresql.org/pg/commitdiff/1a8a4e5cde2b7755e11bde2ea7897bd650622d3e Andrew Dunstan pushed: - Fix two small bugs in json's populate_record_worker. The first bug is not releasing a tupdesc when doing an early return out of the function. The second bug is a logic error in choosing when to do an early return if given an empty jsonb object. Bug reports from Pavel Stehule and Tom Lane respectively. Backpatch to 9.4 where these were introduced. http://git.postgresql.org/pg/commitdiff/3c000fd9a68dae9ebd9d1507ab3995cc178de1e5 - Add new OID alias type regrole. The new type has the scope of whole the database cluster so it doesn't behave the same as the existing OID alias types which have database scope, concerning object dependency. To avoid confusion constants of the new type are prohibited from appearing where dependencies are made involving it. Also, add a note to the docs about possible MVCC violation and optimization issues, which are general over the all reg* types. Kyotaro Horiguchi http://git.postgresql.org/pg/commitdiff/0c90f6769de6a60f842c916d49b404d03bcc503a - Add new OID alias type regnamespace. Catalog version bumped. Kyotaro HORIGUCHI http://git.postgresql.org/pg/commitdiff/cb9fa802b32b222b43e28866c20ebb7125779ec3 Heikki Linnakangas pushed: - Fix the same-rel optimization when creating WAL records. prev_regbuf was never set, and therefore the same-rel flag was never set on WAL records. Report and fix by Zhanq Zq http://git.postgresql.org/pg/commitdiff/ec3d976bce7e322c29f1007d19b63b7a3a1a6ee4 - At promotion, archive last segment from old timeline with .partial suffix. Previously, we would archive the possible-incomplete WAL segment with its normal filename, but that causes trouble if the server owning that timeline is still running, and tries to archive the same segment later. It's not nice for the standby to trip up the master's archival like that. And it's pretty confusing, anyway, to have an incomplete segment in the archive that's indistinguishable from a normal, complete segment. To avoid such confusion, add a .partial suffix to the file. Or to be more precise, make a copy of the old segment under the .partial suffix, and archive that instead of the original file. pg_receivexlog also uses the .partial suffix for the same purpose, to tell apart incompletely streamed files from complete ones. There is no automatic mechanism to use the .partial files at recovery, so they will go unused, unless the administrator manually copies to them to the pg_xlog directory (and removes the .partial suffix). Recovery won't normally need the WAL - when recovering to the new timeline, it will find the same WAL on the first segment on the new timeline instead - but it nevertheless feels better to archive the file with the .partial suffix, for debugging purposes if nothing else. http://git.postgresql.org/pg/commitdiff/de7688442f5aaa03da60416a6aa3474738718803 - Add macros to check if a filename is a WAL segment or other such file. We had many instances of the strlen + strspn combination to check for that. This makes the code a bit easier to read. http://git.postgresql.org/pg/commitdiff/179cdd098196338880bdbb39c39a788abdad4dd8 Robert Haas pushed: - Use outerPlanState macro instead of referring to leffttree. This makes the executor code more consistent. It also removes an apparently superfluous NULL test in nodeGroup.c. Qingqing Zhou, reviewed by Tom Lane, and further revised by me. http://git.postgresql.org/pg/commitdiff/40f42d2a34329b0b71a1287d6fd2554298dbb713 - Recursively fsync() the data directory after a crash. Otherwise, if there's another crash, some writes from after the first crash might make it to disk while writes from before the crash fail to make it to disk. This could lead to data corruption. Back-patch to all supported versions. Abhijit Menon-Sen, reviewed by Andres Freund and slightly revised by me. http://git.postgresql.org/pg/commitdiff/2ce439f3379aed857517c8ce207485655000fc8e - Fix some problems with patch to fsync the data directory. pg_win32_is_junction() was a typo for pgwin32_is_junction(). open() was used not only in a two-argument form, which breaks on Windows, but also where BasicOpenFile() should have been used. Per reports from Andrew Dunstan and David Rowley. http://git.postgresql.org/pg/commitdiff/456ff0863851d70dce679ca3f631392589e31a33 - Avoid using a C++ keyword as a structure member name. Per request from Peter Eisentraut. http://git.postgresql.org/pg/commitdiff/1998261034ec7a948bb9b25b7cb88d014d371da1 - Fix incorrect math in DetermineSafeOldestOffset. The old formula didn't have enough parentheses, so it would do the wrong thing, and it used / rather than % to find a remainder. The effect of these oversights is that the stop point chosen by the logic introduced in commit b69bf30b9bfacafc733a9ba77c9587cf54d06c0c might be rather meaningless. Thomas Munro, reviewed by Kevin Grittner, with a whitespace tweak by me. http://git.postgresql.org/pg/commitdiff/7be47c56af3d3013955c91c2877c08f2a0e3e6a2 - Teach autovacuum about multixact member wraparound. The logic introduced in commit b69bf30b9bfacafc733a9ba77c9587cf54d06c0c and repaired in commits 669c7d20e6374850593cb430d332e11a3992bbcf and 7be47c56af3d3013955c91c2877c08f2a0e3e6a2 helps to ensure that we don't overwrite old multixact member information while it is still needed, but a user who creates many large multixacts can still exhaust the member space (and thus start getting errors) while autovacuum stands idly by. To fix this, progressively ramp down the effective value (but not the actual contents) of autovacuum_multixact_freeze_max_age as member space utilization increases. This makes autovacuum more aggressive and also reduces the threshold for a manual VACUUM to perform a full-table scan. This patch leaves unsolved the problem of ensuring that emergency autovacuums are triggered even when autovacuum=off. We'll need to fix that via a separate patch. Thomas Munro and Robert Haas http://git.postgresql.org/pg/commitdiff/53bb309d2d5a9432d2602c93ed18e58bd2924e15 Peter Eisentraut pushed: - Fix typos. Author: Erik Rijkers <er@xs4all.nl> http://git.postgresql.org/pg/commitdiff/ad8d6d064cbcc165e3033a6ed56818f711b0ffae - doc: Update installation instructions for new shared libperl/libpython handling http://git.postgresql.org/pg/commitdiff/53f09657676782d5f6ccf563907fde48a6bea13c - hstore_plpython: Support tests on Python 2.3. Python 2.3 does not have the sorted() function, so do it the long way. http://git.postgresql.org/pg/commitdiff/c0574cd5aa96b988bb1f0287914dcc8b52fb01bd - Fix whitespace http://git.postgresql.org/pg/commitdiff/16c73e773bc5f2eee6a71c5ec311b8691bf9e832 Álvaro Herrera pushed: - Add geometry/range functions to support BRIN inclusion. This commit adds the following functions: box(point) -> box, bound_box(box, box) -> box, inet_same_family(inet, inet) -> bool, inet_merge(inet, inet) -> cidr, range_merge(anyrange, anyrange) -> anyrange. The first of these is also used to implement a new assignment cast from point to box. These functions are the first part of a base to implement an "inclusion" operator class for BRIN, for multidimensional data types. Author: Emre Hasegeli. Reviewed by: Andreas Karlsson http://git.postgresql.org/pg/commitdiff/3b6db1f445e14bd189ebc99ce1e5535a1c624613 - Improve BRIN infra, minmax opclass and regression test. The minmax opclass was using the wrong support functions when cross-datatypes queries were run. Instead of trying to fix the pg_amproc definitions (which apparently is not possible), use the already correct pg_amop entries instead. This requires jumping through more hoops (read: extra syscache lookups) to obtain the underlying functions to execute, but it is necessary for correctness. Author: Emre Hasegeli, tweaked by Álvaro Review: Andreas Karlsson Also change BrinOpcInfo to record each stored type's typecache entry instead of just the OID. Turns out that the full type cache is necessary in brin_deform_tuple: the original code used the indexed type's byval and typlen properties to extract the stored tuple, which is correct in Minmax; but in other implementations that want to store something different, that's wrong. The realization that this is a bug comes from Emre also, but I did not use his patch. I also adopted Emre's regression test code (with smallish changes), which is more complete. http://git.postgresql.org/pg/commitdiff/db5f98ab4fa44bc563ec62d7b1aada4fc276d9b2 Magnus Hagander pushed: - Fix indentation that could mask a future bug. Michael Paquier, spotted using Coverity http://git.postgresql.org/pg/commitdiff/d678bde655892392878fdfa8a8d4e9390227ab64 - Fix minor resource leak in pg_dump. Michael Paquier, spotted using Coverity http://git.postgresql.org/pg/commitdiff/aa7cf3eef4aa994cca086c091782c322f7c416b2 - Properly send SCM status updates when shutting down service on Windows. The Service Control Manager should be notified regularly during a shutdown that takes a long time. Previously we would increaes the counter, but forgot to actually send the notification to the system. The loop counter was also incorrectly initalized in the event that the startup of the system took long enough for it to increase, which could cause the shutdown process not to wait as long as expected. Krystian Bigaj, reviewed by Michael Paquier http://git.postgresql.org/pg/commitdiff/1a241d22ae9f170ac32937dd053676564e58fbc3 Bruce Momjian pushed: - Makefile: Add comment that doc uninstall clears man directories. Report by Mario Valdez http://git.postgresql.org/pg/commitdiff/82ec7c95b701d18530eb4eed923a305a0d82bdaf - doc: adjust ordering of pg_stat_statement paragraphs. Clarify installation instructions. Patch by Ian Barwick http://git.postgresql.org/pg/commitdiff/da31c5ed79d93bb02d6ff9cd81497e5151de7b63 Andres Freund pushed: - Represent columns requiring insert and update privileges indentently. Previously, relation range table entries used a single Bitmapset field representing which columns required either UPDATE or INSERT privileges, despite the fact that INSERT and UPDATE privileges are separately cataloged, and may be independently held. As statements so far required either insert or update privileges but never both, that was sufficient. The required permission could be inferred from the top level statement run. The upcoming INSERT ... ON CONFLICT UPDATE feature needs to independently check for both privileges in one statement though, so that is not sufficient anymore. Bumps catversion as stored rules change. Author: Peter Geoghegan. Reviewed-By: Andres Freund. http://git.postgresql.org/pg/commitdiff/2c8f4836db058d0715bc30a30655d646287ba509 - Remove dependency on ordering in logical decoding upsert test. Buildfarm member magpie sorted the output differently than intended by Peter. "Resolve" the problem by simply not aggregating, it's not that many lines. http://git.postgresql.org/pg/commitdiff/581f4f9657fc3ab08199d02c0a4ea89c658882a6 - Add support for INSERT ... ON CONFLICT DO NOTHING/UPDATE. The newly added ON CONFLICT clause allows to specify an alternative to raising a unique or exclusion constraint violation error when inserting. ON CONFLICT refers to constraints that can either be specified using a inference clause (by specifying the columns of a unique constraint) or by naming a unique or exclusion constraint. DO NOTHING avoids the constraint violation, without touching the pre-existing row. DO UPDATE SET ... [WHERE ...] updates the pre-existing tuple, and has access to both the tuple proposed for insertion and the existing tuple; the optional WHERE clause can be used to prevent an update from being executed. The UPDATE SET and WHERE clauses have access to the tuple proposed for insertion using the "magic" EXCLUDED alias, and to the pre-existing tuple using the table name or its alias. This feature is often referred to as upsert. This is implemented using a new infrastructure called "speculative insertion". It is an optimistic variant of regular insertion that first does a pre-check for existing tuples and then attempts an insert. If a violating tuple was inserted concurrently, the speculatively inserted tuple is deleted and a new attempt is made. If the pre-check finds a matching tuple the alternative DO NOTHING or DO UPDATE action is taken. If the insertion succeeds without detecting a conflict, the tuple is deemed inserted. To handle the possible ambiguity between the excluded alias and a table named excluded, and for convenience with long relation names, INSERT INTO now can alias its target table. Bumps catversion as stored rules change. Author: Peter Geoghegan, with significant contributions from Heikki Linnakangas and Andres Freund. Testing infrastructure by Jeff Janes. Reviewed-By: Heikki Linnakangas, Andres Freund, Robert Haas, Simon Riggs, Dean Rasheed, Stephen Frost and many others. http://git.postgresql.org/pg/commitdiff/168d5805e4c08bed7b95d351bf097cff7c07dd65 - Minor ON CONFLICT related comments and doc fixes. Geoff Winkless, Stephen Frost, Peter Geoghegan and me. http://git.postgresql.org/pg/commitdiff/e8898e9169c851c2b8c98f981c1c4755a5758f8e - Fix two problems in infer_arbiter_indexes(). The first is a pretty simple bug where a relcache entry is used after the relation is closed. In this particular situation it does not appear to have bad consequences unless compiled with RELCACHE_FORCE_RELEASE. The second is that infer_arbiter_indexes() skipped indexes that aren't yet valid according to indcheckxmin. That's not required here, because uniqueness checks don't care about visibility according to an older snapshot. While thats not really a bug, it makes things undesirably non-deterministic. There is some hope that this explains a test failure on buildfarm member jaguarundi. Discussion: 9096.1431102730@sss.pgh.pa.us http://git.postgresql.org/pg/commitdiff/bab64ef9e8bc56fa5db9bd41cefb54c3d8051dbe Stephen Frost pushed: - Remove reference to src/tools/backend/index.html. src/tools/backend was removed back in 63f1ccd, but backend/storage/lmgr/README didn't get the memo. Author: Amit Langote http://git.postgresql.org/pg/commitdiff/195fbd40123b85ba8a44ca273b17d699e30ec6a8 - Add pg_file_settings view and function. The function and view added here provide a way to look at all settings in postgresql.conf, any #include'd files, and postgresql.auto.conf (which is what backs the ALTER SYSTEM command). The information returned includes the configuration file name, line number in that file, sequence number indicating when the parameter is loaded (useful to see if it is later masked by another definition of the same parameter), parameter name, and what it is set to at that point. This information is updated on reload of the server. This is unfiltered, privileged, information and therefore access is restricted to superusers through the GRANT system. Author: Sawada Masahiko, various improvements by me. Reviewers: David Steele http://git.postgresql.org/pg/commitdiff/a97e0c3354ace5d74c6873cd5e98444757590be8 - Bump catversion for pg_file_settings. Pointed out by Andres (thanks!) Apologies for not including it in the initial patch. http://git.postgresql.org/pg/commitdiff/4b342fb591ebb556cab18fc999c8710e9733e5bb - Modify pg_stat_get_activity to build a tuplestore. This updates pg_stat_get_activity() to build a tuplestore for its results instead of using the old-style multiple-call method. This simplifies the function, though that wasn't the primary motivation for the change, which is that we may turn it into a helper function which can filter the results (or not) much more easily. http://git.postgresql.org/pg/commitdiff/f91feba8776eb66008cdb73b3a8c0c7c08cc54d9 - Change default for include_realm to 1. The default behavior for GSS and SSPI authentication methods has long been to strip the realm off of the principal, however, this is not a secure approach in multi-realm environments and the use-case for the parameter at all has been superseded by the regex-based mapping support available in pg_ident.conf. Change the default for include_realm to be '1', meaning that we do NOT remove the realm from the principal by default. Any installations which depend on the existing behavior will need to update their configurations (ideally by leaving include_realm set to 1 and adding a mapping in pg_ident.conf, but alternatively by explicitly setting include_realm=0 prior to upgrading). Note that the mapping capability exists in all currently supported versions of PostgreSQL and so this change can be done today. Barring that, existing users can update their configurations today to explicitly set include_realm=0 to ensure that the prior behavior is maintained when they upgrade. This needs to be noted in the release notes. Per discussion with Magnus and Peter. http://git.postgresql.org/pg/commitdiff/9a0884176fdfa51551d6a3b26fa0e1b216c3e4c2 - Improve ParseConfigFp comment wrt head/tail. The head_p and tail_p pointers passed to ParseConfigFp() are actually input/output parameters, not strictly output paramaters. This updates the function comment to reflect that. Per discussion with Tom. http://git.postgresql.org/pg/commitdiff/0cf56f14dd15532fec930b502cb6457023b01ef8 - Correct reindexdb documentation. --schema takes a schema, not a table. Author: Sawada Masahiko http://git.postgresql.org/pg/commitdiff/f0a4b20bb9f91bdc0d60ff8732ee0195b0dfdd73 == Rejected Patches (for now) == No one was disappointed this week :-) == Pending Patches == Michael Paquier sent in a patch to fix a potential pointer dereference in plperl.c caused by transforms patch. Petr Korobeinikov sent in a patch to add \ev and \sv to edit and show the creation scripts for views, respectively, to psql. Álvaro Herrera sent in two more revisions of a patch to add deparsing utilities. Arjen Nienhuis sent in a patch to have GB18030 handle more than 2-byte Unicode code points. Fabien COELHO sent in two more revisions of a patch to extend pgbench expressions with functions. Emre Hasegeli and Álvaro Herrera traded patches to add a BRIN range operator class. Tom Lane sent in another revision of a patch to manipulate complex types as non-contiguous structures in-memory. Tomas Vondra sent in another revision of a patch to add multivariate statistics. Fabien COELHO sent in a patch to pgbench to allow '=' in \set. SAWADA Masahiko and Fabrízio de Royes Mello traded patches to add REINDEX ... VERBOSE. Stephen Frost sent in two more revisions of a patch to add default roles for sets of administrative functions. Fabien COELHO sent in another revision of a patch to remove nclients/nthreads constraint from pgbench. Stas Kelvich sent in another revision of a patch to add kNN support for the cube extension. Michael Paquier sent in a patch to redefine subxcnt as uint32 for consistency with xcnt. Michael Paquier sent in a patch to make more precise the rounding behavior of numeric and double precision in docs. Kaigai Kouhei sent in three more revisions of a patch to add a custom/foreign join API. Kaigai Kouhei sent in a patch to fix regtest policy for sepgsql. Tom Lane sent in a patch to fix a bug in HOT.
pgsql-announce by date: