mirror of
https://github.com/postgres/postgres.git
synced 2025-07-15 19:21:59 +03:00
Test BRIN autosummarization
There was no coverage for this code. Reported-by: Nikolay Shaplov, Tom Lane Discussion: https://postgr.es/m/2700647.XEouBYNZic@x200m https://postgr.es/m/13849.1506114543@sss.pgh.pa.us
This commit is contained in:
@ -16,7 +16,7 @@ include $(top_builddir)/src/Makefile.global
|
||||
include $(top_srcdir)/contrib/contrib-global.mk
|
||||
endif
|
||||
|
||||
check: isolation-check
|
||||
check: isolation-check prove-check
|
||||
|
||||
isolation-check: | submake-isolation
|
||||
$(MKDIR_P) isolation_output
|
||||
@ -24,7 +24,10 @@ isolation-check: | submake-isolation
|
||||
--outputdir=./isolation_output \
|
||||
$(ISOLATIONCHECKS)
|
||||
|
||||
.PHONY: check isolation-check
|
||||
prove-check:
|
||||
$(prove_check)
|
||||
|
||||
.PHONY: check isolation-check prove-check
|
||||
|
||||
submake-isolation:
|
||||
$(MAKE) -C $(top_builddir)/src/test/isolation all
|
||||
|
39
src/test/modules/brin/t/01_workitems.pl
Normal file
39
src/test/modules/brin/t/01_workitems.pl
Normal file
@ -0,0 +1,39 @@
|
||||
# Verify that work items work correctly
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use TestLib;
|
||||
use Test::More tests => 2;
|
||||
use PostgresNode;
|
||||
|
||||
my $node = get_new_node('tango');
|
||||
$node->init;
|
||||
$node->append_conf('postgresql.conf', 'autovacuum_naptime=1s');
|
||||
$node->start;
|
||||
|
||||
$node->safe_psql('postgres', 'create extension pageinspect');
|
||||
|
||||
# Create a table with an autosummarizing BRIN index
|
||||
$node->safe_psql('postgres',
|
||||
'create table brin_wi (a int) with (fillfactor = 10);
|
||||
create index brin_wi_idx on brin_wi using brin (a) with (pages_per_range=1, autosummarize=on);
|
||||
'
|
||||
);
|
||||
my $count = $node->safe_psql('postgres',
|
||||
"select count(*) from brin_page_items(get_raw_page('brin_wi_idx', 2), 'brin_wi_idx'::regclass)"
|
||||
);
|
||||
is($count, '1', "initial index state is correct");
|
||||
|
||||
$node->safe_psql('postgres',
|
||||
'insert into brin_wi select * from generate_series(1, 100)');
|
||||
|
||||
$node->poll_query_until('postgres',
|
||||
"select count(*) > 1 from brin_page_items(get_raw_page('brin_wi_idx', 2), 'brin_wi_idx'::regclass)",
|
||||
't');
|
||||
|
||||
$count = $node->safe_psql('postgres',
|
||||
"select count(*) > 1 from brin_page_items(get_raw_page('brin_wi_idx', 2), 'brin_wi_idx'::regclass)"
|
||||
);
|
||||
is($count, 't', "index got summarized");
|
||||
$node->stop;
|
Reference in New Issue
Block a user