== PostgreSQL Weekly News - April 05 2015 ==
От | David Fetter |
---|---|
Тема | == PostgreSQL Weekly News - April 05 2015 == |
Дата | |
Msg-id | 20150405232851.GA7404@fetter.org обсуждение исходный текст |
Список | pgsql-announce |
== PostgreSQL Weekly News - April 05 2015 == == PostgreSQL Product News == PostgreSQL Data Sync 15.3, a Windows GUI for PostgreSQL database contents comparison and synchronization, released. http://www.sqlmaestro.com/products/postgresql/datasync/ pgBadger 6.3, a parallel PostgreSQL log analyzer written in Perl, released: https://sourceforge.net/projects/pgbadger/ Development: https://github.com/dalibo/pgbadger/ The Call for Papers for PGDay in Belfort, France ends April 13, 2015. The conference will be held June 2, 2015. http://select-2-6-2015-as-pgday.org "PostgreSQL Troubleshooting," a book by Hans-Jürgen Schönig, released. http://www.cybertec.at/media/buecher/ == PostgreSQL Jobs for April == http://archives.postgresql.org/pgsql-jobs/2015-04/threads.php == PostgreSQL Local == The second Swiss Postgres Conference will be held June 25-26, 2015 at HSR Rapperswil. http://www.postgres-conference.ch/ The constituent assembly of the Swiss PostgreSQL Users Group (SwissPUG) will be Friday, April 10, 2015 http://www.swisspug.org India PostgreSQL UserGroup will hold a PGday in Bengaluru, Karnataka, India on April 11, 2015. RSVP at http://www.meetup.com/India-PUG/events/220553997/ 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/ 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 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/ == 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: - Fix multiple bugs and infelicities in pg_rewind. Bugs all spotted by Coverity, including wrong realloc() size request and memory leaks. Cosmetic improvements by me. The usage of the global variable "filemap" here is still pretty awful, but at least I got rid of the gratuitous aliasing in several routines (which was helping to annoy Coverity, as well as being a bug risk). http://git.postgresql.org/pg/commitdiff/c67f366fa9f748257861ee233b47b80eb5ffa857 - Clean up all the cruft after a pg_rewind test run. regress_log temp directory was properly .gitignore'd, which may explain why it got left out of the "make clean" action. http://git.postgresql.org/pg/commitdiff/1c41e2a998a0de16d9d33949a7b98a5be3d2477c - Fix rare core dump in BackendIdGetTransactionIds(). BackendIdGetTransactionIds() neglected the possibility that the PROC pointer in a ProcState array entry is null. In current usage, this could only crash if the other backend had exited since pgstat_read_current_status saw it as active, which is a pretty narrow window. But it's reachable in the field, per bug #12918 from Vladimir Borodin. Back-patch to 9.4 where the faulty code was introduced. http://git.postgresql.org/pg/commitdiff/701dcc983eb4d08dd36bb3a0ddba255819797760 - Be more careful about printing constants in ruleutils.c. The previous coding in get_const_expr() tried to avoid quoting integer, float, and numeric literals if at all possible. While that looks nice, it means that dumped expressions might re-parse to something that's semantically equivalent but not the exact same parsetree; for example a FLOAT8 constant would re-parse as a NUMERIC constant with a cast to FLOAT8. Though the result would be the same after constant-folding, this is problematic in certain contexts. In particular, Jeff Davis pointed out that this could cause unexpected failures in ALTER INHERIT operations because of child tables having not-exactly-equivalent CHECK expressions. Therefore, favor correctness over legibility and dump such constants in quotes except in the limited cases where they'll be interpreted as the same type even without any casting. This results in assorted small changes in the regression test outputs, and will affect display of user-defined views and rules similarly. The odds of that causing problems in the field seem non-negligible; given the lack of previous complaints, it seems best not to change this in the back branches. http://git.postgresql.org/pg/commitdiff/542320c2bd0b3796a8a9a4617cdb23fbad473390 - Fix bogus concurrent use of _hash_getnewbuf() in bucket split code. _hash_splitbucket() obtained the base page of the new bucket by calling _hash_getnewbuf(), but it held no exclusive lock that would prevent some other process from calling _hash_getnewbuf() at the same time. This is contrary to _hash_getnewbuf()'s API spec and could in fact cause failures. In practice, we must only call that function while holding write lock on the hash index's metapage. An additional problem was that we'd already modified the metapage's bucket mapping data, meaning that failure to extend the index would leave us with a corrupt index. Fix both issues by moving the _hash_getnewbuf() call to just before we modify the metapage in _hash_expandtable(). Unfortunately there's still a large problem here, which is that we could also incur ENOSPC while trying to get an overflow page for the new bucket. That would leave the index corrupt in a more subtle way, namely that some index tuples that should be in the new bucket might still be in the old one. Fixing that seems substantially more difficult; even preallocating as many pages as we could possibly need wouldn't entirely guarantee that the bucket split would complete successfully. So for today let's just deal with the base case. Per report from Antonin Houska. Back-patch to all active branches. http://git.postgresql.org/pg/commitdiff/ed9cc2b5df59fdbc50cce37399e26b03ab2c1686 - Fix incorrect markup in documentation of window frame clauses. You're required to write either RANGE or ROWS to start a frame clause, but the documentation incorrectly implied this is optional. Noted by David Johnston. http://git.postgresql.org/pg/commitdiff/f6caf5acf1def92d7425151a92fd990c566fdcc3 - Provide real selectivity estimators for inet/cidr operators. This patch fills in the formerly-stub networksel() and networkjoinsel() estimation functions. Those are used for << <<= >> >>= and && operators on inet/cidr types. The estimation is not perfect, certainly, because we rely on the existing statistics collected for the inet btree operators. But it's a long way better than nothing, and it's not clear that asking ANALYZE to collect separate stats for these operators would be a win. Emre Hasegeli, with reviews from Dilip Kumar and Heikki Linnakangas, and some further hacking by me http://git.postgresql.org/pg/commitdiff/89840d7d3fa943cb932f6a00707fdb17a9cab001 - Fix rare startup failure induced by MVCC-catalog-scans patch. While a new backend nominally participates in sinval signaling starting from the SharedInvalBackendInit call near the top of InitPostgres, it cannot recognize sinval messages for unshared catalogs of its database until it has set up MyDatabaseId. This is not problematic for the catcache or relcache, which by definition won't have loaded any data from or about such catalogs before that point. However, commit 568d4138c646cd7c introduced a mechanism for re-using MVCC snapshots for catalog scans, and made invalidation of those depend on recognizing relevant sinval messages. So it's possible to establish a catalog snapshot to read pg_authid and pg_database, then before we set MyDatabaseId, receive sinval messages that should result in invalidating that snapshot --- but do not, because we don't realize they are for our database. This mechanism explains the intermittent buildfarm failures we've seen since commit 31eae6028eca4365. That commit was not itself at fault, but it introduced a new regression test that does reconnections concurrently with the "vacuum full pg_am" command in vacuum.sql. This allowed the pre-existing error to be exposed, given just the right timing, because we'd fail to update our information about how to access pg_am. In principle any VACUUM FULL on a system catalog could have created a similar hazard for concurrent incoming connections. Perhaps there are more subtle failure cases as well. To fix, force invalidation of the catalog snapshot as soon as we've set MyDatabaseId. Back-patch to 9.4 where the error was introduced. http://git.postgresql.org/pg/commitdiff/bc49d9324a464fce8f60e1bc14531631883021d4 - Remove unnecessary variables in _hash_splitbucket(). Commit ed9cc2b5df59fdbc50cce37399e26b03ab2c1686 made it unnecessary to pass start_nblkno to _hash_splitbucket(), and for that matter unnecessary to have the internal nblkno variable either. My compiler didn't complain about that, but some did. I also rearranged the use of oblkno a bit to make that case more parallel. Report and initial patch by Petr Jelinek, rearranged a bit by me. Back-patch to all branches, like the previous patch. http://git.postgresql.org/pg/commitdiff/b7e1652d5de8b618c0204588969c8b59d12e9361 - Fix TAP tests to use only standard command-line argument ordering. Some of the TAP tests were supposing that PG programs would accept switches after non-switch arguments on their command lines. While GNU getopt_long() does allow that, our own implementation does not, and it's nowhere suggested in our documentation that such cases should work. Adjust the tests to use only the documented syntax. Back-patch to 9.4, since without this the TAP tests fail when run with src/port's getopt_long() implementation. Michael Paquier http://git.postgresql.org/pg/commitdiff/c67a86f7da90c30b81f91957023fb752f06f0598 - Fix incorrect matching of subexpressions in outer-join plan nodes. Previously we would re-use input subexpressions in all expression trees attached to a Join plan node. However, if it's an outer join and the subexpression appears in the nullable-side input, this is potentially incorrect for apparently-matching subexpressions that came from above the outer join (ie, targetlist and qpqual expressions), because the executor will treat the subexpression value as NULL when maybe it should not be. The case is fairly hard to hit because (a) you need a non-strict subexpression (else NULL is correct), and (b) we don't usually compute expressions in the outputs of non-toplevel plan nodes. But we might do so if the expressions are sort keys for a mergejoin, for example. Probably in the long run we should make a more explicit distinction between Vars appearing above and below an outer join, but that will be a major planner redesign and not at all back-patchable. For the moment, just hack set_join_references so that it will not match any non-Var expressions coming from nullable inputs to expressions that came from above the join. (This is somewhat overkill, in that a strict expression could still be matched, but it doesn't seem worth the effort to check that.) Per report from Qingqing Zhou. The added regression test case is based on his example. This has been broken for a very long time, so back-patch to all active branches. http://git.postgresql.org/pg/commitdiff/ca6805338fba010cc3f8b842905d7a62e280b7ab - Suppress clang's unhelpful gripes about -pthread switch being unused. Considering the number of cases in which "unused" command line arguments are silently ignored by compilers, it's fairly astonishing that anybody thought this warning was useful; it's certainly nothing but an annoyance when building Postgres. One such case is that neither gcc nor clang complain about unrecognized -Wno-foo switches, making it more difficult to figure out whether the switch does anything than one could wish. Back-patch to 9.3, which is as far back as the patch applies conveniently (we'd have to back-patch PGAC_PROG_CC_VAR_OPT to go further, and it doesn't seem worth that). http://git.postgresql.org/pg/commitdiff/73b416b2e41237b657d29d8f42a4bb34bf700928 Heikki Linnakangas pushed: - Add index-only scan support to range type GiST opclass. Andreas Karlsson http://git.postgresql.org/pg/commitdiff/0633a60f4d2a2677db45d9261c94be9287e36d7c - Remove spurious semicolons. Petr Jelinek http://git.postgresql.org/pg/commitdiff/1d0db8de043c28c1e665451663ec101da5adc5ab - Move inet/cidr GiST opclass functions to correct place in header file. They were accidentally placed under the GIN heading. Andreas Karlsson http://git.postgresql.org/pg/commitdiff/f770870d9e4d01f4b255a3df6c2c4a2dcfcbcce0 Álvaro Herrera pushed: - Fix lost persistence setting during REINDEX INDEX. ReindexIndex() trusts a parser-built RangeVar with the persistence to use for the new copy of the index; but the parser naturally does not know what's the persistence of the original index. To find out the correct persistence, grab it from relcache. This bug was introduced by commit 85b506bbfc2937c9, and therefore no backpatch is necessary. Bug reported by Thom Brown, analysis and patch by Michael Paquier; test case provided by Fabrízio de Royes Mello. http://git.postgresql.org/pg/commitdiff/0853630159944bb3652336602ff5f7f62cd27a5a - Change array_offset to return subscripts, not offsets ... and rename it and its sibling array_offsets to array_position and array_positions, to account for the changed behavior. Having the functions return subscripts better matches existing practice, and is better suited to using the result value as a subscript into the array directly. For one-based arrays, the new definition is identical to what was originally committed. (We use the term "subscript" in the documentation, which is what we use whenever we talk about arrays; but the functions themselves are named using the word "position" to match the standard-defined POSITION() functions.) Author: Pavel Stěhule. Behavioral problem noted by Dean Rasheed. http://git.postgresql.org/pg/commitdiff/97690ea6e86c412461dd5dc99953b829564d1a55 - psql: fix \connect with URIs and conninfo strings. psql was already accepting conninfo strings as the first parameter in \connect, but the way it worked wasn't sane; some of the other parameters would get the previous connection's values, causing it to connect to a completely unexpected server or, more likely, not finding any server at all because of completely wrong combinations of parameters. Fix by explicitely checking for a conninfo-looking parameter in the dbname position; if one is found, use its complete specification rather than mix with the other arguments. Also, change tab-completion to not try to complete conninfo/URI-looking "dbnames" and document that conninfos are accepted as first argument. There was a weak consensus to backpatch this, because while the behavior of using the dbname as a conninfo is nowhere documented for \connect, it is reasonable to expect that it works because it does work in many other contexts. Therefore this is backpatched all the way back to 9.0. To implement this, routines previously private to libpq have been duplicated so that psql can decide what looks like a conninfo/URI string. In back branches, just duplicate the same code all the way back to 9.2, where URIs where introduced; 9.0 and 9.1 have a simpler version. In master, the routines are moved to src/common and renamed. Author: David Fetter, Andrew Dunstan. Some editorialization by me (probably earning a Gierth's "Sloppy" badge in the process.) Reviewers: Andrew Gierth, Erik Rijkers, Pavel Stěhule, Stephen Frost, Robert Haas, Andrew Dunstan. http://git.postgresql.org/pg/commitdiff/fcef1617295c074f2684c887627184d2fc26ac04 - psql: fix \connect with URIs and conninfo strings. This is the second try at this, after fcef1617295 failed miserably and had to be reverted: as it turns out, libpq cannot depend on libpgcommon after all. Instead of shuffling code in the master branch, make that one just like 9.4 and accept the duplication. (This was all my own mistake, not the patch submitter's). psql was already accepting conninfo strings as the first parameter in \connect, but the way it worked wasn't sane; some of the other parameters would get the previous connection's values, causing it to connect to a completely unexpected server or, more likely, not finding any server at all because of completely wrong combinations of parameters. Fix by explicitely checking for a conninfo-looking parameter in the dbname position; if one is found, use its complete specification rather than mix with the other arguments. Also, change tab-completion to not try to complete conninfo/URI-looking "dbnames" and document that conninfos are accepted as first argument. There was a weak consensus to backpatch this, because while the behavior of using the dbname as a conninfo is nowhere documented for \connect, it is reasonable to expect that it works because it does work in many other contexts. Therefore this is backpatched all the way back to 9.0. Author: David Fetter, Andrew Dunstan. Some editorialization by me (probably earning a Gierth's "Sloppy" badge in the process.) Reviewers: Andrew Gierth, Erik Rijkers, Pavel Stěhule, Stephen Frost, Robert Haas, Andrew Dunstan. http://git.postgresql.org/pg/commitdiff/e146ca682062ca1f5015f3820571c5359f5f9dba - autovacuum: Fix polarity of "wraparound" variable. Commit 0d831389749a3 inadvertently reversed the meaning of the wraparound variable. This causes vacuums which are not required for wraparound to wait for locks to be acquired, and what is worse, it allows wraparound vacuums to skip locked pages. Bug reported by Jeff Janes in http://www.postgresql.org/message-id/CAMkU=1xmTEiaY=5oMHsSQo5vd9V1Ze4kNLL0qN2eH0P_GXOaYw@mail.gmail.com Analysis and patch by Kyotaro HORIGUCHI http://git.postgresql.org/pg/commitdiff/00ee6c7672fe0bf9448bc744b5e3408f5ebffc2e - Have autovacuum workers listen to SIGHUP, too. They have historically ignored it, but it's been said to be useful at times to change their settings mid-flight. Author: Michael Paquier http://git.postgresql.org/pg/commitdiff/a75fb9b335db0e063ece283ebd207530abe1b53b - Add log_min_autovacuum_duration per-table option. This is useful to control autovacuum log volume, for situations where monitoring only a set of tables is necessary. Author: Michael Paquier Reviewed by: A team led by Naoya Anzai (also including Akira Kurosawa, Taiki Kondo, Huong Dangminh), Fujii Masao. http://git.postgresql.org/pg/commitdiff/4ff695b17d32a9c330952192dbc789d31a5e2f5e - Transform ALTER TABLE/SET TYPE/USING expr during parse analysis. This lets later stages have access to the transformed expression; in particular it allows DDL-deparsing code during event triggers to pass the transformed expression to ruleutils.c, so that the complete command can be deparsed. This shuffles the timing of the transform calls a bit: previously, nothing was transformed during parse analysis, and only the RELKIND_RELATION case was being handled during execution. After this patch, all expressions are transformed during parse analysis (including those for relkinds other than RELATION), and the error for other relation kinds is thrown only during execution. So we do more work than before to reject some bogus cases. That seems acceptable. http://git.postgresql.org/pg/commitdiff/9550e8348b7965715789089555bb5a3fda8c269c Andrew Dunstan pushed: - Run pg_upgrade and pg_resetxlog with restricted token on Windows. As with initdb these programs need to run with a restricted token, and if they don't pg_upgrade will fail when run as a user with Adminstrator privileges. Backpatch to all live branches. On the development branch the code is reorganized so that the restricted token code is now in a single location. On the stable bramches a less invasive change is made by simply copying the relevant code to pg_upgrade.c and pg_resetxlog.c. Patches and bug report from Muhammad Asif Naeem, reviewed by Michael Paquier, slightly edited by me. http://git.postgresql.org/pg/commitdiff/fa1e5afa8a26d467aec7c8b36a0b749b690f636c - Enable float8-byval as the default for 64 bit MSVC builds. This is a long-standing inconsistency that was probably just missed when we got 64 bit MSVC builds. This brings the platform into line with all other systems. http://git.postgresql.org/pg/commitdiff/cf376a4adc0805b0960a5f8e8325fae7d4456926 Bruce Momjian pushed: - btree_gin: properly call DirectFunctionCall1(). Previously we called DirectFunctionCall3() with dummy arguments. Fixed version of previous patch. Report by Jon Nelson http://git.postgresql.org/pg/commitdiff/0cf16b44cb749cac2ff9dcbbe92bfb94f72bb0d0 - psql: add asciidoc output format. Patch by Szymon Guz, adjustments by me Testing by Michael Paquier, Pavel Stehule http://git.postgresql.org/pg/commitdiff/9d9991c84e64c0c5f568b3cdaf46bb91a1368b5a - pg_ctl: change default shutdown mode from 'smart' to 'fast'. Retain the order of the options in the documentation. http://git.postgresql.org/pg/commitdiff/0badb069bc9f590dbc1306ccbd51e99ed81f228c - initdb: remove unnecessary VACUUM FULL. Report by Peter Eisentraut http://git.postgresql.org/pg/commitdiff/ed7b3b3811c5836a54549caaa217314be3f16fd0 - pg_upgrade: call 'postgres' binary to get data directory location. This matches the binary 'pg_ctl' calls. Previously we called the 'postmaster'. Report by Christoph Berg http://git.postgresql.org/pg/commitdiff/a0efc714531d3dfd02fafd39e80d058cef6703b0 Fujii Masao pushed: - Make pg_ctl use SIGINT as a default shutdown signal. The commit 0badb06 changed the default shutdown mode from smart to fast, but forgot to change the default shutdown signal from SIGTERM to SIGINT. http://git.postgresql.org/pg/commitdiff/7a245bfe76125e32bb26f63893ee9f9fb0fa3ce2 - Add markup for replaceable parameters to pg_rewind doc. http://git.postgresql.org/pg/commitdiff/5e3d289f9b7d7e67ee0294e9221bb681594b7668 - Add palloc_extended for frontend and backend. This commit also adds pg_malloc_extended for frontend. These interfaces can be used to control at a lower level memory allocation using an interface similar to MemoryContextAllocExtended. For example, the callers can specify MCXT_ALLOC_NO_OOM if they want to suppress the "out of memory" error while allocating the memory and handle a NULL return value. Michael Paquier, reviewed by me. http://git.postgresql.org/pg/commitdiff/8c8a886268dfa616193dadc98e44e0715f884614 - Rework handling of OOM when allocating record buffer in XLOG reader. Commit 2c03216 changed allocate_recordbuf() so that it uses a palloc to allocate the read buffer and fails immediately when an out-of-memory error shows up, even though its callers still expect that NULL is returned in that case. This bug is fixed making allocate_recordbuf() use a palloc_extended with MCXT_ALLOC_NO_OOM flag and return NULL in OOM case. Michael Paquier http://git.postgresql.org/pg/commitdiff/9b8d4782ba0f75eb0f029c743bb85166999d9fa5 - Fix error handling of XLogReaderAllocate in case of OOM. Similarly to previous fix 9b8d478, commit 2c03216 has switched XLogReaderAllocate() to use a set of palloc calls instead of malloc, causing any callers of this function to fail with an error instead of receiving a NULL pointer in case of out-of-memory error. Fix this by using palloc_extended with MCXT_ALLOC_NO_OOM that will safely return NULL in case of an OOM. Michael Paquier, slightly modified by me. http://git.postgresql.org/pg/commitdiff/6e4bf4ecd3c2a266870139462a079809dfe7ab8c Simon Riggs pushed: - Correct comment to use RS_EPHEMERAL http://git.postgresql.org/pg/commitdiff/7dae3cf68cf59c37163df42fb0d2b66fed9996f4 - Reduce lock levels of some trigger DDL and add FKs. Reduce lock levels to ShareRowExclusive for the following SQL CREATE TRIGGER (but not DROP or ALTER), ALTER TABLE ENABLE TRIGGER, ALTER TABLE DISABLE TRIGGER, and ALTER TABLE … ADD CONSTRAINT FOREIGN KEY Original work by Simon Riggs, extracted and refreshed by Andreas Karlsson New test cases added by Andreas Karlsson Reviewed by Noah Misch, Andres Freund, Michael Paquier and Simon Riggs http://git.postgresql.org/pg/commitdiff/0ef0396ae1687bf738d4703773d55467c36b2bcd - Add new test files for lock level patch http://git.postgresql.org/pg/commitdiff/35ecc244073a25cc99d76e42f99eb9476a2f8ab3 - Remove extraneous > http://git.postgresql.org/pg/commitdiff/e8fde1f6a0495d52ddfe46e38e9f281fc11400c9 Robert Haas pushed: - Revert "psql: fix \connect with URIs and conninfo strings". This reverts commit fcef1617295c074f2684c887627184d2fc26ac04, about which both the buildfarm and my local machine are very unhappy. http://git.postgresql.org/pg/commitdiff/4cd639baf4bd35dd7fc924009203349b81bdcd68 - Fix another bug in DSM_CREATE_NULL_IF_MAXSEGMENTS handling. Amit Kapila http://git.postgresql.org/pg/commitdiff/f272098e91708eecdfafb706b3a3409dd9593f10 - Add missing calls to DatumGetUInt32. These were inadvertently ommitted from the commit that introduced abbreviated keys, commit 4ea51cdfe85ceef8afabceb03c446574daa0ac23. Peter Geoghegan http://git.postgresql.org/pg/commitdiff/c02ef232c14d65741df939ddd633d8fed538a580 - Use abbreviated keys for faster sorting of numeric datums. Andrew Gierth, reviewed by Peter Geoghegan, with further tweaks by me. http://git.postgresql.org/pg/commitdiff/abd94bcac4582903765be7be959d1dbc121df0d0 - After a crash, don't restart workers with BGW_NEVER_RESTART. Amit Khandekar http://git.postgresql.org/pg/commitdiff/b3a5e76e126553d2a553694d3c54ac9e48b3a4a2 - Repair stupid mistake in preprocessor directive. http://git.postgresql.org/pg/commitdiff/05cce2f9030abfb5e674afb5cdb98aaa6be3930f - Improve pgbench error reporting. This would have been worth doing on general principle anyway, but the recent addition of an expression syntax to pgbench makes it an even better idea than it would have been otherwise. Fabien Coelho http://git.postgresql.org/pg/commitdiff/e41beea0ddb74ef975f08b917a354ec33cb60830 - Change the way we decide whether to give up on abbreviated text keys. Be more aggressive about aborting early on if it looks like it's not helping, but be less aggressive about aborting later on, since it's more expensive at that point, and also since we're currently aborting in some cases where abbreviation can still deliver a substantial win. Peter Geoghegan. Extensive testing by Tomas Vondra. http://git.postgresql.org/pg/commitdiff/f85155e18cb71a599724536e598e8d6f5e140454 - Fix numeric abbreviation for --disable-float8-byval. When committing abd94bcac4582903765be7be959d1dbc121df0d0, I tried to make it decide what kind of abbreviation to use based only on SIZEOF_DATUM, without regard to USE_FLOAT8_BYVAL. That attempt was a few bricks short of a load, so try to fix it, and add a comment explaining what we're about. Patch by me; review (but not a full endorsement) by Andrew Gierth. http://git.postgresql.org/pg/commitdiff/368b7c601e3a7ce927602b5399e4b117d71bae31 Andres Freund pushed: - Define integer limits independently from the system definitions. In 83ff1618 we defined integer limits iff they're not provided by the system. That turns out not to be the greatest idea because there's different ways some datatypes can be represented. E.g. on OSX PG's 64bit datatype will be a 'long int', but OSX unconditionally uses 'long long'. That disparity then can lead to warnings, e.g. around printf formats. One way to fix that would be to back int64 using stdint.h's int64_t. While a good idea it's not that easy to implement. We would e.g. need to include stdint.h in our external headers, which we don't today. Also computing the correct int64 printf formats in that case is nontrivial. Instead simply prefix the integer limits with PG_ and define them unconditionally. I've adjusted all the references to them in code, but not the ones in comments; the latter seems unnecessary to me. Discussion: 20150331141423.GK4878@alap3.anarazel.de http://git.postgresql.org/pg/commitdiff/62e2a8dc2c7f6b1351a0385491933af969ed4265 == Rejected Patches (for now) == No one was disappointed this week :-) == Pending Patches == Michael Paquier sent in a doc patch to describe more precisely the rounding behavior of numeric and double precision. Tomas Vondra sent in another revision of a patch to implement multivariate statistics, useful for among other things cross-column correlations. Heikki Linnakangas sent in a patch to implement SCRAM authentication. David Fetter sent in two more revisions of a patch to allow make_date() to use negative years for BCE dates. Craig Ringer sent in a patch to add views, materialized views, and foreign tables to the meaning of pg_dump's -t command line argument. Fabrízio de Royes Mello sent in a WIP patch to reduce lock level when setting autovacuum reloptions in "ALTER TABLE .. SET ( .. )" statement. Pavel Stehule sent in another revision of a patch to add a row_to_array() function. Michael Paquier sent in two revisions of a patch to add some tests for pg_rewind. Abhijit Menon-Sen sent in two more revisions of a patch to add pgstatbloat to pgstattuple. Haribabu Kommi sent in another revision of a patch to add a catalog view to for pg_hba.conf. Tomas Vondra sent in another revision of a patch to improve the n-distinct estimator. Jehan-Guillaume de Rorthais sent in a patch to document the maximum number of files in the pg_xlog directory. Stephen Frost sent in another revision of a patch to implement role attributes. Bruce Momjian sent in two more revisions of a patch to fix some infelicities in zero-padding in to_char(). David Steele sent in another revision of a patch to implement pg_audit. Bruce Momjian sent in two revisions of a patch to fix an infelicity in the SSPI error reporting code. Heikki Linnakangas sent in another revision of a patch to use Intel SSE4.2 CRC instructions where available. Petr Jelinek sent in a patch to remove an unused variable in src/backend/access/hash/hashpage.c. Petr Jelinek sent in another revision of a patch to implement TABLESAMPLE. SAWADA Masahiko sent in a WIP patch to allow making read-only tables. Shigeru HANADA sent in another revision of a patch to add join push-down support to postgres_fdw. Etsuro Fujita sent in another revision of a patch to fix some infelicities in the way EvalPlanQual behaves for FDW queries involving system columns. SAWADA Masahiko sent in another revision of a patch to create a pg_file_settings view. Tomas Vondra sent in a patch to fix to get rid of the spurious warnings caused by the recent change to _hash_splitbucket(). Peter Geoghegan sent in a patch to make trace_sort control abbreviation debug output for the text opclass, making it consistent with the numeric opclass.
В списке pgsql-announce по дате отправления:
Предыдущее
От: Stéphane SchildknechtДата:
Сообщение: Call for papers for PGDay 2015 in Belfort, France