== PostgreSQL Weekly News - December 20 2015 ==

From: David Fetter <david(at)fetter(dot)org>
To: PostgreSQL Announce <pgsql-announce(at)postgresql(dot)org>
Subject: == PostgreSQL Weekly News - December 20 2015 ==
Date: 2015-12-21 04:12:52
Message-ID: 20151221041252.GB16788@fetter.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-announce

== PostgreSQL Weekly News - December 20 2015 ==

PostgreSQL 9.5RC1 released. Test!
https://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.5

The annual Indian PGday will be held in Bengaluru, Karnataka, India on
February 26, 2016. The CfP is open.
http://pgday.in

Nordic PGDay 2016 is a one day one track conference which will be held in
Helsinki, Finland, on March 17, 2016. The CfP is open.
http://2016.nordicpgday.org/

== PostgreSQL Jobs for December ==

http://archives.postgresql.org/pgsql-jobs/2015-12/

== PostgreSQL Local ==

PostgreSQL(at)SCaLE is a two day, two track event which takes place on Jan.
21-22, 2016, at Pasadena Convention Center, as part of SCaLE 14X.
https://www.socallinuxexpo.org/scale/14x/cfp

FOSDEM PGDay is a one day conference that will be held ahead of FOSDEM in
Brussels, Belgium, on Jan 29th, 2016. Details and CfP below:
http://fosdem2016.pgconf.eu/

Prague PostgreSQL Developer Day 2016 (P2D2 2016) is a two-day conference
that will be held on February 17-18 2016 in Prague, Czech Republic.
Czech language web site below:
http://www.p2d2.cz/

The first pan-Asian PostgreSQL conference will be held March 2016 in
Singapore. The CfP is open.
http://2016.pgday.asia/

PGConf US 2016 will take place April 18-20, 2016 in NYC. The CfP is
open until January 31st, 2016, 11:59pm EST.
http://www.pgconf.us/2016/

PGCon 2016 will be held May 17-21, 2016 in Ottawa. The CfP is out.
http://www.pgcon.org/

== PostgreSQL in the News ==

Planet PostgreSQL: http://planet.postgresql.org/

PostgreSQL Weekly News is brought to you this week by David Fetter

Submit news and announcements by Sunday at 3:00pm Pacific time.
Please send English language ones to david(at)fetter(dot)org, German language
to pwn(at)pgug(dot)de, Italian language to pwn(at)itpug(dot)org(dot) Spanish language
to pwn(at)arpug(dot)com(dot)ar(dot)

== Applied Patches ==

Andres Freund pushed:

- Correct statement to actually be the intended assert statement.
e3f4cfc7 introduced a LWLockHeldByMe() call, without the
corresponding Assert() surrounding it. Spotted by Coverity.
Backpatch: 9.1+, like the previous commit
http://git.postgresql.org/pg/commitdiff/2a3544960eaa114d34e5e83ab19e180c8efcd299

- Fix bug in SetOffsetVacuumLimit() triggered by
find_multixact_start() failure. Previously, if
find_multixact_start() failed, SetOffsetVacuumLimit() would install
0 into MultiXactState->offsetStopLimit if it previously succeeded.
Luckily, there are no known cases where find_multixact_start() will
return an error in 9.5 and above. But if it were to happen, for
example due to filesystem permission issues, it'd be somewhat bad:
GetNewMultiXactId() could continue allocating mxids even if close to
a wraparound, or it could erroneously stop allocating mxids, even if
no wraparound is looming. The wrong value would be corrected the
next time SetOffsetVacuumLimit() is called, or by a restart.
Reported-By: Noah Misch, although this is not his preferred fix
Discussion: 20151210140450(dot)GA22278(at)alap3(dot)anarazel(dot)de Backpatch: 9.5,
where the bug was introduced as part of 4f627f
http://git.postgresql.org/pg/commitdiff/cca705a5d93446e1a9c775b94c7d5900986c0488

- Fix tab completion for ALTER ... TABLESPACE ... OWNED BY.
Previously the completion used the wrong word to match 'BY'. This
was introduced brokenly, in b2de2a. While at it, also add completion
of IN TABLESPACE ... OWNED BY and fix comments referencing
nonexistent syntax. Reported-By: Michael Paquier Author: Michael
Paquier and Andres Freund Discussion:
CAB7nPqSHDdSwsJqX0d2XzjqOHr==HdWiubCi4L=Zs7YFTUne8w(at)mail(dot)gmail(dot)com
Backpatch: 9.4, like the commit introducing the bug
http://git.postgresql.org/pg/commitdiff/130d94a7b868f5b6df512e5fde94a64e5e71178b

Heikki Linnakangas pushed:

- Fix out-of-memory error handling in ParameterDescription message
processing. If libpq ran out of memory while constructing the
result set, it would hang, waiting for more data from the server,
which might never arrive. To fix, distinguish between out-of-memory
error and not-enough-data cases, and give a proper error message
back to the client on OOM. There are still similar issues in
handling COPY start messages, but let's handle that as a separate
patch. Michael Paquier, Amit Kapila and me. Backpatch to all
supported versions.
http://git.postgresql.org/pg/commitdiff/7b96bf445a42b1cb2a435854f9825c38253f79a2

Kevin Grittner pushed:

- Remove xmlparse(document '') test This one test was behaving
differently between the ubuntu fix for CVE-2015-7499 and the base
"expected" file. It's not worth having yet another version of the
expected file for this test, so drop it. Perhaps at some point when
all distros have settled down to the same behavior on this test, it
can be restored. Problem found by me on libxml2
(2.9.1+dfsg1-3ubuntu4.6). Solution suggested by Tom Lane.
Backpatch to 9.5, where the test was added.
http://git.postgresql.org/pg/commitdiff/e2f1765ce0770e813971336bb4603099d24cbe57

Álvaro Herrera pushed:

- Add missing CHECK_FOR_INTERRUPTS in lseg_inside_poly. Apparently,
there are bugs in this code that cause it to loop endlessly. That
bug still needs more research, but in the meantime it's clear that
the loop is missing a check for interrupts so that it can be
cancelled timely. Backpatch to 9.1 -- this has been missing since
49475aab8d0d.
http://git.postgresql.org/pg/commitdiff/0d8f3d5d11f7304c82ce1383bbb491ec6abcffc4

- Rework internals of changing a type's ownership. This is necessary
so that REASSIGN OWNED does the right thing with composite types, to
wit, that it also alters ownership of the type's pg_class entry --
previously, the pg_class entry remained owned by the original user,
which caused later other failures such as the new owner's inability
to use ALTER TYPE to rename an attribute of the affected composite.
Also, if the original owner is later dropped, the pg_class entry
becomes owned by a non-existant user which is bogus. To fix, create
a new routine AlterTypeOwner_oid which knows whether to pass the
request to ATExecChangeOwner or deal with it directly, and use that
in shdepReassignOwner rather than calling AlterTypeOwnerInternal
directly. AlterTypeOwnerInternal is now simpler in that it only
modifies the pg_type entry and recurses to handle a possible array
type; higher-level tasks are handled by either AlterTypeOwner
directly or AlterTypeOwner_oid. I took the opportunity to add a few
more objects to the test rig for REASSIGN OWNED, so that more cases
are exercised. Additional ones could be added for
superuser-only-ownable objects (such as FDWs and event triggers) but
I didn't want to push my luck by adding a new superuser to the tests
on a backpatchable bug fix. Per bug #13666 reported by Chris
Pacejo. Backpatch to 9.5. (I would back-patch this all the way
back, except that it doesn't apply cleanly in 9.4 and earlier
because 59367fdf9 wasn't backpatched. If we decide that we need
this in earlier branches too, we should backpatch both.)
http://git.postgresql.org/pg/commitdiff/756e7b4c9db1fa713b886068643257c823baddaf

Tom Lane pushed:

- Add missing cleanup logic in pg_rewind/t/005_same_timeline.pl test.
Per Michael Paquier
http://git.postgresql.org/pg/commitdiff/db81329eed6b1f54bbdd9049bcdba556f2b4737d

- Update 9.5 release notes through today. Also do another round of
copy-editing, and fix up remaining FIXME items.
http://git.postgresql.org/pg/commitdiff/bfc7f5dd5dc641b475c27b872d6df21c20c75af1

- Document use of Subject Alternative Names in SSL server
certificates. Commit acd08d764 did not bother with updating the
documentation.
http://git.postgresql.org/pg/commitdiff/0625dbb0b96e2ecd557eb5bcdc458679123951db

- Cope with Readline's failure to track SIGWINCH events outside of
input. It emerges that libreadline doesn't notice terminal window
size change events unless they occur while collecting input. This
is easy to stumble over if you resize the window while using a pager
to look at query output, but it can be demonstrated without any
pager involvement. The symptom is that queries exceeding one line
are misdisplayed during subsequent input cycles, because libreadline
has the wrong idea of the screen dimensions. The safest, simplest
way to fix this is to call rl_reset_screen_size() just before
calling readline(). That causes an extra ioctl(TIOCGWINSZ) for
every command; but since it only happens when reading from a tty,
the performance impact should be negligible. A more valid objection
is that this still leaves a tiny window during entry to readline()
wherein delivery of SIGWINCH will be missed; but the practical
consequences of that are probably negligible. In any case, there
doesn't seem to be any good way to avoid the race, since readline
exposes no functions that seem safe to call from a generic signal
handler --- rl_reset_screen_size() certainly isn't. It turns out
that we also need an explicit rl_initialize() call, else
rl_reset_screen_size() dumps core when called before the first
readline() call. rl_reset_screen_size() is not present in old
versions of libreadline, so we need a configure test for that.
(rl_initialize() is present at least back to readline 4.0, so we
won't bother with a test for it.) We would need a configure test
anyway since libedit's emulation of libreadline doesn't currently
include such a function. Fortunately, libedit seems not to have any
corresponding bug. Merlin Moncure, adjusted a bit by me
http://git.postgresql.org/pg/commitdiff/2ec477dc8108339dcb6bb944fa93d19cafb6fff7

- Fix improper initialization order for readline. Turns out we must
set rl_basic_word_break_characters *before* we call rl_initialize()
the first time, because it will quietly copy that value elsewhere
--- but only on the first call. (Love these undocumented
dependencies.) I broke this yesterday in commit 2ec477dc8108339d;
like that commit, back-patch to all active branches. Per report
from Pavel Stehule.
http://git.postgresql.org/pg/commitdiff/aee7705be5b75d8e7873a32c4a0dd0afe1ae5928

- Adjust behavior of single-user -j mode for better initdb error
reporting. Previously, -j caused the entire input file to be read
in and executed as a single command string. That's undesirable, not
least because any error causes the entire file to be regurgitated as
the "failing query". Some experimentation suggests a better rule:
end the command string when we see a semicolon immediately followed
by two newlines, ie, an empty line after a query. This serves
nicely to break up the existing examples such as
information_schema.sql and system_views.sql. A limitation is that
it's no longer possible to write such a sequence within a string
literal or multiline comment in a file meant to be read with -j; but
there are no instances of such a problem within the data currently
used by initdb. (If someone does make such a mistake in future,
it'll be obvious because they'll get an unterminated-literal or
unterminated-comment syntax error.) Other than that, there shouldn't
be any negative consequences; you're not forced to end statements
that way, it's just a better idea in most cases. In passing, remove
src/include/tcop/tcopdebug.h, which is dead code because it's not
included anywhere, and hasn't been for more than ten years. One of
the debug-support symbols it purported to describe has been
unreferenced for at least the same amount of time, and the other is
removed by this commit on the grounds that it was useless: forcing
-j mode all the time would have broken initdb. The lack of
complaints about that, or about the missing inclusion, shows that no
one has tried to use TCOP_DONTUSENEWLINE in many years.
http://git.postgresql.org/pg/commitdiff/66d947b9d302f1fd6de3d156e6ec61f52e1dc2cb

- Use just one standalone-backend session for initdb's post-bootstrap
steps. Previously, each subroutine in initdb fired up its own
standalone backend session. Over time we'd grown as many as fifteen
of these sessions, and the cumulative startup and shutdown work for
them was getting pretty noticeable. Combining things so that all
these steps share a single backend session cuts a good 10% off the
total runtime of initdb, more if you're not fsync'ing. The main
stumbling block to doing this before was that some of the sessions
were run with -j and some not. The improved definition of -j mode
implemented by my previous commit makes it possible to fix that by
running all the post-bootstrap steps with -j; we just have to use
double instead of single newlines to end command strings. (This is
only absolutely necessary around the VACUUM and CREATE DATABASE
steps, since those can't be run in a transaction block. But it
seems best to make them all use double newlines so that the commands
remain separate for error-reporting purposes.) A minor disadvantage
is that since initdb can't tell how much of its output the backend
has executed, we can no longer have the per-step progress reporting
initdb used to print. But things are fast enough nowadays that
that's not really all that useful anyway. In passing, add more
const decoration to some of the static arrays in initdb.c.
http://git.postgresql.org/pg/commitdiff/c4a8812cf64b142685e39a69694c5276601f40e4

- Remove unreferenced function declarations. datapagemap_create() and
datapagemap_destroy() were declared extern, but they don't actually
exist anywhere. Per YUriy Zhuravlev and Michael Paquier.
http://git.postgresql.org/pg/commitdiff/3d0c50ffa0bdb683c28bfe0e79d23d87111da2aa

- Adopt a more compact, less error-prone notation for tab completion
code. Replace tests like else if (pg_strcasecmp(prev4_wd, "CREATE")
== 0 && pg_strcasecmp(prev3_wd, "TRIGGER") == 0 &&
(pg_strcasecmp(prev_wd, "BEFORE") == 0 || pg_strcasecmp(prev_wd,
"AFTER") == 0)) with new notation like this: else if
(TailMatches4("CREATE", "TRIGGER", MatchAny, "BEFORE|AFTER")) In
addition, provide some macros COMPLETE_WITH_LISTn() to reduce the
amount of clutter needed to specify a small number of predetermined
completion alternatives. This makes the code substantially more
compact: tab-complete.c gets over a thousand lines shorter in this
patch, despite the addition of a couple of hundred lines of
infrastructure for the new notations. The new way of specifying
match rules seems a whole lot more readable and less error-prone,
too. There's a lot more that could be done now to make matching
faster and more reliable; for example I suspect that most of the
TailMatches() rules should now be Matches() rules. That would allow
them to be skipped after a single integer comparison if there aren't
the right number of words on the line, and it would reduce the risk
of unintended matches. But for now, (mostly) refrain from reworking
any match rules in favor of just converting what we've got into the
new notation. Thomas Munro, reviewed by Michael Paquier, some
adjustments by me
http://git.postgresql.org/pg/commitdiff/d37b816dc9e8f976c8913296781e08cbd45c5af1

- Add missing COSTS OFF to EXPLAIN commands in rowsecurity.sql.
Commit e5e11c8cc added a bunch of EXPLAIN statements without COSTS
OFF to the regression tests. This is contrary to project policy
since it results in unnecessary platform dependencies in the output
(it's just luck that we didn't get buildfarm failures from it). Per
gripe from Mike Wilson.
http://git.postgresql.org/pg/commitdiff/654218138b819df66c1b90d39a12ca6a75b9ff65

- Teach psql's tab completion to consider the entire input string. Up
to now, the tab completion logic has only examined the last few
words of the current input line; "last few" being originally as few
as four words, but lately up to nine words. Furthermore, it only
looked at what libreadline considers the current line of input,
which made it rather myopic if you split your command across lines.
This was tolerable, sort of, so long as the match patterns were only
designed to consider the last few words of input; but with the
recent addition of HeadMatches() and Matches() matching rules, we
really have to do better if we want those to behave sanely. Hence,
change the code to break the entire line down into words, and to
include any previous lines in the command buffer along with the
active readline input buffer. This will be a little bit slower than
the previous coding, but some measurements say that even a query of
several thousand characters can be parsed in a hundred or so
microseconds on modern machines; so it's really not going to be
significant for interactive tab completion. To reduce the cost
some, I arranged to avoid the per-word malloc calls that used to
occur: all the words are now kept in one malloc'd buffer.
http://git.postgresql.org/pg/commitdiff/d854118c8df8c413d069f7e88bb01b9e18e4c8ed

- Remove silly completion for "DELETE FROM tabname ...". psql offered
USING, WHERE, and SET in this context, but SET is not a valid
possibility here. Seems to have been a thinko in commit
f5ab0a14ea83eb6c which added DELETE's USING option.
http://git.postgresql.org/pg/commitdiff/99ccb2309263183f0f3d838b79f3e07ad8cc6a63

Stephen Frost pushed:

- Collect the global OR of hasRowSecurity flags for plancache We carry
around information about if a given query has row security or not to
allow the plancache to use that information to invalidate a planned
query in the event that the environment changes. Previously, the
flag of one of the subqueries was simply being copied into place to
indicate if the query overall included RLS components. That's wrong
as we need the global OR of all subqueries. Fix by changing the
code to match how fireRIRules works, which is results in OR'ing all
of the flags. Noted by Tom. Back-patch to 9.5 where RLS was
introduced.
http://git.postgresql.org/pg/commitdiff/e5e11c8cca7ae298895430102217fa6d77cfb2a3

- Improve CREATE POLICY documentation Clarify that SELECT policies are
now applied when SELECT rights are required for a given query, even
if the query is an UPDATE or DELETE query. Pointed out by Noah.
Additionally, note the risk regarding concurrently open transactions
where a relation which controls access to the rows of another
relation are updated and the rows of the primary relation are also
being modified. Pointed out by Peter Geoghegan. Back-patch to 9.5.
http://git.postgresql.org/pg/commitdiff/43cd468cf01007f39312af05c4c92ceb6de8afd8

Robert Haas pushed:

- Provide a way to predefine LWLock tranche IDs. It's a bit
cumbersome to use LWLockNewTrancheId(), because the returned value
needs to be shared between backends so that each backend can call
LWLockRegisterTranche() with the correct ID. So, for built-in
tranches, use a hard-coded value instead. This is motivated by an
upcoming patch adding further built-in tranches. Andres Freund and
Robert Haas
http://git.postgresql.org/pg/commitdiff/3fed417452b226d9bd85a3a54d7056b06eb14897

- Move buffer I/O and content LWLocks out of the main tranche. Move
the content lock directly into the BufferDesc, so that locking and
pinning a buffer touches only one cache line rather than two.
Adjust the definition of BufferDesc slightly so that this doesn't
make the BufferDesc any larger than one cache line (at least on
platforms where a spinlock is only 1 or 2 bytes). We can't fit the
I/O locks into the BufferDesc and stay within one cache line, so
move those to a completely separate tranche. This leaves a
relatively limited number of LWLocks in the main tranche, so
increase the padding of those remaining locks to a full cache line,
rather than allowing adjacent locks to share a cache line, hopefully
reducing false sharing. Performance testing shows that these
changes make little difference on laptop-class machines, but help
significantly on larger servers, especially those with more than 2
sockets. Andres Freund, originally based on an earlier patch by
Simon Riggs. Review and cosmetic adjustments (including heavy
rewriting of the comments) by me.
http://git.postgresql.org/pg/commitdiff/6150a1b08a9fe7ead2b25240be46dddeae9d98e1

- Teach mdnblocks() not to create zero-length files. It's entirely
surprising that mdnblocks() has the side effect of creating new
files on disk, so let's make it not do that. One consequence of the
old behavior is that, if running on a damaged cluster that is
missing a file, mdnblocks() can recreate the file and allow a
subsequent _mdfd_getseg() for a higher segment to succeed. This
happens because, while mdnblocks() stops when it finds a segment
that is shorter than 1GB, _mdfd_getseg() has no such check, and thus
the empty file created by mdnblocks() can allow it to continue its
traversal and find higher-numbered segments which remain. It might
be a good idea for _mdfd_getseg() to actually verify that each
segment it finds is exactly 1GB before proceeding to the next one,
but that would involve some additional system calls, so for now I'm
just doing this much. Patch by me, per off-list analysis by Kevin
Grittner and Rahila Syed. Review by Andres Freund.
http://git.postgresql.org/pg/commitdiff/049469e7e7cfe0c69d30385952e2576b63230283

- Mark CHECK constraints declared NOT VALID valid if created with
table. FOREIGN KEY constraints have behaved this way for a long
time, but for some reason the behavior of CHECK constraints has been
inconsistent up until now. Amit Langote and Amul Sul, with assorted
tweaks by me.
http://git.postgresql.org/pg/commitdiff/f27a6b15e6566fba7748d0d9a3fc5bcfd52c4a1b

- Speed up CREATE INDEX CONCURRENTLY's TID sort. Encode TIDs as
64-bit integers to speed up comparisons. This seems to speed things
up on all platforms, but is even more beneficial when 8-byte
integers are passed by value. Peter Geoghegan. Design suggestions
and review by Tom Lane. Review also by Simon Riggs and by me.
http://git.postgresql.org/pg/commitdiff/b648b70342fbe712383e8cd76dc8f7feaba9aaa3

- Fix typo in comment. Amit Langote
http://git.postgresql.org/pg/commitdiff/9a51698bae86f748279ecedcae018925b5af5b2d

- Fix copy-and-paste error in logical decoding callback. This could
result in the error context misidentifying where the error actually
occurred. Craig Ringer
http://git.postgresql.org/pg/commitdiff/4496226782c47e78b428babbcc16dec4f7329f2b

- Fix TupleQueueReaderNext not to ignore its nowait argument. This
was a silly goof on my (rhaas's) part. Report and fix by Rushabh
Lathia.
http://git.postgresql.org/pg/commitdiff/2bdfcb52c5d1446a1f19cc8bf16d44911658bcac

- Remove duplicate word. Kyotaro Horiguchi
http://git.postgresql.org/pg/commitdiff/6e7b335930200f71115fccd4903d04fe4de42021

- pgbench: Change terminology from "threshold" to "parameter". Per a
recommendation from Tomas Vondra, it's more helpful to refer to the
value that determines how skewed a Gaussian or exponential
distribution is as a parameter rather than a threshold. Since it's
not quite too late to get this right in 9.5, where it was
introduced, back-patch this. Most of the patch changes only
comments and documentation, but a few pgbench messages are altered
to match. Fabien Coelho, reviewed by Michael Paquier and by me.
http://git.postgresql.org/pg/commitdiff/3c7042a7d7871b47dae3c9777c8020e41dedee89

Teodor Sigaev pushed:

- Cube extension kNN support. Introduce distance operators over
cubes: <#> taxicab distance, <-> euclidean distance, and <=>
Chebyshev distance. Also add kNN support of those distances in GiST
opclass. Author: Stas Kelvich
http://git.postgresql.org/pg/commitdiff/33bd250f6c4cc309f4eeb657da80f1e7743b3e5c

- Allow to omit boundaries in array subscript. Permit omitting lower,
upper, or both boundaries in array subscript for selecting slice of
array. Author: YUriy Zhuravlev
http://git.postgresql.org/pg/commitdiff/9246af6799819847faa33baf441251003acbb8fe

- Revert 9246af6799819847faa33baf441251003acbb8fe because I miss too
much. Patch is returned to commitfest process.
http://git.postgresql.org/pg/commitdiff/bbbd807097092c7f292872e7da02eee35d67e54b

Peter Eisentraut pushed:

- Fix whitespace
http://git.postgresql.org/pg/commitdiff/529fd74c090c6ea4237631522277441bc3ff657f

- psql: Review of new help output strings
http://git.postgresql.org/pg/commitdiff/69e7c44fc66a1d0dcc6021e696d57e200a189888

== Rejected Patches (for now) ==

No one was disappointed this week :-)

== Pending Patches ==

Amit Langote sent in another revision of a patch to fix an error in
find_inheritance_children().

Craig Ringer sent in another revision of a patch to add logical
decoding for sequence advances.

Tomas Vondra sent in a patch to postpone building buckets to the end
of Hash (in HashJoin).

Aleksander Alekseev sent in another revision of a patch to speed up
identification of resource owners, one outcome of which will be to
speed up accesses to tables with many partitions.

Daniel Verité and Pavel Stěhule traded patches to implement
\crosstabview in psql.

Michael Paquier sent in three more revisions of a patch to extend
pgbench expressions with functions.

Andreas Karlsson sent in a patch to make it possible to cancel a query
which is running the crypt() function with the bf or xdes hashing
algorithm by adding a CHECK_FOR_INTERRUPTS() call every round.

Andres Freund sent in a patch to make a faster PageIsVerified() for
the all zeroes case and improve scalability of md.c for large
relations.

David Rowley sent in three more revisions of a patch to improve for
joins where outer side is unique.

Aleksander Alekseev sent in a patch to ensure that the initial sizes
of the PROCLOCK and LOCK hash tables be the same as max_size, saving
time that would have been spent expanding them.

Haribabu Kommi sent in another revision of a patch to add parallel
aggregation.

Tomas Vondra sent in a patch to add a bloom filter in Hash Joins with
batches.

Haribabu Kommi sent in another revision of a patch to add a
pg_hba_lookup() function to get all matching pg_hba.conf entries.

Fabien COELHO sent in another revision of a patch to add pgbench stats
per script, etc.

Haribabu Kommi sent in another revision of a patch to implement
multi-tenancy with RLS.

Jesper Pedersen sent in another revision of a patch to add new
LWLOCK_STATS statistics.

Tatsuro Yamada sent in a patch to fix a typo in
regress/sql/privileges.sql.

David Rowley sent in another revision of a patch to implement
combining aggregates, useful in parallelizing aggregation.

SAWADA Masahiko sent in another revision of a patch to support for N
synchronous standby servers for N>1.

Amit Langote sent in a patch to fix a comment typo in pg_upgrade.c.

Aleksander Alekseev sent in a patch to fix lock contention for
HASHHDR.mutex.

Michael Paquier sent in a patch to fix a psql call in pg_upgrade.

SAWADA Masahiko sent in another revision of a patch to add a "frozen"
bit to the visibility map.

Peter Geoghegan sent in another revision of a patch to reuse
abbreviated keys during second pass of ordered [set] aggregates.

Ashutosh Bapat and Robert Haas traded patches to allow foreign scans
to be sorted on the remote side.

Alexander Korotkov sent in a patch to improve statistics for array
types.

Michael Paquier sent in a patch to add a system view and function to
report WAL receiver.

Robert Haas sent in another revision of a patch to implement parallel
joins, and better parallel explain.

Artur Zakirov sent in a patch to add fuzzy substring searching with
the pg_trgm extension.

David Rowley sent in a patch to wrap error code paths in unlikely().

Mithun Cy sent in a patch to cache data in GetSnapshotData().

Pavel Stěhule sent in another revision of a patch to add a
pg_size_bytes() to transform human-readable byte sizes into bytes.

Michael Paquier sent in another revision of a patch to reduce some
unneeded WAL logging in hot standby.

Browse pgsql-announce by date

  From Date Subject
Next Message Albe Laurenz 2015-12-21 11:19:31 oracle_fdw 1.3.0 released
Previous Message Marko Kreen 2015-12-18 19:16:38 PgBouncer 1.7