]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
pg_plan_advice: Fix multiple copy-and-paste-errors in test case.
authorRobert Haas <rhaas@postgresql.org>
Wed, 18 Mar 2026 22:15:36 +0000 (18:15 -0400)
committerRobert Haas <rhaas@postgresql.org>
Wed, 18 Mar 2026 22:24:39 +0000 (18:24 -0400)
The second half of this file is meant to test feedback, not
generated advice, and is meant to use the statements that it
prepares, not leftover prepared statements from earlier in the
file.

These mistakes resulted in failures under debug_discard_caches = 1,
because re-executing pt2 instead of executing pt4 for the first
time resulted in different output depending on whether the query
was replanned.

Reported-by: Tom Lane <tgl@sss.pgh.pa.us> (per BF member avocet)
contrib/pg_plan_advice/expected/prepared.out
contrib/pg_plan_advice/sql/prepared.sql

index fa91a7d3efd6c208e037c275140f76cbd40f00a3..bcab28f03bec79bcb1a2b5555af2a562dc1ecd97 100644 (file)
@@ -45,9 +45,9 @@ SELECT * FROM ptab;
    SEQ_SCAN(ptab) /* matched */
 (3 rows)
 
--- Prepared, so advice should not be generated.
+-- Prepared, so feedback should not be generated.
 PREPARE pt3 AS SELECT * FROM ptab;
-EXPLAIN (COSTS OFF) EXECUTE pt1;
+EXPLAIN (COSTS OFF) EXECUTE pt3;
     QUERY PLAN    
 ------------------
  Seq Scan on ptab
@@ -56,12 +56,14 @@ EXPLAIN (COSTS OFF) EXECUTE pt1;
 SET pg_plan_advice.always_store_advice_details = true;
 -- Prepared, but always_store_advice_details = true, so should show feedback.
 PREPARE pt4 AS SELECT * FROM ptab;
-EXPLAIN (COSTS OFF, PLAN_ADVICE) EXECUTE pt2;
-       QUERY PLAN       
-------------------------
+EXPLAIN (COSTS OFF, PLAN_ADVICE) EXECUTE pt4;
+           QUERY PLAN           
+--------------------------------
  Seq Scan on ptab
+ Supplied Plan Advice:
+   SEQ_SCAN(ptab) /* matched */
  Generated Plan Advice:
    SEQ_SCAN(ptab)
    NO_GATHER(ptab)
-(4 rows)
+(6 rows)
 
index 643dff2e27c92c93db8d2cb74feec6b823c0afd0..6ff4f03e6c53d8847e9a4fcceb4770cc20edbfaa 100644 (file)
@@ -25,12 +25,12 @@ SET pg_plan_advice.advice = 'SEQ_SCAN(ptab)';
 EXPLAIN (COSTS OFF)
 SELECT * FROM ptab;
 
--- Prepared, so advice should not be generated.
+-- Prepared, so feedback should not be generated.
 PREPARE pt3 AS SELECT * FROM ptab;
-EXPLAIN (COSTS OFF) EXECUTE pt1;
+EXPLAIN (COSTS OFF) EXECUTE pt3;
 
 SET pg_plan_advice.always_store_advice_details = true;
 
 -- Prepared, but always_store_advice_details = true, so should show feedback.
 PREPARE pt4 AS SELECT * FROM ptab;
-EXPLAIN (COSTS OFF, PLAN_ADVICE) EXECUTE pt2;
+EXPLAIN (COSTS OFF, PLAN_ADVICE) EXECUTE pt4;