mirror of
https://github.com/postgres/postgres.git
synced 2025-07-17 06:41:09 +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
|
include $(top_srcdir)/contrib/contrib-global.mk
|
||||||
endif
|
endif
|
||||||
|
|
||||||
check: isolation-check
|
check: isolation-check prove-check
|
||||||
|
|
||||||
isolation-check: | submake-isolation
|
isolation-check: | submake-isolation
|
||||||
$(MKDIR_P) isolation_output
|
$(MKDIR_P) isolation_output
|
||||||
@ -24,7 +24,10 @@ isolation-check: | submake-isolation
|
|||||||
--outputdir=./isolation_output \
|
--outputdir=./isolation_output \
|
||||||
$(ISOLATIONCHECKS)
|
$(ISOLATIONCHECKS)
|
||||||
|
|
||||||
.PHONY: check isolation-check
|
prove-check:
|
||||||
|
$(prove_check)
|
||||||
|
|
||||||
|
.PHONY: check isolation-check prove-check
|
||||||
|
|
||||||
submake-isolation:
|
submake-isolation:
|
||||||
$(MAKE) -C $(top_builddir)/src/test/isolation all
|
$(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