== PostgreSQL Weekly News - July 06 2015 == The CommitFest schedule for the 9.6 cycle is planned as follows: CF1: July 1 to July 31 2015 CF2: Sept 1 to Sept 30 2015 CF3: November 1 to November 30 2015 CF4: Jan 2 to Jan 31 2016 CF5: March 1 to March 31 2016, to end on time (sudden death patch rejection) Feature Freeze (committer freeze): April 15 https://wiki.postgresql.org/wiki/PgCon_2015_Developer_Meeting#9.6_Schedule
PostgreSQL 9.5 Alpha 1 Released. Test! http://www.postgresql.org/about/news/1595/ PostgreSQL Conference Europe 2015 will be held on October 27-30 in the Vienna Marriott Hotel, in Vienna, Austria. The CfP is open until August 7. http://2015.pgconf.eu/ == PostgreSQL Product News == SQL Tabs v0.4, a client tool for PostgreSQL, released. http://www.sqltabs.com/ Version 2.22.0 of check_postgres, a Postgres monitoring tool, released. http://bucardo.org/wiki/Check_postgres Role::Pg::Roles 0.002, a Perl module for manipulating roles, released. https://metacpan.org/pod/Role::Pg::Roles Role::Pg::Sequences 0.002, a Perl module for manipulating sequences, released. https://metacpan.org/pod/Role::Pg::Roles Role::Pg::Notify 0.001, a Perl module for manipulating NOTIFY, released. https://metacpan.org/pod/Role::Pg::Roles Job::Machine 0.22, a Perl module for creating and using job queues, released. https://metacpan.org/pod/Job::Machine == PostgreSQL Jobs for July == http://archives.postgresql.org/pgsql-jobs/2015-07/ == PostgreSQL Local == PGDay UK, Conference will be taking place on 7th July 2015 – it is aimed at the UK PostgreSQL Community. http://www.postgresqlusergroup.org.uk PGDay Campinas 2015 will take place in Campinas on August 7. http://pgdaycampinas.com.br/english/ PostgresOpen 2015 will being held in Dallas, Texas September 16-18. http://2015.postgresopen.org/ PostgreSQL Session #7, will be held September 24th, 2015 in Paris, France, http://www.postgresql-sessions.org/7/about PostgreSQL Conference Europe 2015 will be held on October 27-30 in the Vienna Marriott Hotel, in Vienna, Austria. The CfP is open until August 7. http://2015.pgconf.eu/ PGConf Silicon Valley 2015 is November 17-18 at the South San Francisco Convention Center. http://www.pgconfsv.com PGBR2015 (The Brazilian PostgreSQL Conference) will take place in Porto Alegre, Rio Grande do Sul, on November 18, 19 and 20. The CfP is open through July 15. http://pgbr.postgresql.org.br/2015/en/#call-for-papers == 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 da...@fetter.org, German language to p...@pgug.de, Italian language to p...@itpug.org. Spanish language to p...@arpug.com.ar. == Applied Patches == Heikki Linnakangas pushed: - Also trigger restartpoints based on max_wal_size on standby. When archive recovery and restartpoints were initially introduced, checkpoint_segments was ignored on the grounds that the files restored from archive don't consume any space in the recovery server. That was changed in later releases, but even then it was arguably a feature rather than a bug, as performing restartpoints as often as checkpoints during normal operation might be excessive, but you might nevertheless not want to waste a lot of space for pre-allocated WAL by setting checkpoint_segments to a high value. But now that we have separate min_wal_size and max_wal_size settings, you can bound WAL usage with max_wal_size, and still avoid consuming excessive space usage by setting min_wal_size to a lower value, so that argument is moot. There are still some issues with actually limiting the space usage to max_wal_size: restartpoints in recovery can only start after seeing the checkpoint record, while a checkpoint starts flushing buffers as soon as the redo-pointer is set. Restartpoint is paced to happen at the same leisurily speed, determined by checkpoint_completion_target, as checkpoints, but because they are started later, max_wal_size can be exceeded by upto one checkpoint cycle's worth of WAL, depending on checkpoint_completion_target. But that seems better than not trying at all, and max_wal_size is a soft limit anyway. The documentation already claimed that max_wal_size is obeyed in recovery, so this just fixes the behaviour to match the docs. However, add some weasel-words there to mention that max_wal_size may well be exceeded by some amount in recovery. http://git.postgresql.org/pg/commitdiff/d661532e27b34e9c89d0700c6ce246731e70072c - Initialize GIN metapage correctly when replaying metapage-update WAL record. I broke this with my WAL format refactoring patch. Before that, the metapage was read from disk, and modified in-place regardless of the LSN. That was always a bit silly, as there's no need to read the old page version from disk disk when we're overwriting it anyway. So that was changed in 9.5, but I failed to add a GinInitPage call to initialize the page-headers correctly. Usually you wouldn't notice, because the metapage is already in the page cache and is not zeroed. One way to reproduce this is to perform a VACUUM on an already vacuumed table (so that the vacuum has no real work to do), immediately after a checkpoint, and then perform an immediate shutdown. After recovery, the page headers of the metapage will be incorrectly all-zeroes. Reported by Jeff Janes http://git.postgresql.org/pg/commitdiff/47fe4d25d57c81b9d7b2ac88783a12ee487db220 - Don't call PageGetSpecialPointer() on page until it's been initialized. After calling XLogInitBufferForRedo(), the page might be all-zeros if it was not in page cache already. btree_xlog_unlink_page initialized the page correctly, but it called PageGetSpecialPointer before initializing it, which would lead to a corrupt page at WAL replay, if the unlinked page is not in page cache. Backpatch to 9.4, the bug came with the rewrite of B-tree page deletion. http://git.postgresql.org/pg/commitdiff/fdf28853ae6a397497b79fea69f89f4f7b9aa991 - Add assertion to check the special size is sane before dereferencing it. This seems useful to catch errors of the sort I just fixed, where PageGetSpecialPointer is called before initializing the page. http://git.postgresql.org/pg/commitdiff/302ac7f27197855afa8c89fae36c85c124ae156b - Use American spelling for "behavior". For consistency with the rest of the docs. Michael Paquier http://git.postgresql.org/pg/commitdiff/5b1b6bf49b44f9b26f0c9eb6d97e84973e71a0ae - Fix name of argument to pg_stat_file. It's called "missing_ok" in the docs and in the C code. I refrained from doing a catversion bump for this, because the name of an input argument is just documentation, it has no effect on any callers. Michael Paquier http://git.postgresql.org/pg/commitdiff/7931622d1d942dbbba8d0eab77f18f69f1ce5de0 - Use appendStringInfoString/Char et al where appropriate. Patch by David Rowley. Backpatch to 9.5, as some of the calls were new in 9.5, and keeping the code in sync with master makes future backpatching easier. http://git.postgresql.org/pg/commitdiff/f92d6a540ac443f85f0929b284edff67da14687a - Don't emit a spurious space at end of line in pg_dump of event triggers. Backpatch to 9.3 and above, where event triggers were added. http://git.postgresql.org/pg/commitdiff/7b156c1e0746a46d083d7dbcd28afb303b3484ef - Replace obsolete autoconf macros with their modern replacements. AC_TRY_COMPILE(...) -> AC_COMPILE_IFELSE([AC_LANG_PROGRAM(...)]) AC_TRY_LINK(...) -> AC_LINK_IFELSE([AC_LANG_PROGRAM(...)]) AC_TRY_RUN(...) -> AC_RUN_IFELSE([AC_LANG_PROGRAM(...)]) AC_LANG_SAVE/RESTORE -> AC_LANG_PUSH/POP AC_DECL_SYS_SIGLIST -> AC_CHECK_DECLS(...) (per snippet in autoconf manual) Also use AC_LANG_SOURCE instead of AC_LANG_PROGRAM, where the main() function is not needed. With these changes, autoconf -Wall doesn't complain anymore. Andreas Karlsson http://git.postgresql.org/pg/commitdiff/a2edb023d08778c3346bbbf4ca82ef7f6e9283eb - Plug some trivial memory leaks in pg_dump and pg_upgrade. There's no point in trying to free every small allocation in these programs that are used in a one-shot fashion, but these ones seems like an improvement on readability grounds. Michael Paquier, per Coverity report. http://git.postgresql.org/pg/commitdiff/f712289ffad7c3fb6eb3be4f81adb0aa0981c9f7 - Remove "const" from convertTSFunction()'s return type. There's no particular reason to mark it as such. The other convert* functions have no const either. http://git.postgresql.org/pg/commitdiff/a3fd7afe3090a5098f93408d47da70b47fb59e7b - Remove obsolete heap_formtuple/modifytuple/deformtuple functions. These variants used the old-style 'n'/' ' NULL indicators. The new-style functions have been available since version 8.1. That should be long enough that if there is still any old external code using these functions, they can just switch to the new functions without worrying about backwards compatibility. Peter Geoghegan http://git.postgresql.org/pg/commitdiff/726117243022178e72966cbffdfb9147ec6dbbcc - Lift the limitation that # of clients must be a multiple of # of threads. Fabien Coelho http://git.postgresql.org/pg/commitdiff/ba3deeefb0fb9e8810b454bc7b41f27965c24aa8 - Fix pgbench progress report behaviour when pgbench or a query gets stuck. There were two issues here. First, if a query got stuck so that it took e.g. 5 seconds, and progress interval was 1 second, no progress reports were printed until the query returned. Fix so that we wake up specifically to print the progress report. Secondly, if pgbench got stuck so that it would nevertheless not print a progress report on time, and enough time passes that it's already time to print the next progress report, just skip the one that was missed. Before this patch, it would print the missed one with 0 TPS immediately after the previous one. Fabien Coelho. Backpatch to 9.4, where progress reports were added. http://git.postgresql.org/pg/commitdiff/9031ff91a110f29e8bd4b74ddf2b5ced3ecbeaf4 - Remove thread-emulation support from pgbench. You can no longer use pgbench with multiple threads when compiled without --enable-thread-safety. That's an acceptable limitation these days; it still works fine with -j1, and all modern platforms support threads anyway. This makes future maintenance and development of the code easier. Fabien Coelho http://git.postgresql.org/pg/commitdiff/1bc90f7a7b7441a88e2c6d4a0e9b6f9c1499ad30 - Don't set SO_SNDBUF on recent Windows versions that have a bigger default. It's unnecessary to set it if the default is higher in the first place. Furthermore, setting SO_SNDBUF disables the so-called "dynamic send buffering" feature, which hurts performance further. This can be seen especially when the network between the client and the server has high latency. Chen Huajun http://git.postgresql.org/pg/commitdiff/4f33621f3f50286e607a3cdcc1f7a7d51075af95 - Call getsockopt() on the correct socket. We're interested in the buffer size of the socket that's connected to the client, not the one that's listening for new connections. It happened to work, as default buffer size is the same on both, but it was clearly not wrong. Spotted by Tom Lane http://git.postgresql.org/pg/commitdiff/8e33fc1784cbd657a7238ab5639ee1f8f54a3ec0 - Turn install.bat into a pure one line wrapper fort he perl script. Build.bat and vcregress.bat got similar treatment years ago. I'm not sure why install.bat wasn't treated at the same time, but it seems like a good idea anyway. The immediate problem with the old install.bat was that it had quoting issues, and wouldn't work if the target directory's name contained spaces. This fixes that problem. http://git.postgresql.org/pg/commitdiff/6c534fd68568452adcc9ccecb557eff74f6f0f4d Tom Lane pushed: - Improve design and implementation of pg_file_settings view. As first committed, this view reported on the file contents as they were at the last SIGHUP event. That's not as useful as reporting on the current contents, and what's more, it didn't work right on Windows unless the current session had serviced at least one SIGHUP. Therefore, arrange to re-read the files when pg_show_all_settings() is called. This requires only minor refactoring so that we can pass changeVal = false to set_config_option() so that it won't actually apply any changes locally. In addition, add error reporting so that errors that would prevent the configuration files from being loaded, or would prevent individual settings from being applied, are visible directly in the view. This makes the view usable for pre-testing whether edits made in the config files will have the desired effect, before one actually issues a SIGHUP. I also added an "applied" column so that it's easy to identify entries that are superseded by later entries; this was the main use-case for the original design, but it seemed unnecessarily hard to use for that. Also fix a 9.4.1 regression that allowed multiple entries for a PGC_POSTMASTER variable to cause bogus complaints in the postmaster log. (The issue here was that commit bf007a27acd7b2fb unintentionally reverted 3e3f65973a3c94a6, which suppressed any duplicate entries within ParseConfigFp. However, since the original coding of the pg_file_settings view depended on such suppression *not* happening, we couldn't have fixed this issue now without first doing something with pg_file_settings. Now we suppress duplicates by marking them "ignored" within ProcessConfigFileInternal, which doesn't hide them in the view.) Lesser changes include: Drive the view directly off the ConfigVariable list, instead of making a basically-equivalent second copy of the data. There's no longer any need to hang onto the data permanently, anyway. Convert show_all_file_settings() to do its work in one call and return a tuplestore; this avoids risks associated with assuming that the GUC state will hold still over the course of query execution. (I think there were probably latent bugs here, though you might need something like a cursor on the view to expose them.) Arrange to run SIGHUP processing in a short-lived memory context, to forestall process-lifespan memory leaks. (There is one known leak in this code, in ProcessConfigDirectory; it seems minor enough to not be worth back-patching a specific fix for.) Remove mistaken assignment to ConfigFileLineno that caused line counting after an include_dir directive to be completely wrong. Add missed failure check in AlterSystemSetConfigFile(). We don't really expect ParseConfigFp() to fail, but that's not an excuse for not checking. http://git.postgresql.org/pg/commitdiff/62d16c7fc5614d9f4d0dd1a9f164b232c273c128 - Run the C portions of guc-file.l through pgindent. Yeah, I know, pretty anal-retentive of me. But we oughta find some way to automate this for the .y and .l files. http://git.postgresql.org/pg/commitdiff/2bdc51a2946f9a66688eb705cd0cb584ebd8240a - Code + docs review for escaping of option values (commit 11a020eb6). Avoid memory leak from incorrect choice of how to free a StringInfo (resetStringInfo doesn't do it). Now that pg_split_opts doesn't scribble on the optstr, mark that as "const" for clarity. Attach the commentary in protocol.sgml to the right place, and add documentation about the user-visible effects of this change on postgres' -o option and libpq's PGOPTIONS option. http://git.postgresql.org/pg/commitdiff/cbc8d65639344c390a1d1a7f646c186ff3ad8693 - Desultory review of 9.5 release notes. Minor corrections and clarifications. Notably, for stuff that got moved out of contrib, make sure it's documented somewhere other than "Additional Modules". I'm sure these need more work, but that's all I have time for today. http://git.postgresql.org/pg/commitdiff/85c25fdbd7d624928bb8a1f1fd1e5043ec35dd74 - Stamp 9.5alpha1. http://git.postgresql.org/pg/commitdiff/f78329d594c2fe893f9174d5b3da7d3fbc6dd8b6 - Remove useless check for NULL subexpression. Coverity rightly gripes that it's silly to have a test here when the adjacent ExecEvalExpr() would choke on a NULL expression pointer. Petr Jelinek http://git.postgresql.org/pg/commitdiff/131926a52da0fbd77678cbd887914c83b48faa2d - Stamp HEAD as 9.6devel. Let the hacking begin ... http://git.postgresql.org/pg/commitdiff/cf8d65de10ebd026f6534eeb275cae46d7bffb4f - Stamp shared-library minor version numbers for 9.6. http://git.postgresql.org/pg/commitdiff/019f7813da69da05484faa63b6a29a8df773d19b - Fix broken link in documentation. HP's web server has apparently become case-sensitive sometime recently. Per bug #13479 from Daniel Abraham. Corrected link identified by Alvaro. http://git.postgresql.org/pg/commitdiff/7f32dbcd73b9a75d09db386fa81c31f42e6f0d3a - Make sampler_random_fract() actually obey its API contract. This function is documented to return a value in the range (0,1), which is what its predecessor anl_random_fract() did. However, the new version depends on pg_erand48() which returns a value in [0,1). The possibility of returning zero creates hazards of division by zero or trying to compute log(0) at some call sites, and it might well break third-party modules using anl_random_fract() too. So let's change it to never return zero. Spotted by Coverity. Michael Paquier, cosmetically adjusted by me http://git.postgresql.org/pg/commitdiff/d7c19d68550eb6018e8581a73a351905f4cc435c - Don't leave pg_hba and pg_ident data lying around in running backends. Free the contexts holding this data after we're done using it, by the expedient of attaching them to the PostmasterContext which we were already taking care to delete (and where, indeed, this data used to live before commits e5e2fc842c418432 and 7c45e3a3c682f855). This saves a probably-usually-negligible amount of space per running backend. It also avoids leaving potentially-security-sensitive data lying around in memory in processes that don't need it. You'd have to be unusually paranoid to think that that amounts to a live security bug, so I've not gone so far as to forcibly zero the memory; but there surely isn't a good reason to keep this data around. Arguably this is a memory management bug in the aforementioned commits, but it doesn't seem important enough to back-patch. http://git.postgresql.org/pg/commitdiff/1e24cf645d24aab3ea39a9d259897fd0cae4e4b6 - Add an optional missing_ok argument to SQL function current_setting(). This allows convenient checking for existence of a GUC from SQL, which is particularly useful when dealing with custom variables. David Christensen, reviewed by Jeevan Chalke http://git.postgresql.org/pg/commitdiff/10fb48d66de76e7dc1e36ef18af502ed9600352f - Fix misuse of TextDatumGetCString(). "TextDatumGetCString(PG_GETARG_TEXT_P(x))" is formally wrong: a text* is not a Datum. Although this coding will accidentally fail to fail on all known platforms, it risks leaking memory if a detoast step is needed, unlike "TextDatumGetCString(PG_GETARG_DATUM(x))" which is what's used elsewhere. Make pg_get_object_address() fall in line with other uses. Noted while reviewing two-arg current_setting() patch. http://git.postgresql.org/pg/commitdiff/ac50f84866b22f239025bf37c9c7492cc4ce2dfd - Make numeric form of PG version number readily available in Makefiles. Expose PG_VERSION_NUM (e.g., "90600") as a Make variable; but for consistency with the other Make variables holding similar info, call the variable just VERSION_NUM not PG_VERSION_NUM. There was some discussion of making this value available as a pg_config value as well. However, that would entail substantially more work than this two-line patch. Given that there was not exactly universal consensus that we need this at all, let's just do a minimal amount of work for now. Michael Paquier, reviewed by Pavel Stehule http://git.postgresql.org/pg/commitdiff/a5d489ccb7e613c7ca3be6141092b8c1d2c13fa7 - Improve pg_restore's -t switch to match all types of relations. -t will now match views, foreign tables, materialized views, and sequences, not only plain tables. This is more useful, and also more consistent with the behavior of pg_dump's -t switch, which has always matched all relation types. We're still not there on matching pg_dump's behavior entirely, so mention that in the docs. Craig Ringer, reviewed by Pavel Stehule http://git.postgresql.org/pg/commitdiff/5671aaca87c47128f6a1e0556ce9c7512096ad87 - Add psql \ev and \sv commands for editing and showing view definitions. These are basically just like the \ef and \sf commands for functions. Petr Korobeinikov, reviewed by Jeevan Chalke, some changes by me http://git.postgresql.org/pg/commitdiff/8eb6407aaeb6cbd972839e356b436bb698f51cff - Add documentation and regression tests concerning rounding of numerics. Michael Paquier, reviewed by Fabien Coelho http://git.postgresql.org/pg/commitdiff/5e7c3d91bf24a212b42c912234c6cb37d75e0292 - Fix bad grammar in brin.sgml. Christoph Berg http://git.postgresql.org/pg/commitdiff/252404625aa98fa5f93a45a8dcffdc179981820a - Further reduce overhead for passing plpgsql variables to the executor. This builds on commit 21dcda2713656a7483e3280ac9d2ada20a87a9a9 by keeping a plpgsql function's shared ParamListInfo's entries for simple variables (PLPGSQL_DTYPE_VARs) valid at all times. That adds a few cycles to each assignment to such variables, but saves significantly more cycles each time they are used; so except in the pathological case of many dead stores, this should always be a win. Initial testing says it's good for about a 10% speedup of simple calculations; more in large functions with many datums. We can't use this method for row/record references unfortunately, so what we do for those is reset those ParamListInfo slots after use; which we can skip doing unless some of them were actually evaluated during the previous evaluation call. So this should frequently be a win as well, while worst case is that it's similar cost to the previous approach. Also, closer study suggests that the previous method of instantiating a new ParamListInfo array per evaluation is actually probably optimal for cursor-opening executor calls. The reason is that whatever is visible in the array is going to get copied into the cursor portal via copyParamList. So if we used the function's main ParamListInfo for those calls, we'd end up with all of its DTYPE_VAR vars getting copied, which might well include large pass-by-reference values that the cursor actually has no need for. To avoid a possible net degradation in cursor cases, go back to creating and filling a private ParamListInfo in those cases (which therefore will be exactly the same speed as before 21dcda271365). We still get some benefit out of this though, because this approach means that we only have to defend against copyParamList's try-to-fetch-every-slot behavior in the case of an unshared ParamListInfo; so plpgsql_param_fetch() can skip testing expr->paramnos in the common case. To ensure that the main ParamListInfo's image of a DTYPE_VAR datum is always valid, all assignments to such variables are now funneled through assign_simple_var(). But this makes for cleaner and shorter code anyway. http://git.postgresql.org/pg/commitdiff/6c82d8d1fdb1f1265f93d89640edcbd0ae22c627 - Fix some typos in regression test comments. Back-patch to avoid unnecessary cross-branch differences. CharSyam http://git.postgresql.org/pg/commitdiff/551654977022097ac408b483b3be9887a99f0ce0 - Make a editorial pass over pgbench's error messages. The lack of consistency, and lack of attention to our message style guidelines, was a bit striking. Try to make 'em better. http://git.postgresql.org/pg/commitdiff/22ba5563adacd162d97ff3c80eac4893574f1e17 Peter Eisentraut pushed: - Translation updates. Source-Git-URL: git://git.postgresql.org/git/pgtranslation/messages.git Source-Git-Hash: fb7e72f46cfafa1b5bfe4564d9686d63a1e6383f http://git.postgresql.org/pg/commitdiff/c5e5d444de85a7caff462443c5915544d4406a62 Andres Freund pushed: - Replace ia64 S_UNLOCK compiler barrier with a full memory barrier. _Asm_sched_fence() is just a compiler barrier, not a memory barrier. But spinlock release on IA64 needs, at the very least, release semantics. Use a full barrier instead. This might be the cause for the occasional failures on buildfarm member anole. Discussion: 20150629101108.gb17...@alap3.anarazel.de http://git.postgresql.org/pg/commitdiff/07cb8b02ab4c8b65bb2e3b87ad2402fdc6cce978 - Improve 9.5 release notes. 1) Add sgml comments referencing commits. This is useful to search for missing items etc. The comments containing the commit notes are an excerpt from: git log --date=short \ --pretty='format:%cd [%h] %<(8,trunc)%cN: %<(48,trunc)%s%n%n%w(,4,4)%b%n' \ $(git merge-base origin/master %upstream/REL9_4_STABLE)..origin/master 2) Improve a handful of %existing notes 3) Add missing entries about a couple features. 4) %Add a bunch of straight-forward FIXMEs %http://git.postgresql.org/pg/commitdiff/c0b0501925eacbf2d9c10cd231bf8a14e7c9ef4c - Fix typo and omission in my earlier 9.5 release notes commit. http://git.postgresql.org/pg/commitdiff/1561b541fd43b492ed9fe1b5c907bd88f54d1053 Robert Haas pushed: - In bttext_abbrev_convert, move pfree to the right place. Without this, we might access memory that's already been freed, or leak memory if in the C locale. Peter Geoghegan http://git.postgresql.org/pg/commitdiff/b48ecf862b3896631660ee8d38054aded82a4f8b Álvaro Herrera pushed: - Test -lrt for sched_yield. Apparently, this is needed in some Solaris versions. Author: Oskari Saarenmaa http://git.postgresql.org/pg/commitdiff/ab93f90cd3a4fcdd891cee9478941c3cc65795b8 Fujii Masao pushed: - Make XLogFileCopy() look the same as in 9.4. XLogFileCopy() was changed heavily in commit de76884. However it was partially reverted in commit 7abc685 and most of those changes to XLogFileCopy() were no longer needed. Then commit 7cbee7c removed those unnecessary code, but XLogFileCopy() looked different in master and 9.4 though the contents are almost the same. This patch makes XLogFileCopy() look the same in master and back-branches, which makes back-patching easier, per discussion on pgsql-hackers. Back-patch to 9.5. Discussion: 55760844.7090...@iki.fi Michael Paquier http://git.postgresql.org/pg/commitdiff/8217370864c950ea28c7f940442fe48c701461c2 - Make use of xlog_internal.h's macros in WAL-related utilities. Commit 179cdd09 added macros to check if a filename is a WAL segment or other such file. However there were still some instances of the strlen + strspn combination to check for that in WAL-related utilities like pg_archivecleanup. Those checks can be replaced with the macros. This patch makes use of the macros in those utilities and which would make the code a bit easier to read. Back-patch to 9.5. Michael Paquier http://git.postgresql.org/pg/commitdiff/fb174687f7a730edcf301949785a6ac0dbfd70d0 - Make WAL-related utilities handle .partial WAL files properly. Commit de76884 changed an archive recovery so that the last WAL segment with old timeline was renamed with suffix .partial. It should have updated WAL-related utilities so that they can handle such .paritial WAL files, but we forgot that. This patch changes pg_archivecleanup so that it can clean up even archived WAL files with .partial suffix. Also it allows us to specify .partial WAL file name as the command-line argument "oldestkeptwalfile". This patch also changes pg_resetxlog so that it can remove .partial WAL files in pg_xlog directory. pg_xlogdump cannot handle .partial WAL files. Per discussion, we decided only to document that limitation instead of adding the fix. Because a user can easily work around the limitation (i.e., just remove .partial suffix from the file name) and the fix seems complicated for very narrow use case. Back-patch to 9.5 where the problem existed. Review by Michael Paquier. Discussion: http://www.postgresql.org/message-id/cahgqgwgxmknvhggtfiig2bt_2djec0in3-dljmtg7+neiid...@mail.gmail.com http://git.postgresql.org/pg/commitdiff/8650d161ae4369ec64a6fc7b7cbd0e6e55c3a7aa - Remove incorrect warning from pg_archivecleanup document. The .backup file name can be passed to pg_archivecleanup even if it includes the extension which is specified in -x option. However, previously the document incorrectly warned a user not to do that. Back-patch to 9.2 where pg_archivecleanup's -x option and the warning were added. http://git.postgresql.org/pg/commitdiff/906e9249494bda975914b78fdd743609e1f83016 Andrew Dunstan pushed: - Allow MSVC's contribcheck and modulescheck to run independently. These require a temp install to have been done, so we now make sure it is done before proceeding. Michael Paquier. http://git.postgresql.org/pg/commitdiff/d5d00294b05a54396f83db8abdf37c379a739794 Joe Conway pushed: - Whitespace fix - replace tab with spaces in CREATE TABLE command. http://git.postgresql.org/pg/commitdiff/1fd0d5ec0373666fe00db4f641490d9e82f53e01 - Make RLS related error messages more consistent and compliant. Also updated regression expected output to match. Noted and patch by Daniele Varrazzo. http://git.postgresql.org/pg/commitdiff/02eac01f91923592f93abf8d325ab806b058f948 == Rejected Patches (for now) == No one was disappointed this week :-) == Pending Patches == Amit Langote sent in a patch to adjust the errorcode for the error related to checking the flag bgw_flags in BackgroundWorkerInitializeConnection*() functions so that it matches the treatment in SanityCheckBackgroundWorker(). Jeff Janes sent in a patch to that implements the vm scan for truncation. Michael Paquier and Heikki Linnakangas traded patches to fix some infelicities exposed by pg_rewind. Amit Kapila sent in a patch to reduce ProcArrayLock contention by adding a mechanism to GroupClear the Xid during ProcArrayEndTransaction(). Jeff Janes sent in a patch to make a crash scenario he'd found easier to reproduce. Franck Verrot sent in a patch to mention column name in error messages. Peter Geoghegan sent in a patch to fix a bug in bttext_abbrev_convert(). Andres Freund sent in a patch to rework the way multixact truncations work. Michael Paquier sent in a patch to add a couple of return value checks that were missing for JsonbIteratorNext in jsonfuncs.c. Michael Paquier sent in a patch to add missing checks on return value of timestamp2tm in datetime.c. Amit Kapila sent in a patch to extend pg_stat_activity to include wait_event. Michael Paquier and Petr Jelinek traded fix a possible NULL pointer dereferernce in tablesample.c Jeff Janes sent in another revision of a patch to update pg_trgm to use more modern facilities for a speed boost. Michael Paquier sent in a patch to remove an unneeded NULL-pointer check in FreeSpaceMapTruncateRel. Peter Eisentraut sent in a patch to allow the -X stream method to specify a replication slot and create it in the same run if needed. Simon Riggs sent in a patch to reduce ClogControlLock contention at commit time. Rahila Syed sent in a POC patch to allow tracking VACUUM progress. Amit Kapila sent in two more revisions of a patch to rename mapfile if backupfile not present. SAWADA Masahiko sent in three more revisions of a patch to add a "frozen" bit to the visibility map. Kyotaro HORIGUCHI sent in another revision of a patch to allow asynchronous execution on a FDW. Etsuro Fujita sent in a patch to fix an issue it's possible that the result of SELECT ... ORDER BY ... FOR UPDATE is not sorted correctly due to concurrent updates' having replaced the sort key columns with new values. Robbie Harwood sent in a patch to add GSSAPI encryption support. Amit Kapila sent in another revision of a patch to allow assessing parallel-safety. Fabien COELHO sent in another revision of a patch to allow backslash-continuations in custom pgbench scripts. Peter Geoghegan sent in a patch to make sorting text under a non-C locale faster than in 9.5. Noah Misch sent in a patch to fix some strxfrm overflow bugs. Michael Paquier sent in two revisions of a patch to fix an issue where table constraints and other objects were not being persisted over ALTERs. Jan de Visser sent in another revision of a patch to let pg_ctl check the result of a postmaster config reload. Amit Kapila sent in another revision of a patch to implement parallel seq scan. Noah Misch sent in two revisions of a patch to implement xlc atomics. Marco Atzeri sent in a patch to fix a 9.5alpha1 build failure with Perl 5.22. Julien Rouhaud sent in a patch to allow using the PID of the backend in psql. David Rowley sent in a patch to fix some infelicities in an as yet uncommitted memory accounting patch. Joe Conway and Michael Paquier traded patches to add polymorphic functions to dblink. Uriy Zhuravlev sent in another revision of a patch to enhance ALTER OPERATOR to allow setting some of the operator's parameters. David Christensen sent in a patch to add \ddp to the tab completions in psql. Pavel Stehule sent in another revision of a patch to allow raw output from COPY. -- Sent via pgsql-announce mailing list (pgsql-announce@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-announce