blob: a9eac24f6609f01d7ea872e0c8aef0860063d5c1 [file]
-- Dropping table while reindex database should not fail reindex
CREATE DATABASE reindexdb1 TEMPLATE template1;
CREATE
-- halt reindex after scanning the pg_class and getting the relids
SELECT gp_inject_fault_infinite('reindex_db', 'suspend', 1);
gp_inject_fault_infinite
--------------------------
Success:
(1 row)
1:@db_name reindexdb1: CREATE TABLE heap1(a INT, b INT);
CREATE
1&:REINDEX DATABASE reindexdb1; <waiting ...>
SELECT gp_wait_until_triggered_fault('reindex_db', 1, 1);
gp_wait_until_triggered_fault
-------------------------------
Success:
(1 row)
2:@db_name reindexdb1:DROP TABLE heap1;
DROP
SELECT gp_inject_fault('reindex_db', 'reset', 1);
gp_inject_fault
-----------------
Success:
(1 row)
-- reindex should complete fine
1<: <... completed>
REINDEX
1q: ... <quitting>
2q: ... <quitting>
-- Adding index after scanning indexes for relation to reindex should
-- not fail reindex
BEGIN;
BEGIN
CREATE TABLE reindex_index1(a int, b int);
CREATE
CREATE INDEX reindex_index1_idx1 on reindex_index1 (b);
CREATE
insert into reindex_index1 select i,i+1 from generate_series(1, 10)i;
INSERT 10
COMMIT;
COMMIT
SELECT gp_inject_fault_infinite('reindex_relation', 'suspend', 1);
gp_inject_fault_infinite
--------------------------
Success:
(1 row)
3&: REINDEX TABLE reindex_index1; <waiting ...>
SELECT gp_wait_until_triggered_fault('reindex_relation', 1, 1);
gp_wait_until_triggered_fault
-------------------------------
Success:
(1 row)
-- create one more index
CREATE INDEX reindex_index1_idx2 on reindex_index1 (a);
CREATE
SELECT gp_inject_fault('reindex_relation', 'reset', 1);
gp_inject_fault
-----------------
Success:
(1 row)
3<: <... completed>
REINDEX
DROP DATABASE reindexdb1;
DROP