pgsql: Fix contrib/bloom to work for unlogged indexes.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix contrib/bloom to work for unlogged indexes.
Date: 2016-05-25 01:05:03
Message-ID: E1b5NFv-0000zd-IY@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix contrib/bloom to work for unlogged indexes.

blbuildempty did not do even approximately the right thing: it tried
to add a metapage to the relation's regular data fork, which already
has one at that point. It should look like the ambuildempty methods
for all the standard index types, ie, initialize a metapage image in
some transient storage and then write it directly to the init fork.
To support that, refactor BloomInitMetapage into two functions.

In passing, fix BloomInitMetapage so it doesn't leave the rd_options
field of the index's relcache entry pointing at transient storage.
I'm not sure this had any visible consequence, since nothing much
else is likely to look at a bloom index's rd_options, but it's
certainly poor practice.

Per bug #14155 from Zhou Digoal.

Report: <20160524144146(dot)22598(dot)42558(at)wrigleys(dot)postgresql(dot)org>

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/abaffa907588283f7673fc223857e6966421b8ca

Modified Files
--------------
contrib/bloom/blinsert.c | 25 ++++++++++++----
contrib/bloom/bloom.h | 1 +
contrib/bloom/blutils.c | 63 +++++++++++++++++++++++++++-------------
contrib/bloom/expected/bloom.out | 58 ++++++++++++++++++++++++++++++++++++
contrib/bloom/sql/bloom.sql | 22 ++++++++++++++
5 files changed, 144 insertions(+), 25 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2016-05-25 02:49:42 pgsql: Mark wal_level as PGDLLIMPORT.
Previous Message Stephen Frost 2016-05-25 00:10:22 pgsql: Qualify table usage in dumpTable() and use regclass