Test_output_variant_for_CATCACHE_FORCE_RELEASE.patch

text/x-patch

Filename: Test_output_variant_for_CATCACHE_FORCE_RELEASE.patch
Type: text/x-patch
Part: 0
Message: Re: Issues with ON CONFLICT UPDATE and REINDEX CONCURRENTLY

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
File+
src/test/modules/injection_points/expected/index-concurrently-upsert_1.out 124 0
src/test/modules/injection_points/expected/index-concurrently-upsert-predicate_1.out 124 0
Subject: [PATCH] Test output variant for CATCACHE_FORCE_RELEASE
---
Index: src/test/modules/injection_points/expected/index-concurrently-upsert-predicate_1.out
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/test/modules/injection_points/expected/index-concurrently-upsert-predicate_1.out b/src/test/modules/injection_points/expected/index-concurrently-upsert-predicate_1.out
new file mode 100644
--- /dev/null	(revision faa03762de3e3f0ce3cbeea8d0e0c8f148e449eb)
+++ b/src/test/modules/injection_points/expected/index-concurrently-upsert-predicate_1.out	(revision faa03762de3e3f0ce3cbeea8d0e0c8f148e449eb)
@@ -0,0 +1,124 @@
+Parsed test spec with 5 sessions
+
+starting permutation: s1_attach_invalidate_catalog_snapshot s4_wakeup_s1_setup s3_start_create_index s1_start_upsert s4_wakeup_define_index_before_set_valid s2_start_upsert s5_wakeup_s1_from_invalidate_catalog_snapshot s4_wakeup_s2 s4_wakeup_s1
+injection_points_attach
+-----------------------
+                       
+(1 row)
+
+injection_points_attach
+-----------------------
+                       
+(1 row)
+
+injection_points_attach
+-----------------------
+                       
+(1 row)
+
+step s1_attach_invalidate_catalog_snapshot: 
+	SELECT injection_points_attach('invalidate-catalog-snapshot-end', 'wait');
+ <waiting ...>
+step s4_wakeup_s1_setup: 
+	SELECT CASE WHEN
+			(SELECT pid FROM pg_stat_activity
+			      WHERE wait_event_type = 'InjectionPoint' AND
+			      wait_event = 'invalidate-catalog-snapshot-end') IS NOT NULL
+			THEN injection_points_wakeup('invalidate-catalog-snapshot-end')
+		END;
+
+case
+----
+    
+(1 row)
+
+step s1_attach_invalidate_catalog_snapshot: <... completed>
+injection_points_attach
+-----------------------
+                       
+(1 row)
+
+step s3_start_create_index: 
+	CREATE UNIQUE INDEX CONCURRENTLY tbl_pkey_special_duplicate ON test.tbl(abs(i)) WHERE i < 10000;
+ <waiting ...>
+step s1_start_upsert: 
+	INSERT INTO test.tbl VALUES(13,now()) ON CONFLICT (abs(i)) WHERE i < 100 DO UPDATE SET updated_at = now();
+ <waiting ...>
+step s4_wakeup_define_index_before_set_valid: 
+	SELECT injection_points_detach('define-index-before-set-valid');
+	SELECT injection_points_wakeup('define-index-before-set-valid');
+
+injection_points_detach
+-----------------------
+                       
+(1 row)
+
+injection_points_wakeup
+-----------------------
+                       
+(1 row)
+
+step s2_start_upsert: 
+	INSERT INTO test.tbl VALUES(13,now()) ON CONFLICT (abs(i)) WHERE i < 100 DO UPDATE SET updated_at = now();
+ <waiting ...>
+step s5_wakeup_s1_from_invalidate_catalog_snapshot: 
+	DO $$
+		DECLARE
+			v_waiting_pid INTEGER;
+		BEGIN
+		LOOP
+			SELECT pid INTO v_waiting_pid
+			  FROM pg_stat_activity
+			 WHERE wait_event_type = 'InjectionPoint'
+				   AND wait_event = 'invalidate-catalog-snapshot-end'
+			 LIMIT 1;
+			EXIT WHEN v_waiting_pid IS NOT NULL;
+			PERFORM pg_sleep(100);
+		END LOOP;
+		END
+	$$;
+
+	SELECT injection_points_detach('invalidate-catalog-snapshot-end');
+	SELECT injection_points_wakeup('invalidate-catalog-snapshot-end');
+
+injection_points_detach
+-----------------------
+                       
+(1 row)
+
+injection_points_wakeup
+-----------------------
+                       
+(1 row)
+
+step s4_wakeup_s2: 
+	SELECT injection_points_detach('exec-insert-before-insert-speculative');
+	SELECT injection_points_wakeup('exec-insert-before-insert-speculative');
+
+injection_points_detach
+-----------------------
+                       
+(1 row)
+
+injection_points_wakeup
+-----------------------
+                       
+(1 row)
+
+step s4_wakeup_s1: 
+	SELECT injection_points_detach('check-exclusion-or-unique-constraint-no-conflict');
+	SELECT injection_points_wakeup('check-exclusion-or-unique-constraint-no-conflict');
+
+injection_points_detach
+-----------------------
+                       
+(1 row)
+
+injection_points_wakeup
+-----------------------
+                       
+(1 row)
+
+step s1_start_upsert: <... completed>
+step s2_start_upsert: <... completed>
+step s3_start_create_index: <... completed>
Index: src/test/modules/injection_points/expected/index-concurrently-upsert_1.out
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/test/modules/injection_points/expected/index-concurrently-upsert_1.out b/src/test/modules/injection_points/expected/index-concurrently-upsert_1.out
new file mode 100644
--- /dev/null	(revision faa03762de3e3f0ce3cbeea8d0e0c8f148e449eb)
+++ b/src/test/modules/injection_points/expected/index-concurrently-upsert_1.out	(revision faa03762de3e3f0ce3cbeea8d0e0c8f148e449eb)
@@ -0,0 +1,124 @@
+Parsed test spec with 5 sessions
+
+starting permutation: s1_attach_invalidate_catalog_snapshot s4_wakeup_s1_setup s3_start_create_index s1_start_upsert s4_wakeup_define_index_before_set_valid s2_start_upsert s5_wakeup_s1_from_invalidate_catalog_snapshot s4_wakeup_s2 s4_wakeup_s1
+injection_points_attach
+-----------------------
+                       
+(1 row)
+
+injection_points_attach
+-----------------------
+                       
+(1 row)
+
+injection_points_attach
+-----------------------
+                       
+(1 row)
+
+step s1_attach_invalidate_catalog_snapshot: 
+	SELECT injection_points_attach('invalidate-catalog-snapshot-end', 'wait');
+ <waiting ...>
+step s4_wakeup_s1_setup: 
+	SELECT CASE WHEN
+			(SELECT pid FROM pg_stat_activity
+				  WHERE wait_event_type = 'InjectionPoint' AND
+				  wait_event = 'invalidate-catalog-snapshot-end') IS NOT NULL
+			THEN injection_points_wakeup('invalidate-catalog-snapshot-end')
+		END;
+
+case
+----
+    
+(1 row)
+
+step s1_attach_invalidate_catalog_snapshot: <... completed>
+injection_points_attach
+-----------------------
+                       
+(1 row)
+
+step s3_start_create_index: 
+	CREATE UNIQUE INDEX CONCURRENTLY tbl_pkey_duplicate ON test.tbl(i);
+ <waiting ...>
+step s1_start_upsert: 
+	INSERT INTO test.tbl VALUES (13,now()) ON CONFLICT (i) DO UPDATE SET updated_at = now();
+ <waiting ...>
+step s4_wakeup_define_index_before_set_valid: 
+	SELECT injection_points_detach('define-index-before-set-valid');
+	SELECT injection_points_wakeup('define-index-before-set-valid');
+
+injection_points_detach
+-----------------------
+                       
+(1 row)
+
+injection_points_wakeup
+-----------------------
+                       
+(1 row)
+
+step s2_start_upsert: 
+	INSERT INTO test.tbl VALUES (13,now()) ON CONFLICT (i) DO UPDATE SET updated_at = now();
+ <waiting ...>
+step s5_wakeup_s1_from_invalidate_catalog_snapshot: 
+	DO $$
+		DECLARE
+			v_waiting_pid INTEGER;
+		BEGIN
+		LOOP
+			SELECT pid INTO v_waiting_pid
+			  FROM pg_stat_activity
+			 WHERE wait_event_type = 'InjectionPoint'
+				   AND wait_event = 'invalidate-catalog-snapshot-end'
+			 LIMIT 1;
+			EXIT WHEN v_waiting_pid IS NOT NULL;
+			PERFORM pg_sleep(100);
+		END LOOP;
+		END
+	$$;
+
+	SELECT injection_points_detach('invalidate-catalog-snapshot-end');
+	SELECT injection_points_wakeup('invalidate-catalog-snapshot-end');
+
+injection_points_detach
+-----------------------
+                       
+(1 row)
+
+injection_points_wakeup
+-----------------------
+                       
+(1 row)
+
+step s4_wakeup_s2: 
+	SELECT injection_points_detach('exec-insert-before-insert-speculative');
+	SELECT injection_points_wakeup('exec-insert-before-insert-speculative');
+
+injection_points_detach
+-----------------------
+                       
+(1 row)
+
+injection_points_wakeup
+-----------------------
+                       
+(1 row)
+
+step s4_wakeup_s1: 
+	SELECT injection_points_detach('check-exclusion-or-unique-constraint-no-conflict');
+	SELECT injection_points_wakeup('check-exclusion-or-unique-constraint-no-conflict');
+
+injection_points_detach
+-----------------------
+                       
+(1 row)
+
+injection_points_wakeup
+-----------------------
+                       
+(1 row)
+
+step s1_start_upsert: <... completed>
+step s2_start_upsert: <... completed>
+step s3_start_create_index: <... completed>