== PostgreSQL Weekly News - January 01 2017 ==
== PostgreSQL Product News ==
pgpool-II Pgpool-II 3.6.1, 3.5.5, 3.4.9, 3.3.13, 3.2.18 and 3.1.21
released. Pgpool-II 3.1.21 is the final release of the 3.1.x series.
PL/Proxy 2.7, a database partitioning system implemented as PL language, released.
== PostgreSQL Local ==
PGConf India 2017 will be on March 2-3, 2017 in Bengaluru, Karnataka.
PostgreSQL(at)SCaLE will take place on March 2-3, 2017, at Pasadena Convention
Center, as part of SCaLE 15X.
PgConf.Russia 2017 will take place on 15-17 March 2017 in Moscow.
PGDay Asia 2017 will be held March 17-18 in Singapore.
The CfP closes January 16, 2017.
Nordic PGDay 2017 will be held in Stockholm, Sweden, at the Sheraton
Hotel, on March 21, 2017. The CfP is open until January 9, 2017.
pgDay Paris 2017 will be held in Paris, France on March 23, 2017.
The CfP is open until January 9, 2017.
PGCon 2017 will take place in Ottawa on 23-26 May. Proposals are due by
19 Jan 2017.
== 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)
== Applied Patches ==
Tom Lane pushed:
- Remove triggerable Assert in hashname(). hashname() asserted that the key
string it is given is shorter than NAMEDATALEN. That should surely always be
true if the input is in fact a regular value of type "name". However, for
reasons of coding convenience, we allow plain old C strings to be treated as
"name" values in many places. Some SQL functions accept arbitrary "text"
inputs, convert them to C strings, and pass them otherwise-untransformed to
syscache lookups for name columns, allowing an overlength input value to
trigger hashname's Assert. This would be a DOS problem, except that it only
happens in assert-enabled builds which aren't recommended for production. In
a production build, you'll just get a name lookup error, since regardless of
the hash value computed by hashname, the later equality comparison checks
can't match. Likewise, if the catalog lookup is done by seqscan or indexscan
searches, there will just be a lookup error, since the name comparison
functions don't contain any similar length checks, and will see an overlength
input as unequal to any stored entry. After discussion we concluded that we
should simply remove this Assert. It's inessential to hashname's own
functionality, and having such an assertion in only some paths for name lookup
is more of a foot-gun than a useful check. There may or may not be a case for
the affected callers to do something other than let the name lookup fail, but
we'll consider that separately; in any case we probably don't want to change
such behavior in the back branches. Per report from Tushar Ahuja. Back-patch
to all supported branches. Report:
- Fix interval_transform so it doesn't throw away non-no-op casts.
interval_transform() contained two separate bugs that caused it to sometimes
mistakenly decide that a cast from interval to restricted interval is a no-op
and throw it away. First, it was wrong to rely on dt.h's field type macros to
have an ordering consistent with the field's significance; in one case they do
not. This led to mistakenly treating YEAR as less significant than MONTH, so
that a cast from INTERVAL MONTH to INTERVAL YEAR was incorrectly discarded.
Second, fls(1<<k) produces k+1 not k, so comparing its output directly to
SECOND was wrong. This led to supposing that a cast to INTERVAL MINUTE was
really a cast to INTERVAL SECOND and so could be discarded. To fix, get rid
of the use of fls(), and make a function based on intervaltypmodout to produce
a field ID code adapted to the need here. Per bug #14479 from Piotr
Stefaniak. Back-patch to 9.2 where transform functions were introduced,
because this code was born broken. Discussion:
- Remove manual breaks in NodeTag assignments to fix duplicate tag numbers.
Commit f0e44751d added new node tags at a place in the tag numbering where
there was no daylight left before the next hard-coded number, resulting in
some duplicate tag assignments. This doesn't seem to have caused any big
problem so far, but it's surely trouble waiting to happen. We could adjust
the manually assigned breakpoints to make more room, but that just leaves the
same hazard waiting to strike again in future. What seems like a better idea
is to get rid of the manual assignments and leave NodeTags to be automatically
assigned, consecutively from one on up. This means that any change in the tag
list forces a backend-wide recompile, but realistically that's usually needed
anyway. Discussion: https://email@example.com
- Fix unstable regression test results. Commit 2ac3ef7a0 added a query with an
underdetermined output row order; it has failed multiple times in the
buildfarm since then. Add an ORDER BY to fix. Also, don't rely on a DROP
CASCADE to drop in a well-determined order; that hasn't failed yet but I don't
trust it much, and we're not saving any typing by using CASCADE anyway.
- Avoid assuming that instr_time == struct timeval in pgbench logging. This
code was presuming undue familiarity with the contents of the instr_time
struct. That was already broken on Windows, and it's about to get broken on
most other platforms as well. The simplest solution that preserves the
current output definition is to just do our own gettimeofday() call here.
Realistically, the extra cost is probably negligible in comparison to
everything else that's going on in a pgbench transaction, so it's not worth
sweating over. On Windows, the precision delivered by gettimeofday() is lower
than one could wish, but this is still a big improvement over printing zeroes,
as the code did before. Discussion:
Magnus Hagander pushed:
- Fix typo comments. Erik Rijkers
- Don't rename .partial files in pg_receivexlog if an error occured. In 56c7d8d
the behavior to keep .partial segments around (considered corrupt) in case an
connection failure occurs was accidentally removed. This would lead to an
incomplete segment being considered complete. Author: Michael Paquier
Andrew Dunstan pushed:
- Explain unaccounted for space in pgstattuple. In addition to space accounted
for by tuple_len, dead_tuple_len and free_space, the table_len includes page
overhead, the item pointers table and padding bytes. Backpatch to live
Peter Eisentraut pushed:
- Make more use of RoleSpec struct. Most code was casting this through a
generic Node. By declaring everything as RoleSpec appropriately, we can
remove a bunch of casts and ad-hoc node type checking. Reviewed-by: Alvaro
- Expand ad-hoc unit abbreviations in function descriptions. There is no need
to use abbreviations here, so just write it out for consistency.
- Fix typo in comment
== Pending Patches ==
Pavan Deolasee sent in another revision of a patch to fix some issues in WARM.
Kyotaro HORIGUCHI sent in another revision of a patch to clean up negative cache
of pg_statistic when dropping a relation and clean up negative cache of pg_class
when dropping a schema.
Kyotaro HORIGUCHI sent in another revision of a patch to redesign psql's tab
completion and use that infrastructure to implement IF (NOT) EXISTS completion.
Ashutosh Bapat sent in another revision of a patch to imlement partition-wise
join for join between (declaratively) partitioned tables.
Amit Kapila sent in another revision of a patch to implement WAL for hash
Dmitry Dolgov sent in another revision of a patch to implement generic type
Amit Langote sent in five more revisions of a patch to implement declarative
Amit Langote sent in a patch to fix an infelicity between OID columns and table
Mithun Cy sent in two more revisions of a patch to cache hash index meta pages.
Etsuro Fujita sent in another revision of a patch to push more FULL joins to the
Amit Kapila sent in another revision of a patch to implement parallel index
Nikita Glukhov sent in another revision of a patch to implement recursive
Peter Eisentraut sent in another revision of a patch to add ICU support.
Rafia Sabih sent in another revision of a patch to implement parallel index-only
Amit Kapila sent in a patch to parallelize queries containing subplans.
Thomas Munro sent in a patch to fix dsa tranche registration.
Michaël Paquier sent in two more revisions of a patch to enable pg_receivelog to
enable adjusting compression for tar format.
Peter Eisentraut sent in a patch to add some information about the systemd
RemoveIPC issue to the documentation.
Ideriha Takeshi sent in a patch to add a DECLARE STATEMENT command in ECPG.
Craig Ringer sent in another revision of a patch to introduce
txid_status(bigint) to get status of an xact.
Thomas Munro sent in another revision of a patch to allow measuring replay lag.
Claudio Freire sent in another revision of a patch to enable VACUUM to use more
than 1GB of work mem.
Craig Ringer sent in two revisions of a patch to fix a minor race between
commit_ts slru truncation and lookups.
Tom Lane sent in another revision of a patch to improve RLS planning.
Álvaro Herrera sent in two revisions of a patch to rewrite
Álvaro Herrera sent in two more revisions of a patch to implement indirect
Vik Fearing sent in a patch to change the encoding of the French translation
encoding from ISO-8859-1 to UTF-8.
Jim Nasby sent in another revision of a patch to increase pltcl test coverage.
Peter Eisentraut sent in another revision of a patch to add background sessions.
Tom Lane sent in a patch to eliminate gettimeofday() on platforms where better
options are available.
Haribabu Kommi sent in a patch to implement a columnar storage extension.
Fabien COELHO sent in another revision of a patch to fix some pg_stat_statements
query normalization issues with combined queries.
Yury Zhuravlev sent in another revision of a patch to implement a CMake-based
Petr Jelínek sent in another revision of a patch to implement logical
Michaël Paquier sent in another revision of a patch to fix a potential data loss
of 2PC files.
Fabrízio de Royes Mello sent in another revision of a patch to implement COMMENT
ON CURRENT DATABASE.
Amit Kapila sent in another revision of a patch to speed up clog Access by
increasing CLOG buffers.
Amit Kapila sent in a patch to fix an issue where group clear xid can leak
Peter Eisentraut sent in a patch to generate fmgr prototypes automatically.
Peter Eisentraut sent in another revision of a patch to implement sequence data
Peter Eisentraut sent in a patch to put "use strict" in all Perl programs.
Peter Eisentraut sent in a patch to create the INSTALL file via XSLT and Pandoc.
This is one more step on the way to replacing the old tool chain of jade and
Peter Eisentraut sent in a patch to automatically casts the result of copyNode()
back to the input type, if the compiler supports something like typeof().
Stas Kelvich sent in another revision of a patch to implement logical decoding
of two-phase transactions.
Magnus Hagander sent in another revision of a patch to support huge pages on
Peter Eisentraut sent in another revision of a patch to add identity columns per
the SQL standard.
Magnus Hagander sent in a patch to change the backup and replication defaults to
something more useful.
Peter Eisentraut sent in another revision of a patch to allow DROP FUNCTION to
drop multiple functions in one command.
Peter Eisentraut sent in a patch to implement safer node casting.
Magnus Hagander sent in another revision of a patch to make streaming the
David Fetter sent in another revision of a patch to add a hook which allows
disabling simple UPDATEs and DELETEs without a WHERE clause.
Thomas Munro sent in a patch to add an isolation test for SERIALIZABLE READ ONLY
Pavel Stěhule sent in a patch to add some runtime checks to PL/pgsql.
Simon Riggs sent in another revision of a patch to make some changes to the
pgsql-announce by date
|Next:||From: Euler Taveira||Date: 2017-01-04 12:58:12|
|Subject: pgquarrel 0.2.0 released|
|Previous:||From: Marko Kreen||Date: 2016-12-27 14:00:45|
|Subject: PL/Proxy 2.7|