From f0b6e81a8652cbfe8733c34bcd035997392011b8 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Fri, 15 Mar 2024 16:26:52 +0900 Subject: [PATCH 2/2] Restrict GIN test with injection points to run on local database It is possible that this test conflicts with parallel installcheck activities. While on it, add a forgotten detach to the GIN test to make it repeatable. --- .../gin/expected/gin_incomplete_splits.out | 27 +++++++++++++++++++ .../modules/gin/sql/gin_incomplete_splits.sql | 8 ++++++ 2 files changed, 35 insertions(+) diff --git a/src/test/modules/gin/expected/gin_incomplete_splits.out b/src/test/modules/gin/expected/gin_incomplete_splits.out index 9a60f8c128..7803dd7a90 100644 --- a/src/test/modules/gin/expected/gin_incomplete_splits.out +++ b/src/test/modules/gin/expected/gin_incomplete_splits.out @@ -14,7 +14,16 @@ create extension injection_points; -- Use the index for all the queries set enable_seqscan=off; +-- Limit all the injection points of this script to run on the current +-- database, for safety under concurrent activity. +SELECT current_database() AS datname \gset -- Print a NOTICE whenever an incomplete split gets fixed +SELECT injection_points_condition('gin-finish-incomplete-split', :'datname'); + injection_points_condition +---------------------------- + +(1 row) + SELECT injection_points_attach('gin-finish-incomplete-split', 'notice'); injection_points_attach ------------------------- @@ -109,6 +118,12 @@ select verify(:next_i); -- -- Test incomplete leaf split -- +SELECT injection_points_condition('gin-leave-leaf-split-incomplete', :'datname'); + injection_points_condition +---------------------------- + +(1 row) + SELECT injection_points_attach('gin-leave-leaf-split-incomplete', 'error'); injection_points_attach ------------------------- @@ -145,6 +160,12 @@ select verify(:next_i); -- -- Test incomplete internal page split -- +SELECT injection_points_condition('gin-leave-internal-split-incomplete', :'datname'); + injection_points_condition +---------------------------- + +(1 row) + SELECT injection_points_attach('gin-leave-internal-split-incomplete', 'error'); injection_points_attach ------------------------- @@ -178,3 +199,9 @@ select verify(:next_i); t (1 row) +SELECT injection_points_detach('gin-finish-incomplete-split'); + injection_points_detach +------------------------- + +(1 row) + diff --git a/src/test/modules/gin/sql/gin_incomplete_splits.sql b/src/test/modules/gin/sql/gin_incomplete_splits.sql index 4e180b2519..5b4521edd9 100644 --- a/src/test/modules/gin/sql/gin_incomplete_splits.sql +++ b/src/test/modules/gin/sql/gin_incomplete_splits.sql @@ -17,7 +17,12 @@ create extension injection_points; -- Use the index for all the queries set enable_seqscan=off; +-- Limit all the injection points of this script to run on the current +-- database, for safety under concurrent activity. +SELECT current_database() AS datname \gset + -- Print a NOTICE whenever an incomplete split gets fixed +SELECT injection_points_condition('gin-finish-incomplete-split', :'datname'); SELECT injection_points_attach('gin-finish-incomplete-split', 'notice'); -- @@ -111,6 +116,7 @@ select verify(:next_i); -- -- Test incomplete leaf split -- +SELECT injection_points_condition('gin-leave-leaf-split-incomplete', :'datname'); SELECT injection_points_attach('gin-leave-leaf-split-incomplete', 'error'); select insert_until_fail(:next_i) as next_i \gset @@ -129,6 +135,7 @@ select verify(:next_i); -- -- Test incomplete internal page split -- +SELECT injection_points_condition('gin-leave-internal-split-incomplete', :'datname'); SELECT injection_points_attach('gin-leave-internal-split-incomplete', 'error'); select insert_until_fail(:next_i, 100) as next_i \gset @@ -142,3 +149,4 @@ select insert_n(:next_i, 10) as next_i \gset -- Verify that a scan still works select verify(:next_i); +SELECT injection_points_detach('gin-finish-incomplete-split'); -- 2.43.0