aboutsummaryrefslogtreecommitdiff
path: root/src/test/modules/injection_points/sql/reindex_conc.sql
blob: 6cf211e6d5dd0cf1d099a8821a7d1cd429c55095 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
-- Tests for REINDEX CONCURRENTLY
CREATE EXTENSION injection_points;

-- Check safety of indexes with predicates and expressions.
SELECT injection_points_set_local();
SELECT injection_points_attach('reindex-conc-index-safe', 'notice');
SELECT injection_points_attach('reindex-conc-index-not-safe', 'notice');

CREATE SCHEMA reindex_inj;
CREATE TABLE reindex_inj.tbl(i int primary key, updated_at timestamp);

CREATE UNIQUE INDEX ind_simple ON reindex_inj.tbl(i);
CREATE UNIQUE INDEX ind_expr ON reindex_inj.tbl(ABS(i));
CREATE UNIQUE INDEX ind_pred ON reindex_inj.tbl(i) WHERE mod(i, 2) = 0;
CREATE UNIQUE INDEX ind_expr_pred ON reindex_inj.tbl(abs(i)) WHERE mod(i, 2) = 0;

REINDEX INDEX CONCURRENTLY reindex_inj.ind_simple;
REINDEX INDEX CONCURRENTLY reindex_inj.ind_expr;
REINDEX INDEX CONCURRENTLY reindex_inj.ind_pred;
REINDEX INDEX CONCURRENTLY reindex_inj.ind_expr_pred;

-- Cleanup
SELECT injection_points_detach('reindex-conc-index-safe');
SELECT injection_points_detach('reindex-conc-index-not-safe');
DROP TABLE reindex_inj.tbl;
DROP SCHEMA reindex_inj;

DROP EXTENSION injection_points;