From 2a4dfcc3e47316e3784e959df30a9be251a36b8e Mon Sep 17 00:00:00 2001
From: Michael Paquier <michael@paquier.xyz>
Date: Sun, 25 Jan 2026 16:39:41 +0900
Subject: [PATCH] Fix PGSS test

---
 contrib/pg_stat_statements/expected/level_tracking.out | 9 ++++++++-
 contrib/pg_stat_statements/sql/level_tracking.sql      | 8 +++++++-
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/contrib/pg_stat_statements/expected/level_tracking.out b/contrib/pg_stat_statements/expected/level_tracking.out
index 35e889fabd27..a15d897e59b0 100644
--- a/contrib/pg_stat_statements/expected/level_tracking.out
+++ b/contrib/pg_stat_statements/expected/level_tracking.out
@@ -1543,6 +1543,13 @@ SELECT pg_stat_statements_reset() IS NOT NULL AS t;
 
 -- planner - all-level tracking.
 SET pg_stat_statements.track_planning = TRUE;
+-- Release all cached plans before the first function call.  This matters
+-- when debug_discard_caches is enabled, which would store a normalized
+-- version of the inner query of the function.  Forcing a plan rebuild
+-- ensures that a normalized version is always stored with the stats entry,
+-- while checking that the nesting level is computed correctly in the
+-- planner hook.
+DISCARD PLANS;
 SELECT PLUS_THREE(8);
  plus_three 
 ------------
@@ -1560,7 +1567,7 @@ SELECT toplevel, calls, rows, plans, query FROM pg_stat_statements
  toplevel | calls | rows | plans |                               query                                
 ----------+-------+------+-------+--------------------------------------------------------------------
  t        |     2 |    2 |     2 | SELECT PLUS_THREE($1)
- f        |     2 |    2 |     2 | SELECT i + 3 LIMIT 1
+ f        |     2 |    2 |     2 | SELECT i + $2 LIMIT $3
  t        |     1 |    1 |     0 | SELECT pg_stat_statements_reset() IS NOT NULL AS t
  t        |     0 |    0 |     1 | SELECT toplevel, calls, rows, plans, query FROM pg_stat_statements+
           |       |      |       |   ORDER BY query COLLATE "C"
diff --git a/contrib/pg_stat_statements/sql/level_tracking.sql b/contrib/pg_stat_statements/sql/level_tracking.sql
index 8dd3fc2df089..003efb8184b1 100644
--- a/contrib/pg_stat_statements/sql/level_tracking.sql
+++ b/contrib/pg_stat_statements/sql/level_tracking.sql
@@ -435,7 +435,13 @@ SELECT pg_stat_statements_reset() IS NOT NULL AS t;
 
 -- planner - all-level tracking.
 SET pg_stat_statements.track_planning = TRUE;
-
+-- Release all cached plans before the first function call.  This matters
+-- when debug_discard_caches is enabled, which would store a normalized
+-- version of the inner query of the function.  Forcing a plan rebuild
+-- ensures that a normalized version is always stored with the stats entry,
+-- while checking that the nesting level is computed correctly in the
+-- planner hook.
+DISCARD PLANS;
 SELECT PLUS_THREE(8);
 SELECT PLUS_THREE(10);
 
-- 
2.51.0

