@ -117,10 +117,6 @@ SELECT (CASE WHEN (mod(i,231) = 0) OR (i BETWEEN 3500 AND 4000) THEN NULL ELSE i
(CASE WHEN (mod(i,233) = 0) OR (i BETWEEN 3750 AND 4250) THEN NULL ELSE md5(i::text) END),
(CASE WHEN (mod(i,233) = 0) OR (i BETWEEN 3750 AND 4250) THEN NULL ELSE md5(i::text) END),
(CASE WHEN (mod(i,233) = 0) OR (i BETWEEN 3850 AND 4500) THEN NULL ELSE (i/100) + mod(i,8) END)
(CASE WHEN (mod(i,233) = 0) OR (i BETWEEN 3850 AND 4500) THEN NULL ELSE (i/100) + mod(i,8) END)
FROM generate_series(1,5000) S(i);
FROM generate_series(1,5000) S(i);
-- Delete a couple pages, to make the ranges empty.
DELETE FROM brin_parallel_test WHERE a BETWEEN 1000 and 1500;
-- Vacuum to remove the tuples and make the ranges actually empty.
VACUUM brin_parallel_test;
-- Build an index with different opclasses - minmax, bloom and minmax-multi.
-- Build an index with different opclasses - minmax, bloom and minmax-multi.
--
--
-- For minmax and opclass this is simple, but for minmax-multi we need to be
-- For minmax and opclass this is simple, but for minmax-multi we need to be
@ -135,7 +131,8 @@ VACUUM brin_parallel_test;
SET max_parallel_maintenance_workers = 0;
SET max_parallel_maintenance_workers = 0;
CREATE INDEX brin_test_serial_idx ON brin_parallel_test
CREATE INDEX brin_test_serial_idx ON brin_parallel_test
USING brin (a int4_minmax_ops, a int4_bloom_ops, b, c int8_minmax_multi_ops)
USING brin (a int4_minmax_ops, a int4_bloom_ops, b, c int8_minmax_multi_ops)
WITH (pages_per_range=7);
WITH (pages_per_range=7)
WHERE NOT (a BETWEEN 1000 and 1500);
-- build index using parallelism
-- build index using parallelism
--
--
-- Set a couple parameters to force parallel build for small table. There's a
-- Set a couple parameters to force parallel build for small table. There's a
@ -147,7 +144,8 @@ SET max_parallel_maintenance_workers = 4;
SET maintenance_work_mem = '128MB';
SET maintenance_work_mem = '128MB';
CREATE INDEX brin_test_parallel_idx ON brin_parallel_test
CREATE INDEX brin_test_parallel_idx ON brin_parallel_test
USING brin (a int4_minmax_ops, a int4_bloom_ops, b, c int8_minmax_multi_ops)
USING brin (a int4_minmax_ops, a int4_bloom_ops, b, c int8_minmax_multi_ops)
WITH (pages_per_range=7);
WITH (pages_per_range=7)
WHERE NOT (a BETWEEN 1000 and 1500);
SELECT relname, relpages
SELECT relname, relpages
FROM pg_class
FROM pg_class
WHERE relname IN ('brin_test_serial_idx', 'brin_test_parallel_idx')
WHERE relname IN ('brin_test_serial_idx', 'brin_test_parallel_idx')
@ -180,7 +178,8 @@ DROP INDEX brin_test_parallel_idx;
SET max_parallel_workers = 0;
SET max_parallel_workers = 0;
CREATE INDEX brin_test_parallel_idx ON brin_parallel_test
CREATE INDEX brin_test_parallel_idx ON brin_parallel_test
USING brin (a int4_minmax_ops, a int4_bloom_ops, b, c int8_minmax_multi_ops)
USING brin (a int4_minmax_ops, a int4_bloom_ops, b, c int8_minmax_multi_ops)
WITH (pages_per_range=7);
WITH (pages_per_range=7)
WHERE NOT (a BETWEEN 1000 and 1500);
SELECT relname, relpages
SELECT relname, relpages
FROM pg_class
FROM pg_class
WHERE relname IN ('brin_test_serial_idx', 'brin_test_parallel_idx')
WHERE relname IN ('brin_test_serial_idx', 'brin_test_parallel_idx')