]> granicus.if.org Git - postgresql/log
postgresql
7 years agoUse CallerFInfoFunctionCall with btree_gist for numeric types
Andrew Dunstan [Tue, 21 Mar 2017 13:12:46 +0000 (09:12 -0400)]
Use CallerFInfoFunctionCall with btree_gist for numeric types

None of the existing types actually need to use this mechanism, but this
will allow support for enum types which will need it. A separate patch
will adjust the varlena types support for consistency.

Reviewed by Tom Lane and Anastasia Lubennikova

Discussion:  http://postgr.es/m/27220.1478360811@sss.pgh.pa.us

7 years agoAdd a pg_recvlogical wrapper to PostgresNode
Simon Riggs [Tue, 21 Mar 2017 14:04:49 +0000 (14:04 +0000)]
Add a pg_recvlogical wrapper to PostgresNode

Allows testing of logical decoding using SQL interface and/or pg_recvlogical
Most logical decoding tests are in contrib/test_decoding. This module
is for work that doesn't fit well there, like where server restarts
are required.

Craig Ringer

7 years agoDon't scan partitioned tables.
Robert Haas [Tue, 21 Mar 2017 13:48:04 +0000 (09:48 -0400)]
Don't scan partitioned tables.

Partitioned tables do not contain any data; only their unpartitioned
descendents need to be scanned.  However, the partitioned tables still
need to be locked, even though they're not scanned.  To make that
work, Append and MergeAppend relations now need to carry a list of
(unscanned) partitioned relations that must be locked, and InitPlan
must lock all partitioned result relations.

Aside from the obvious advantage of avoiding some work at execution
time, this has two other advantages.  First, it may improve the
planner's decision-making in some cases since the empty relation
might throw things off.  Second, it paves the way to getting rid of
the storage for partitioned tables altogether.

Amit Langote, reviewed by me.

Discussion: http://postgr.es/m/6837c359-45c4-8044-34d1-736756335a15@lab.ntt.co.jp

7 years agoFix support for some operators (&<, &>, $<|, |&>) in box operator class
Teodor Sigaev [Tue, 21 Mar 2017 13:23:10 +0000 (16:23 +0300)]
Fix support for some operators (&<, &>, $<|, |&>) in box operator class
of SP-GiST.

Bug exists since initial commit of box opclass for SP-GiST,
so backpath to 9.6

Author: Nikita Glukhov with minor editorization of tests by me
Reviewed-by: Kyotaro Horiguchi, Anastasia Lubennikova
https://commitfest.postgresql.org/13/981/

7 years agoAdd a direct function call mechanism using the caller's context.
Andrew Dunstan [Tue, 21 Mar 2017 12:57:46 +0000 (08:57 -0400)]
Add a direct function call mechanism using the caller's context.

The current DirectFunctionCall functions use NULL as the flinfo in
initializing the FunctionCallInfoData for the call. That means the
called function has no fn_mcxt or fn_extra to work with, and attempting
to do so will result in an access violation. These functions instead use
the provided flinfo, which will usually be the caller's own flinfo. The
caller needs to ensure that it doesn't use the fn_extra in way that is
incompatible with the way the called function will use it. The called
function should not rely on anything else in the provided context, as it
will be relevant to the caller, not the callee.

Original code from Tom Lane.

Discussion: https://postgr.es/m/db2b70a4-78d7-294a-a315-8e7f506c5978@2ndQuadrant.com

7 years agodoc: Improve markup
Peter Eisentraut [Tue, 21 Mar 2017 12:33:32 +0000 (08:33 -0400)]
doc: Improve markup

7 years agodoc: clarify that function "ownership" that controls permission
Bruce Momjian [Tue, 21 Mar 2017 02:33:26 +0000 (22:33 -0400)]
doc:  clarify that function "ownership" that controls permission

It used to say the creation user.

Reported-by: Nathan Wagner
7 years agodoc: adjust 'Infinity' example to include minus
Bruce Momjian [Tue, 21 Mar 2017 02:22:11 +0000 (22:22 -0400)]
doc:  adjust 'Infinity' example to include minus

This clarifies that quoted infinity values must have the negative signs
inside single quotes.

Reported-by: Don Morrison
7 years agoAdd missing support for new node fields
Andrew Dunstan [Tue, 21 Mar 2017 01:50:53 +0000 (21:50 -0400)]
Add missing support for new node fields

Commit b6fb534f added two new node fields but neglected to add copy and
comparison support for them, Mea culpa, should have checked for that.

per buildfarm animals with -DCOPY_PARSE_PLAN_TREES

7 years agodoc: improve createdb example
Bruce Momjian [Tue, 21 Mar 2017 01:23:56 +0000 (21:23 -0400)]
doc:  improve createdb example

The previous example could error out due to encoding mismatches;  use
-T/template instead.

Reported-by: Jason O'Donnell
7 years agoForce the regression databases to have bytea_output set to hex
Andrew Dunstan [Mon, 20 Mar 2017 22:12:24 +0000 (18:12 -0400)]
Force the regression databases to have bytea_output set to hex

Even if the installation defaults to escape output, this makes
pg_regress make the setting hex, so that installcheck tests can pass in
such a setting.

Jeff Janes.

Discussion: http://postgr.es/m/CAMkU=1xivkTNeyCfzhwdHJ+VH5qpU+4gsipRNuEUbyQf+KN3Kw@mail.gmail.com

7 years agoAdd IF NOT EXISTS for CREATE SERVER and CREATE USER MAPPING
Andrew Dunstan [Mon, 20 Mar 2017 20:40:45 +0000 (16:40 -0400)]
Add IF NOT EXISTS for CREATE SERVER and CREATE USER MAPPING

There is still some inconsistency with the error messages surrounding
foreign servers. Some use the word "foreign" and some don't. My
inclination is to remove all such uses of "foreign" on the basis that
the  CREATE/ALTER/DROP SERVER commands don't use the word. However, that
is left for another day. In this patch I have kept to the existing usage
in the affected commands, which omits "foreign".

Anastasia Lubennikova, reviewed by Arthur Zakirov and Ashtosh Bapat.

Discussion: http://postgr.es/m/7c2ab9b8-388a-1ce0-23a3-7acf2a0ed3c6@postgrespro.ru

7 years agoUse a consistent error message style for user mappings.
Andrew Dunstan [Mon, 20 Mar 2017 20:01:45 +0000 (16:01 -0400)]
Use a consistent error message style for user mappings.

User mappings are essentially anonymous, so messages referring to "user
mapping foo on server bar" are wrong, and inconsistent with other error
messages referring to user mappings. To be consistent with existing use,
use "user mapping for foo on server bar" instead.

I dropped the noise word "user" from the original suggestion to be
consistent with other uses.

Discussion: http://postgr.es/m/56c6f8ab-b2d6-f1fa-deb0-1d18cf67f7b9@2ndQuadrant.com

7 years agoAnother fix for single-page hash index vacuum.
Robert Haas [Mon, 20 Mar 2017 19:55:27 +0000 (15:55 -0400)]
Another fix for single-page hash index vacuum.

The WAL consistency checking code needed to be updated for the new
page status bit, but that didn't get done previously.

Ashutosh Sharma, reviewed by Amit Kapila

Discussion: http://postgr.es/m/CAA4eK1LP_oz4EfMen14OjJuzN5CqPdfRkFFuA-MfkcfeE8zGyg@mail.gmail.com

7 years agoFixes for single-page hash index vacuum.
Robert Haas [Mon, 20 Mar 2017 19:49:09 +0000 (15:49 -0400)]
Fixes for single-page hash index vacuum.

Clear LH_PAGE_HAS_DEAD_TUPLES during replay, similar to what gets done
for btree.  Update hashdesc.c for xl_hash_vacuum_one_page.

Oversights in commit 6977b8b7f4dfb40896ff5e2175cad7fdbda862eb spotted
by Amit Kapila.  Patch by Ashutosh Sharma.

Bump WAL version.  The original patch to make hash indexes write-ahead
logged probably should have done this, and the single page vacuuming
patch probably should have done it again, but better late than never.

Discussion: http://postgr.es/m/CAA4eK1Kd=mJ9xreovcsh0qMiAj-QqCphHVQ_Lfau1DR9oVjASQ@mail.gmail.com

7 years agoAdd configure test to see if the C compiler has gcc-style computed gotos.
Tom Lane [Mon, 20 Mar 2017 17:35:21 +0000 (13:35 -0400)]
Add configure test to see if the C compiler has gcc-style computed gotos.

We'll need this for the upcoming patch to speed up expression evaluation.
Might as well push it now to see if it behaves sanely in the buildfarm.

Andres Freund

Discussion: https://postgr.es/m/20170320062511.hp5qeurtxrwsvfxr@alap3.anarazel.de

7 years agoAdd .gitignore for src/test/authentication/tmp_check.
Heikki Linnakangas [Mon, 20 Mar 2017 17:27:36 +0000 (18:27 +0100)]
Add .gitignore for src/test/authentication/tmp_check.

Michael Paquier

Discussion: https://www.postgresql.org/message-id/CAB7nPqRZ_LNTCJ7gGjE_SpRanGoALfTgsxdauNsKq%2BLBRH9fxg%40mail.gmail.com

7 years agoAdd missed "make clean" logic in src/interfaces/libpq/Makefile.
Tom Lane [Mon, 20 Mar 2017 16:51:45 +0000 (12:51 -0400)]
Add missed "make clean" logic in src/interfaces/libpq/Makefile.

Commit 818fd4a67 missed cleaning up the symlinks it added for various .c
files imported from src/port and src/common.  Neatnik-ishly make the
file lists in the "clean" target look exactly like the earlier lists of
what to symlink in.

7 years agoImprove regression test coverage for TID scanning.
Tom Lane [Mon, 20 Mar 2017 16:30:08 +0000 (12:30 -0400)]
Improve regression test coverage for TID scanning.

TidScan plan nodes were not systematically tested before.  These additions
raise the LOC coverage number for the basic regression tests from 52% to
92% in nodeTidscan.c, and from 60% to 93% in tidpath.c.

Andres Freund, tweaked a bit by me

Discussion: https://postgr.es/m/20170320062511.hp5qeurtxrwsvfxr@alap3.anarazel.de

7 years agoRevert unintentional change in increasing usage count during pin of buffers,
Teodor Sigaev [Mon, 20 Mar 2017 15:48:46 +0000 (18:48 +0300)]
Revert unintentional change in increasing usage count during pin of buffers,
this makes buffer access strategy have no effect.
Change was a part of commit 48354581a49c30f5757c203415aa8412d85b0f70 during 9.6
release cycle, so backpath to 9.6

Reported-by: Jim Nasby
Author: Alexander Korotkov
Reviewed-by: Jim Nasby, Andres Freund
https://commitfest.postgresql.org/13/1029/

7 years agopg_dump: Skip COLLATION-related regression tests
Stephen Frost [Sun, 19 Mar 2017 20:56:14 +0000 (16:56 -0400)]
pg_dump: Skip COLLATION-related regression tests

Not every platform supports non-default collations, as pointed out by
the buildfarm, so skip collation-related regression tests in pg_dump
when they aren't supported.

7 years agoUpdate obsolete comment
Magnus Hagander [Sun, 19 Mar 2017 16:06:44 +0000 (17:06 +0100)]
Update obsolete comment

Commit ff27db5d changed this function to no longer return the start
position, but forgot the comment.

7 years agodoc: Fix a few typos and awkward links
Peter Eisentraut [Sun, 19 Mar 2017 03:43:47 +0000 (23:43 -0400)]
doc: Fix a few typos and awkward links

7 years agoAvoid use of already-closed relcache entry.
Tom Lane [Sat, 18 Mar 2017 22:43:06 +0000 (18:43 -0400)]
Avoid use of already-closed relcache entry.

Oversight in commit 17f8ffa1e.  Per buildfarm member prion.

7 years agoFix REFRESH MATERIALIZED VIEW to report activity to the stats collector.
Tom Lane [Sat, 18 Mar 2017 21:49:06 +0000 (17:49 -0400)]
Fix REFRESH MATERIALIZED VIEW to report activity to the stats collector.

The non-concurrent code path for REFRESH MATERIALIZED VIEW failed to
report its updates to the stats collector.  This is bad since it means
auto-analyze doesn't know there's any work to be done.  Adjust it to
report the refresh as a table truncate followed by insertion of an
appropriate number of rows.

Since a matview could contain more than INT_MAX rows, change the
signature of pgstat_count_heap_insert() to accept an int64 rowcount.
(The accumulator it's adding into is already int64, but existing
callers could not insert more than a small number of rows at once,
so the argument had been declared just "int n".)

This is surely a bug fix, but changing pgstat_count_heap_insert()'s API
seems too risky for the back branches.  Given the lack of previous
complaints, I'm not sure it's a big enough problem to justify a kluge
solution that would avoid that.  So, no back-patch, at least for now.

Jim Mlodgenski, adjusted a bit by me

Discussion: https://postgr.es/m/CAB_5SRchSz7-WmdO5szdiknG8Oj_GGqJytrk1KRd11yhcMs1KQ@mail.gmail.com

7 years agodoc: Improve wording
Peter Eisentraut [Sat, 18 Mar 2017 21:40:47 +0000 (17:40 -0400)]
doc: Improve wording

Link to CREATE and ALTER ROLE consistently, instead of mixing CREATE
USER and ALTER ROLE.

7 years agodoc: Add markup
Peter Eisentraut [Sat, 18 Mar 2017 18:41:47 +0000 (14:41 -0400)]
doc: Add markup

7 years agodoc: Update compatibility claim
Peter Eisentraut [Sat, 18 Mar 2017 18:25:41 +0000 (14:25 -0400)]
doc: Update compatibility claim

Update outdated claim that TRUNCATE is a PostgreSQL extension.

Add cross-links between DELETE and TRUNCATE references pages.

7 years agodoc: Tweak reference page header style
Peter Eisentraut [Sat, 18 Mar 2017 18:17:28 +0000 (14:17 -0400)]
doc: Tweak reference page header style

Change the header style of references pages in HTML and PDF output to be
more like the old style under DSSSL.  In particular, the page should
start with a header containing the command name, instead of just "Name".

7 years agoAdjust number of tests for pg_dump 001_basic.pl
Stephen Frost [Sat, 18 Mar 2017 17:53:29 +0000 (13:53 -0400)]
Adjust number of tests for pg_dump 001_basic.pl

When removing a test, need to make sure the count of tests is adjusted
when it isn't calculated.

7 years agopg_dump: Remove "option requires an argument -- j" test
Stephen Frost [Sat, 18 Mar 2017 17:46:45 +0000 (13:46 -0400)]
pg_dump: Remove "option requires an argument -- j" test

This is really testing getopt more than pg_dump, and what getopt returns
exactly appears to differ based on platform, so remove this test.

Per buildfarm.

7 years agoImprove pg_dump regression tests and code coverage
Stephen Frost [Sat, 18 Mar 2017 17:18:24 +0000 (13:18 -0400)]
Improve pg_dump regression tests and code coverage

These improvements bring the lines-of-code coverage of pg_dump.c up to
87.7% (at least using LCOV 1.12, 1.11 seems to differ slightly).  Nearly
every function is covered, three of the four which aren't are only
called when talking to older PG instances.

There is more which can, and should, be done here to improve the
coverage but it's past time to see what the buildfarm thinks of this.

What has been added:

- Coverage for many more command-line options
- Use command_fails_like instead of command_exit_is
- Operator classes, operator families
- Text search configuration, templates, parsers, dictionaries
- FDWs, servers, foreign tables
- Materialized views
- Improved Publications / Subscriptions test (though this needs work,
  see PG10 open items and tests marked with XXX in 002_pg_dump.pl)
- Unlogged tables
- Partitioned tables
- Additional ACL testing for various object types

There is room for improvement, specifically:

- Various type-based option (alignment, storage, etc)
- Composite type collation
- Extra Procedural language functions (inline, validator)
- Different function options (SRF, Transform, config, security definer,
  cost, leakproof)
- OpClass options (default, storage, order by, recheck)
- OpFamily options (order by, recheck)
- Aggregate functions (combinefunc, serialfunc, deserialfunc, etc)
- Text Search parser 'headline'
- Text Search template 'init'
- FDW options (handler, validator, options)
- Server options (type, version, options)
- User mapping options
- Default ACLs for sequences, types
- Security labels
- View circular dependencies (last function that needs coverage)
- Toast table autovacuum options
- Replica identity options
- Independent indexes (plus marking them as clustered on)
- Deferrable / initially deferred constraints
- Independent domain constraints

There's bits of extension pg_dump'ing also not covered, but those will
need to go into test_pg_dump (such as having a filter for config
tables).

Last, but not least, this approximately halves the number of tests run
with 'ok()' by removing the ok()-based checking of if all runs are
covered by each test.  Instead, 002_pg_dump.pl will just exit out in
such a case (with a message in the log file).  In general, when adding
tests, cover all runs unless there is a very good reason not to (such as
adding a 'catch-all' case).  With these changes, the resulting output
and number of "tests" run is actually reduced.

7 years agodoc: Correct row count in table
Peter Eisentraut [Sat, 18 Mar 2017 13:42:26 +0000 (09:42 -0400)]
doc: Correct row count in table

The incorrect count causes FOP to error out.

7 years agoCreate and use wait events for read, write, and fsync operations.
Robert Haas [Sat, 18 Mar 2017 11:43:01 +0000 (07:43 -0400)]
Create and use wait events for read, write, and fsync operations.

Previous commits, notably 53be0b1add7064ca5db3cd884302dfc3268d884e and
6f3bd98ebfc008cbd676da777bb0b2376c4c4bfa, made it possible to see from
pg_stat_activity when a backend was stuck waiting for another backend,
but it's also fairly common for a backend to be stuck waiting for an
I/O.  Add wait events for those operations, too.

Rushabh Lathia, with further hacking by me.  Reviewed and tested by
Michael Paquier, Amit Kapila, Rajkumar Raghuwanshi, and Rahila Syed.

Discussion: http://postgr.es/m/CAGPqQf0LsYHXREPAZqYGVkDqHSyjf=KsD=k0GTVPAuzyThh-VQ@mail.gmail.com

7 years agoFix schedule of ecpg test files to only try two-phase commit test when possible.
Michael Meskes [Sat, 18 Mar 2017 09:35:14 +0000 (10:35 +0100)]
Fix schedule of ecpg test files to only try two-phase commit test when possible.

7 years agoFix WaitEventSetWait() to handle write-ready waits properly on Windows.
Tom Lane [Fri, 17 Mar 2017 18:58:06 +0000 (14:58 -0400)]
Fix WaitEventSetWait() to handle write-ready waits properly on Windows.

Windows apparently will not detect socket write-ready events unless a
preceding send attempt returned WSAEWOULDBLOCK.  In many usage patterns
that's satisfied by the caller of WaitEvenSetWait(), but not always.

Apply the same solution that we already had in pgwin32_select(), namely to
perform a dummy WSASend() call with len=0.  This will return WSAEWOULDBLOCK
if there's no buffer space (even though it could legitimately do nothing
and report success, which makes me a bit nervous about this solution;
but since it's been working fine in libpq, let's roll with it).

In passing, improve the comments about this in pgwin32_select(), and remove
duplicated code there.

Back-patch to 9.6 where WaitEventSetWait() was introduced.  We might need
to back-patch something similar into predecessor code.  But given the lack
of complaints so far, it's not clear that the case ever gets exercised
in the back branches, so I'm not going to expend effort on it right now.

This should resolve recurring failures on buildfarm member bowerbird,
which has been failing since 1e8a85009 went in.

Diagnosis and patch by Petr Jelinek, cosmetic adjustments by me.

Discussion: https://postgr.es/m/5b6a6d6d-fb45-0afb-2e95-5600063c3dbd@2ndquadrant.com

7 years agopageinspect: Add page_checksum function
Peter Eisentraut [Fri, 17 Mar 2017 13:49:10 +0000 (09:49 -0400)]
pageinspect: Add page_checksum function

Author: Tomas Vondra <tomas.vondra@2ndquadrant.com>
Reviewed-by: Ashutosh Sharma <ashu.coek88@gmail.com>
7 years agoRepair test for vacuum reltuples fix.
Andrew Gierth [Fri, 17 Mar 2017 14:35:54 +0000 (14:35 +0000)]
Repair test for vacuum reltuples fix.

Concurrent auto-analyze could be holding a snapshot, affecting the
removal of deleted row versions.  Remove the deletion to avoid this
happening.  Per buildfarm.

In passing, make the test independent of assumptions of physical row
order, just out of sheer paranoia.

7 years agoRename "pg_clog" directory to "pg_xact".
Robert Haas [Fri, 17 Mar 2017 13:46:58 +0000 (09:46 -0400)]
Rename "pg_clog" directory to "pg_xact".

Names containing the letters "log" sometimes confuse users into
believing that only non-critical data is present.  It is hoped
this renaming will discourage ill-considered removals of transaction
status data.

Michael Paquier

Discussion: http://postgr.es/m/CA+Tgmoa9xFQyjRZupbdEFuwUerFTvC6HjZq1ud6GYragGDFFgA@mail.gmail.com

7 years agoRemove dead link.
Robert Haas [Fri, 17 Mar 2017 13:32:34 +0000 (09:32 -0400)]
Remove dead link.

David Christensen

Discussion: http://postgr.es/m/82299377-1480-4439-9ABA-5828D71AA22E@endpoint.com

7 years agopageinspect: Add test for page_header function
Peter Eisentraut [Fri, 17 Mar 2017 13:23:39 +0000 (09:23 -0400)]
pageinspect: Add test for page_header function

7 years agoAdd TAP tests for password-based authentication methods.
Heikki Linnakangas [Fri, 17 Mar 2017 09:34:16 +0000 (11:34 +0200)]
Add TAP tests for password-based authentication methods.

Tests all combinations of users with MD5, plaintext and SCRAM verifiers
stored in pg_authid, with plain 'password', 'md5' and 'scram'
authentication methods.

Michael Paquier

7 years agoAllow plaintext 'password' authentication when user has a SCRAM verifier.
Heikki Linnakangas [Fri, 17 Mar 2017 09:33:27 +0000 (11:33 +0200)]
Allow plaintext 'password' authentication when user has a SCRAM verifier.

Oversight in the main SCRAM patch.

7 years agoFix and simplify check for whether we're running as Windows service.
Heikki Linnakangas [Fri, 17 Mar 2017 09:14:01 +0000 (11:14 +0200)]
Fix and simplify check for whether we're running as Windows service.

If the process token contains SECURITY_SERVICE_RID, but it has been
disabled by the SE_GROUP_USE_FOR_DENY_ONLY attribute, win32_is_service()
would incorrectly report that we're running as a service. That situation
arises, e.g. if postmaster is launched with a restricted security token,
with the "Log in as Service" privilege explicitly removed.

Replace the broken code with CheckProcessTokenMembership(), which does
this correctly. Also replace similar code in win32_is_admin(), even
though it got this right, for simplicity and consistency.

Per bug #13755, reported by Breen Hagan. Back-patch to all supported
versions. Patch by Takayuki Tsunakawa, reviewed by Michael Paquier.

Discussion: https://www.postgresql.org/message-id/20151104062315.2745.67143%40wrigleys.postgresql.org

7 years agoFix grammar.
Robert Haas [Fri, 17 Mar 2017 00:29:11 +0000 (20:29 -0400)]
Fix grammar.

This would have ben grammatical if the closing tag name were actually
part of the output, but of course it's not.

7 years agopsql: Add completion for \help DROP|ALTER
Peter Eisentraut [Thu, 16 Mar 2017 22:54:28 +0000 (18:54 -0400)]
psql: Add completion for \help DROP|ALTER

While \help CREATE would complete usefully, \help DROP or \help ALTER
did not complete anything.

Expand the list of things after CREATE and DROP to cover ALTER as well,
and use that for the ALTER completion.  Also make minor tweaks to that
list.

Also add support for completing \help on multiword commands like CREATE
TEXT SEARCH ...

Author: Andreas Karlsson <andreas@proxel.se>

7 years agoAvoid having vacuum set reltuples to 0 on non-empty relations in the
Andrew Gierth [Thu, 16 Mar 2017 22:28:03 +0000 (22:28 +0000)]
Avoid having vacuum set reltuples to 0 on non-empty relations in the
presence of page pins, which leads to serious estimation errors in the
planner.  This particularly affects small heavily-accessed tables,
especially where locking (e.g. from FK constraints) forces frequent
vacuums for mxid cleanup.

Fix by keeping separate track of pages whose live tuples were actually
counted vs. pages that were only scanned for freezing purposes.  Thus,
reltuples can only be set to 0 if all pages of the relation were
actually counted.

Backpatch to all supported versions.

Per bug #14057 from Nicolas Baccelli, analyzed by me.

Discussion: https://postgr.es/m/20160331103739.8956.94469@wrigleys.postgresql.org

7 years agoAvoid access to uninitialized memory in shared tidbitmap iteration.
Robert Haas [Thu, 16 Mar 2017 19:07:26 +0000 (15:07 -0400)]
Avoid access to uninitialized memory in shared tidbitmap iteration.

Primarily, this didn't work correctly when the tidbitmap ended up
empty.

Dilip Kumar, per a report from Emre Hasegeli

Discussion: http://postgr.es/m/CAFiTN-ujHFKb8WSLhK54rfqQT3r2yiPQOyeBrCDsA4p9Fwp_jw@mail.gmail.com

7 years agoAdd pg_ls_logdir() and pg_ls_waldir() functions.
Robert Haas [Thu, 16 Mar 2017 19:05:02 +0000 (15:05 -0400)]
Add pg_ls_logdir() and pg_ls_waldir() functions.

These functions are intended to be used by monitoring tools, and,
unlike pg_ls_dir(), access to them can be granted to non-superusers,
so that those monitoring tools can observe the principle of least
privilege.

Dave Page, revised by me, and also reviewed a bit by Thomas Munro.

Discussion: http://postgr.es/m/CA+OCxow-X=D2fWdKy+HP+vQ1LtrgbsYQ=CshzZBqyFT5jOYrFw@mail.gmail.com

7 years agopostgres_fdw: Push down FULL JOINs with restriction clauses.
Robert Haas [Thu, 16 Mar 2017 17:34:59 +0000 (13:34 -0400)]
postgres_fdw: Push down FULL JOINs with restriction clauses.

The previous deparsing logic wasn't smart enough to produce subqueries
when deparsing; make it smart enough to do that.  However, we only do
it that way when necessary, because it generates more complicated SQL
which will be harder for any humans reading the queries to understand.

Etsuro Fujita, reviewed by Ashutosh Bapat

Discussion: http://postgr.es/m/c449261a-b033-dc02-9254-2fe5b7044795@lab.ntt.co.jp

7 years agoFix ancient get_object_address_opf_member bug
Alvaro Herrera [Thu, 16 Mar 2017 15:51:08 +0000 (12:51 -0300)]
Fix ancient get_object_address_opf_member bug

The original coding was trying to use a TypeName as a string Value,
which doesn't work; an oversight in my commit a61fd533.  Repair.

Also, make sure we cover the broken case in the relevant test script.

Backpatch to 9.5.

Discussion: https://postgr.es/m/20170315151829.bhxsvrp75xdxhm3n@alvherre.pgsql

7 years agoBe more careful about signed vs. unsigned char
Stephen Frost [Thu, 16 Mar 2017 04:13:37 +0000 (00:13 -0400)]
Be more careful about signed vs. unsigned char

The buildfarm has reminded me that not all systems consider char to be
signed and we need to be explicit.  Adjust the various bits of mac8.c
for what we intend, mostly using casts to unsigned char as suggested by
Tom, and adjust the tests for valid input accordingly.  Explicitly make
the hexlookup table signed as it's useful to use -1 there to indicate an
invalid value.

7 years agoClean up overly paranoid checks in mac8.c
Stephen Frost [Thu, 16 Mar 2017 03:23:28 +0000 (23:23 -0400)]
Clean up overly paranoid checks in mac8.c

Andres' compiler points out, quite correctly, that there's no need for
some of the overly paranoid checks which were put into mac8.c.  Remove
those, as they're useless, add some comments and make a few other minor
improvements- reduce the size of hexlookup by making it a char array
instead of an int array, and pass in the ptr location directly instead
of making hex2_to_uchar re-calculate the location based off the offset
every time.

7 years agoPort single-page btree vacuum logic to hash indexes.
Robert Haas [Thu, 16 Mar 2017 02:18:56 +0000 (22:18 -0400)]
Port single-page btree vacuum logic to hash indexes.

This is advantageous for hash indexes for the same reasons it's good
for btrees: it accelerates space recycling, reducing bloat.

Ashutosh Sharma, reviewed by Amit Kapila and by me.  A bit of
additional hacking by me.

Discussion: http://postgr.es/m/CAE9k0PkRSyzx8dOnokEpUi2A-RFZK72WN0h9DEMv_ut9q6bPRw@mail.gmail.com

7 years agoSpecify bindir in pg_isolation_regress_installcheck.
Andres Freund [Thu, 16 Mar 2017 02:03:29 +0000 (19:03 -0700)]
Specify bindir in pg_isolation_regress_installcheck.

It appears dcae5faccab64776376d3 forgot to add it to
pg_isolation_regress_installcheck, while it was added to
pg_regress_installcheck.  It seems to so far have escaped notice,
because buildfarm animals requiring it, didn't actually use
pg_isolation_regress_installcheck anywhere - that changed with
60f826c5e6244, triggering failures on narwhal and frogmouth.

I've decided to not, for now at least, backpatch this, because the
relevant invocations look quite different in the back branches.  Seems
quite possible that we'll want to backport 60f826c5e6244 as a whole if
it proves stable.

Discussion: https://postgr.es/m/20170315174003.3dyl4teashdwgblh@alap3.anarazel.de

7 years agoSimplify publication/subscription tests a bit
Peter Eisentraut [Wed, 15 Mar 2017 20:52:12 +0000 (16:52 -0400)]
Simplify publication/subscription tests a bit

After testing RENAME TO, rename the object back.  This reduces the merge
mess when subsequent patches add test cases before or after the rename
test.

7 years agoFix typo
Peter Eisentraut [Wed, 15 Mar 2017 20:27:07 +0000 (16:27 -0400)]
Fix typo

7 years agoAdd more documentation and tests for publications
Peter Eisentraut [Wed, 15 Mar 2017 17:52:07 +0000 (13:52 -0400)]
Add more documentation and tests for publications

Add/correct documentation and add some tests related to how access
control around adding tables to publications works.

7 years agoRewrite async-connection loop in libpqwalreceiver.c, once again.
Tom Lane [Wed, 15 Mar 2017 17:26:26 +0000 (13:26 -0400)]
Rewrite async-connection loop in libpqwalreceiver.c, once again.

The original coding in commit 1e8a85009 didn't use PQconnectPoll per
spec, and while the rewrite in e434ad39a is closer, it still doesn't
guarantee to wait until the socket is read-ready or write-ready (as
appropriate) before calling PQconnectPoll.  It's not clear whether
that omission is causing the continuing failures on buildfarm member
bowerbird; but given the lack of other explanations meeting the
available facts, let's tighten that up and see what happens.

An independent issue in the same loop was that it had a race condition
whereby it could clear the process's latch without having serviced an
interrupt request, causing failure to respond to a cancel while waiting
for connection (the very problem 1e8a85009 was meant to fix).

Discussion: https://postgr.es/m/7295.1489596949@sss.pgh.pa.us

7 years agoFix failure to use clamp_row_est() for parallel joins.
Robert Haas [Wed, 15 Mar 2017 16:28:54 +0000 (12:28 -0400)]
Fix failure to use clamp_row_est() for parallel joins.

Commit 0c2070cefa0e5d097b715c9a3b9b5499470019aa neglected to use
clamp_row_est() where it should have done so.

Patch by me.  Report by Amit Kapila.

Discussion: http://postgr.es/m/CAA4eK1KPm8RYa1Kun3ZmQj9pb723b-EFN70j47Pid1vn3ByquA@mail.gmail.com

7 years agoBump catversion for MACADDR8
Stephen Frost [Wed, 15 Mar 2017 15:19:39 +0000 (11:19 -0400)]
Bump catversion for MACADDR8

Pointed out by Robert.

7 years agoAdd support for EUI-64 MAC addresses as macaddr8
Stephen Frost [Wed, 15 Mar 2017 15:16:25 +0000 (11:16 -0400)]
Add support for EUI-64 MAC addresses as macaddr8

This adds in support for EUI-64 MAC addresses by adding a new data type
called 'macaddr8' (using our usual convention of indicating the number
of bytes stored).

This was largely a copy-and-paste from the macaddr data type, with
appropriate adjustments for having 8 bytes instead of 6 and adding
support for converting a provided EUI-48 (6 byte format) to the EUI-64
format.  Conversion from EUI-48 to EUI-64 inserts FFFE as the 4th and
5th bytes but does not perform the IPv6 modified EUI-64 action of
flipping the 7th bit, but we add a function to perform that specific
action for the user as it may be commonly done by users who wish to
calculate their IPv6 address based on their network prefix and 48-bit
MAC address.

Author: Haribabu Kommi, with a good bit of rework of macaddr8_in by me.
Reviewed by: Vitaly Burovoy, Kuntal Ghosh

Discussion: https://postgr.es/m/CAJrrPGcUi8ZH+KkK+=TctNQ+EfkeCEHtMU_yo1mvX8hsk_ghNQ@mail.gmail.com

7 years agoAdd a regression test for snapshot too old with hash indexes.
Robert Haas [Wed, 15 Mar 2017 14:46:13 +0000 (10:46 -0400)]
Add a regression test for snapshot too old with hash indexes.

Amit Kapila, but I changed the comment not to be a copy-and-paste of
an existing one, and instead referred to it.

Discussion: http://postgr.es/m/CAA4eK1K0UJswCRf81WwJFO4H=+ZvbmKTNhAps-NkdmHRsq1GnQ@mail.gmail.com

7 years agoFix MB regression tests for WAL-logging of hash indexes.
Robert Haas [Wed, 15 Mar 2017 11:25:36 +0000 (07:25 -0400)]
Fix MB regression tests for WAL-logging of hash indexes.

Thomas Munro noted that these files still contained the now-removed
deprecation message in the expected output.

Patch by Amit Kapila

Discussion: http://postgr.es/m/CAEepm=16HW_C+MBA27aOV9t4tQBU-vf1BT_yhRUTWZVMd9bq8A@mail.gmail.com

7 years agoCosmetic fixes for hash index write-ahead logging.
Robert Haas [Wed, 15 Mar 2017 11:21:17 +0000 (07:21 -0400)]
Cosmetic fixes for hash index write-ahead logging.

Amit Kapila.  One of these was reported by Tom Lane.

Discussion: http://postgr.es/m/5515.1489514099@sss.pgh.pa.us

7 years agoAllow referring to functions without arguments when unique
Peter Eisentraut [Fri, 10 Mar 2017 04:58:48 +0000 (23:58 -0500)]
Allow referring to functions without arguments when unique

In DDL commands referring to an existing function, allow omitting the
argument list if the function name is unique in its schema, per SQL
standard.

This uses the same logic that the regproc type uses for finding
functions by name only.

Reviewed-by: Michael Paquier <michael.paquier@gmail.com>
7 years agodoc: Remove useless elements in bibliography
Peter Eisentraut [Wed, 15 Mar 2017 03:30:01 +0000 (23:30 -0400)]
doc: Remove useless elements in bibliography

Under DSSSL, bibliodiv/para elements didn't show up, but under XSLT they
do, but they are kind of useless here, so remove them.

7 years agodoc: Fix TOC generation for refentries
Peter Eisentraut [Wed, 15 Mar 2017 03:12:18 +0000 (23:12 -0400)]
doc: Fix TOC generation for refentries

The XSLT stylesheets by default don't show refentries inside sections in
table of contents, which for our documentation leads to some regressions
compared to the DSSSL output.  For example, in the SPI chapter, which is
mostly refentries, you don't get any usable table of contents.  Tweak
things so it's mostly back to what it was before.

7 years agoImprove grammar / fix typos in snapbuild.c.
Andres Freund [Wed, 15 Mar 2017 00:04:36 +0000 (17:04 -0700)]
Improve grammar / fix typos in snapbuild.c.

Author: Erik Rijkers
Discussion: https://postgr.es/m/797c6c4496a1ae49cc69e90aa768bac2@xs4all.nl

7 years agoSome preliminary refactoring towards partitionwise join.
Robert Haas [Tue, 14 Mar 2017 22:20:17 +0000 (18:20 -0400)]
Some preliminary refactoring towards partitionwise join.

Partitionwise join proposes add a concept of child join relations,
which will have the same relationship with join relations as "other
member" relations do with base relations.  These relations will need
some but not all of the handling that we currently have for join
relations, and some but not all of the handling that we currently have
for appendrels, since they are a mix of the two.  Refactor a little
bit so that the necessary bits of logic are exposed as separate
functions.

Ashutosh Bapat, reviewed and tested by Rajkumar Raghuwanshi and
by me.

Discussion: http://postgr.es/m/CAFjFpRfqotRR6cM3sooBHMHEVdkFfAZ6PyYg4GRZsoMuW08HjQ@mail.gmail.com

7 years agoImprove isolation tests infrastructure.
Andres Freund [Tue, 14 Mar 2017 22:56:17 +0000 (15:56 -0700)]
Improve isolation tests infrastructure.

Previously if a directory had both isolationtester and plain
regression tests, they couldn't be run in parallel, because they'd
access the same files/directories.  That, so far, only affected
contrib/test_decoding.

Rather than fix that locally in contrib/test_decoding, improve
pg_regress_isolation_[install]check to use separate resources from
plain regression tests.

That requires a minor change in pg_regress, namely that the
--outputdir is created if not already existing, that seems like good
idea anyway.

Use the improved helpers even where previously not used.

Author: Tom Lane and Andres Freund
Discussion: https://postgr.es/m/20170311194831.vm5ikpczq52c2drg@alap3.anarazel.de

7 years agoAdd option to control snapshot export to CREATE_REPLICATION_SLOT
Peter Eisentraut [Tue, 14 Mar 2017 21:13:56 +0000 (17:13 -0400)]
Add option to control snapshot export to CREATE_REPLICATION_SLOT

We used to export snapshots unconditionally in CREATE_REPLICATION_SLOT
in the replication protocol, but several upcoming patches want more
control over what happens.

Suppress snapshot export in pg_recvlogical, which neither needs nor can
use the exported snapshot.  Since snapshot exporting can fail this
improves reliability.

This also paves the way for allowing the creation of replication slots
on standbys, which cannot export snapshots because they cannot allocate
new XIDs.

Author: Petr Jelinek <petr.jelinek@2ndquadrant.com>

7 years agoamcheck: Harden tests against concurrent autovacuums.
Andres Freund [Tue, 14 Mar 2017 20:07:38 +0000 (13:07 -0700)]
amcheck: Harden tests against concurrent autovacuums.

The previous coding of the test was vulnerable against autovacuum
triggering work on one of the tables in check_btree.sql.

For the purpose of the test it's entirely sufficient to check for
locks taken by the current process, so add an appropriate restriction.
While touching the test, expand it to also check for locks on the
underlying relations, rather than just the indexes.

Reported-By: Tom Lane
Discussion: https://postgr.es/m/30354.1489434301@sss.pgh.pa.us

7 years agohash: Support WAL consistency checking.
Robert Haas [Tue, 14 Mar 2017 18:58:56 +0000 (14:58 -0400)]
hash: Support WAL consistency checking.

Kuntal Ghosh, reviewed by Amit Kapila and Ashutosh Sharma, with
a few tweaks by me.

Discussion: http://postgr.es/m/CAGz5QCJLERUn_zoO0eDv6_Y_d0o4tNTMPeR7ivTLBg4rUrJdwg@mail.gmail.com

7 years agoFix regression in parallel planning against inheritance tables.
Robert Haas [Tue, 14 Mar 2017 18:33:14 +0000 (14:33 -0400)]
Fix regression in parallel planning against inheritance tables.

Commit 51ee6f3160d2e1515ed6197594bda67eb99dc2cc accidentally changed
the behavior around inheritance hierarchies; before, we always
considered parallel paths even for very small inheritance children,
because otherwise an inheritance hierarchy with even one small child
wouldn't be eligible for parallelism.  That exception was inadverently
removed; put it back.

In passing, also adjust the degree-of-parallelism comptuation for
index-only scans not to consider the number of heap pages fetched.
Otherwise, we'll avoid parallel index-only scans on tables that are
mostly all-visible, which isn't especially logical.

Robert Haas and Amit Kapila, per a report from Ashutosh Sharma.

Discussion: http://postgr.es/m/CAE9k0PmgSoOHRd60SHu09aRVTHRSs8s6pmyhJKWHxWw9C_x+XA@mail.gmail.com

7 years agohash: Add write-ahead logging support.
Robert Haas [Tue, 14 Mar 2017 17:27:02 +0000 (13:27 -0400)]
hash: Add write-ahead logging support.

The warning about hash indexes not being write-ahead logged and their
use being discouraged has been removed.  "snapshot too old" is now
supported for tables with hash indexes.  Most importantly, barring
bugs, hash indexes will now be crash-safe and usable on standbys.

This commit doesn't yet add WAL consistency checking for hash
indexes, as we now have for other index types; a separate patch has
been submitted to cure that lack.

Amit Kapila, reviewed and slightly modified by me.  The larger patch
series of which this is a part has been reviewed and tested by Álvaro
Herrera, Ashutosh Sharma, Mark Kirkwood, Jeff Janes, and Jesper
Pedersen.

Discussion: http://postgr.es/m/CAA4eK1JOBX=YU33631Qh-XivYXtPSALh514+jR8XeD7v+K3r_Q@mail.gmail.com

7 years agoInclude port number when logging successful binding to a TCP port.
Tom Lane [Tue, 14 Mar 2017 17:18:27 +0000 (13:18 -0400)]
Include port number when logging successful binding to a TCP port.

Per suggestion from Andres Freund.

Discussion: https://postgr.es/m/20170314033842.st7gifec55yigz2h@alap3.anarazel.de

7 years agoecpg: Improve some variable names
Peter Eisentraut [Tue, 14 Mar 2017 16:39:37 +0000 (12:39 -0400)]
ecpg: Improve some variable names

based on patch from Josh Soref <jsoref@gmail.com>

7 years agoSpelling fixes
Peter Eisentraut [Tue, 14 Mar 2017 16:57:10 +0000 (12:57 -0400)]
Spelling fixes

From: Josh Soref <jsoref@gmail.com>

7 years agoSpelling fixes in code comments
Peter Eisentraut [Tue, 14 Mar 2017 15:38:30 +0000 (11:38 -0400)]
Spelling fixes in code comments

From: Josh Soref <jsoref@gmail.com>

7 years agoMake logging about multixact wraparound protection less chatty.
Tom Lane [Tue, 14 Mar 2017 16:47:46 +0000 (12:47 -0400)]
Make logging about multixact wraparound protection less chatty.

The original messaging design, introduced in commit 068cfadf9, seems too
chatty now that some time has elapsed since the bug fix; most installations
will be in good shape and don't really need a reminder about this on every
postmaster start.

Hence, arrange to suppress the "wraparound protections are now enabled"
message during startup (specifically, during the TrimMultiXact() call).
The message will still appear if protection becomes effective at some
later point.

Discussion: https://postgr.es/m/17211.1489189214@sss.pgh.pa.us

7 years agoUpdate .gitignore
Robert Haas [Tue, 14 Mar 2017 16:17:44 +0000 (12:17 -0400)]
Update .gitignore

Commit 42fcad68a9c0e0ebecf6842888723cad1f9d5be2 failed to do this.

Michael Paquier

Discussion: http://postgr.es/m/CAB7nPqTXK9Qn8TmonPf29jNXGw_CA3fTDaRfgnbHCFYr-Tx6qw@mail.gmail.com

7 years agoFix failure to mark init buffers as BM_PERMANENT.
Robert Haas [Tue, 14 Mar 2017 15:51:11 +0000 (11:51 -0400)]
Fix failure to mark init buffers as BM_PERMANENT.

This could result in corruption of the init fork of an unlogged index
if the ambuildempty routine for that index used shared buffers to
create the init fork, which was true for brin, gin, gist, and hash
indexes.

Patch by me, based on an earlier patch by Michael Paquier, who also
reviewed this one.  This also incorporates an idea from Artur
Zakirov.

Discussion: http://postgr.es/m/CACYUyc8yccE4xfxhqxfh_Mh38j7dRFuxfaK1p6dSNAEUakxUyQ@mail.gmail.com

7 years agodoc: Fix synopsis
Peter Eisentraut [Tue, 14 Mar 2017 15:19:12 +0000 (11:19 -0400)]
doc: Fix synopsis

7 years agoUpdate overlooked comment for Gather Merge.
Robert Haas [Tue, 14 Mar 2017 11:52:11 +0000 (07:52 -0400)]
Update overlooked comment for Gather Merge.

Commit 355d3993c53ed62c5b53d020648e4fbcfbf5f155 probably should have
done this, but nobody noticed that it was needed.

7 years agoRemove some bogus logic from create_gather_merge_plan.
Robert Haas [Tue, 14 Mar 2017 11:28:35 +0000 (07:28 -0400)]
Remove some bogus logic from create_gather_merge_plan.

This logic was adapated from create_merge_append_plan, but the two
cases aren't really analogous, because create_merge_append_plan is not
projection-capable and must therefore have a tlist identical to that
of the underlying paths.  Overwriting the tlist of Gather Merge with
whatever the underlying plan happens to produce is no good at all.

Patch by me, reviewed by Rushabh Lathia, who also reported the issue
and made an initial attempt at a fix.

Discussion: http://postgr.es/m/CA+Tgmob_-oHEOBfT9S25bjqokdqv8e8xEmh9zOY+3MPr_LmuhA@mail.gmail.com

7 years agoFix busted markup.
Tom Lane [Mon, 13 Mar 2017 23:06:28 +0000 (19:06 -0400)]
Fix busted markup.

Oversight in commit 9ca5c8721.  Per buildfarm.

7 years agoSilence unused variable compiler warning
Alvaro Herrera [Mon, 13 Mar 2017 21:54:35 +0000 (18:54 -0300)]
Silence unused variable compiler warning

Fallout from fcec6caafa2: mark a variable in
set_tablefunc_size_estimates as used for asserts only.

Also, the planner_rte_fetch() call is pointless with assertions
disabled, so enclose it in a USE_ASSERT_CHECKING #ifdef; fix the same
problem in set_subquery_size_estimates().

First problem noted by David Rowley, whose compiler is noisier than mine
in this regard.

7 years agoAdd a "void *" passthrough pointer for psqlscan.l's callback functions.
Tom Lane [Mon, 13 Mar 2017 21:14:46 +0000 (17:14 -0400)]
Add a "void *" passthrough pointer for psqlscan.l's callback functions.

The immediate motivation for this is to provide clean infrastructure
for the proposed \if...\endif patch for psql; but it seems like a good
thing to have even if that patch doesn't get in.  Previously the callback
functions could only make use of application-global state, which is a
pretty severe handicap.

For the moment, the pointer is only passed through to the get_variable
callback function.  I considered also passing it to the write_error
callback, but for now let's not.  Neither psql nor pgbench has a use
for that, and in the case of psql we'd have to invent a separate wrapper
function because we would certainly not want to change the signature of
psql_error().

Discussion: https://postgr.es/m/10108.1489418309@sss.pgh.pa.us

7 years agoRemove unnecessary dependency on statement_timeout in prepared_xacts test.
Tom Lane [Mon, 13 Mar 2017 20:46:32 +0000 (16:46 -0400)]
Remove unnecessary dependency on statement_timeout in prepared_xacts test.

Rather than waiting around for statement_timeout to expire, we can just
try to take the table's lock in nowait mode.  This saves some fraction
under 4 seconds when running this test with prepared xacts available,
and it guards against timeout-expired-anyway failures on very slow
machines when prepared xacts are not available, as seen in a recent
failure on axolotl for instance.

This approach could fail if autovacuum were to take an exclusive lock
on the test table concurrently, but there's no reason for it to do so.

Since the main point here is to improve stability in the buildfarm,
back-patch to all supported branches.

7 years agoDocument two phase commit commands in ecpg docu.
Michael Meskes [Mon, 13 Mar 2017 19:48:29 +0000 (20:48 +0100)]
Document two phase commit commands in ecpg docu.

Patch by Masahiko Sawada

7 years agoAdd test case for two phase commit. Also by Masahiko Sawada.
Michael Meskes [Mon, 13 Mar 2017 19:47:27 +0000 (20:47 +0100)]
Add test case for two phase commit. Also by Masahiko Sawada.

7 years agoEcpg should support COMMIT PREPARED and ROLLBACK PREPARED.
Michael Meskes [Mon, 13 Mar 2017 19:44:13 +0000 (20:44 +0100)]
Ecpg should support COMMIT PREPARED and ROLLBACK PREPARED.

The problem was that "begin transaction" was issued automatically
before executing COMMIT/ROLLBACK PREPARED if not in auto commit. This fix by
Masahiko Sawada fixes this.

7 years agoInclude array size in forward declaration.
Heikki Linnakangas [Mon, 13 Mar 2017 19:53:38 +0000 (21:53 +0200)]
Include array size in forward declaration.

Some compilers require it. At least Visual Studio, according to the
buildfarm, and gcc with the -pedantic flag.

7 years agoFix compiler warning
Peter Eisentraut [Mon, 13 Mar 2017 19:44:50 +0000 (15:44 -0400)]
Fix compiler warning

From: David Rowley <david.rowley@2ndquadrant.com>

7 years agoChange xlog to WAL in some error messages
Peter Eisentraut [Mon, 13 Mar 2017 19:40:16 +0000 (15:40 -0400)]
Change xlog to WAL in some error messages

7 years agoUse radix tree for character encoding conversions.
Heikki Linnakangas [Mon, 13 Mar 2017 18:46:39 +0000 (20:46 +0200)]
Use radix tree for character encoding conversions.

Replace the mapping tables used to convert between UTF-8 and other
character encodings with new radix tree-based maps. Looking up an entry in
a radix tree is much faster than a binary search in the old maps. As a
bonus, the radix tree representation is also more compact, making the
binaries slightly smaller.

The "combined" maps work the same as before, with binary search. They are
much smaller than the main tables, so it doesn't matter so much. However,
the "combined" maps are now stored in the same .map files as the main
tables. This seems more clear, since they're always used together, and
generated from the same source files.

Patch by Kyotaro Horiguchi, with lot of hacking by me at various stages.
Reviewed by Michael Paquier and Daniel Gustafsson.

Discussion: https://www.postgresql.org/message-id/20170306.171609.204324917.horiguchi.kyotaro%40lab.ntt.co.jp

7 years agoRemove obsolete references to JIS0201.TXT JIS0208.TXT.
Heikki Linnakangas [Mon, 13 Mar 2017 17:04:45 +0000 (19:04 +0200)]
Remove obsolete references to JIS0201.TXT JIS0208.TXT.

We don't use those files anymore, since commit 1de9cc0dcc.

7 years agoinitdb: Re-add translatable string that got lost
Peter Eisentraut [Mon, 13 Mar 2017 13:10:49 +0000 (09:10 -0400)]
initdb: Re-add translatable string that got lost

7 years agoFix typo in comment
Magnus Hagander [Mon, 13 Mar 2017 11:10:54 +0000 (12:10 +0100)]
Fix typo in comment

Masahiko Sawada