From 58173141d8b2bc730589a30c93474b6bc780342b Mon Sep 17 00:00:00 2001
From: Corey Huinker <corey.huinker@gmail.com>
Date: Tue, 10 Mar 2026 13:25:29 -0400
Subject: [PATCH v7 1/3] Add test view pg_stats_check.

Add the view stats_import.pg_stats_check, allowing the columns selected
to be changed across all tests using the view by just changing the the
view definition.

This will allow for us to seamlessly add new columns that we do want to
see in the test results (attnum) while also allowing us to screen out
new columns that cannot be in the test results (tableid).
---
 src/test/regress/expected/stats_import.out | 65 +++++++++++++---------
 src/test/regress/sql/stats_import.sql      | 61 ++++++++++++--------
 2 files changed, 76 insertions(+), 50 deletions(-)

diff --git a/src/test/regress/expected/stats_import.out b/src/test/regress/expected/stats_import.out
index c7adb783da2..2f538023f38 100644
--- a/src/test/regress/expected/stats_import.out
+++ b/src/test/regress/expected/stats_import.out
@@ -1,5 +1,17 @@
 CREATE SCHEMA stats_import;
 --
+-- Set up convenience views. Only stable values can be exposed by these
+-- views.
+--
+CREATE VIEW stats_import.pg_stats_check AS
+SELECT schemaname, tablename, attname, inherited, null_frac, avg_width,
+    n_distinct, most_common_vals::text AS most_common_vals, most_common_freqs,
+    histogram_bounds::text AS histogram_bounds, correlation,
+    most_common_elems::text AS most_common_elems, most_common_elem_freqs,
+    elem_count_histogram, range_length_histogram::text AS range_length_histogram,
+    range_empty_frac, range_bounds_histogram::text AS range_bounds_histogram
+FROM pg_stats;
+--
 -- Setup functions for set-difference convenience functions
 --
 -- Test to detect any new columns added to pg_statistic.  If any columns
@@ -643,7 +655,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -670,7 +682,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -695,7 +707,7 @@ WARNING:  unrecognized argument name: "nope"
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -721,7 +733,7 @@ WARNING:  argument "most_common_vals" must be specified when argument "most_comm
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -747,7 +759,7 @@ WARNING:  argument "most_common_freqs" must be specified when argument "most_com
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -775,7 +787,7 @@ WARNING:  argument "most_common_freqs" must be specified when argument "most_com
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -802,7 +814,7 @@ WARNING:  invalid input syntax for type integer: "four"
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -827,7 +839,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -853,7 +865,7 @@ WARNING:  "histogram_bounds" array must not contain null values
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -877,7 +889,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -903,7 +915,7 @@ WARNING:  argument "elem_count_histogram" array must not contain null values
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -928,7 +940,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -956,7 +968,7 @@ DETAIL:  Cannot set STATISTIC_KIND_RANGE_LENGTH_HISTOGRAM or STATISTIC_KIND_BOUN
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -982,7 +994,7 @@ WARNING:  argument "range_empty_frac" must be specified when argument "range_len
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -1008,7 +1020,7 @@ WARNING:  argument "range_length_histogram" must be specified when argument "ran
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -1033,7 +1045,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -1060,7 +1072,7 @@ DETAIL:  Cannot set STATISTIC_KIND_RANGE_LENGTH_HISTOGRAM or STATISTIC_KIND_BOUN
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -1084,7 +1096,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -1112,7 +1124,7 @@ DETAIL:  Cannot set STATISTIC_KIND_MCELEM or STATISTIC_KIND_DECHIST.
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -1140,7 +1152,7 @@ DETAIL:  Cannot set STATISTIC_KIND_MCELEM or STATISTIC_KIND_DECHIST.
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -1166,7 +1178,7 @@ WARNING:  argument "most_common_elem_freqs" must be specified when argument "mos
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -1192,7 +1204,7 @@ WARNING:  argument "most_common_elems" must be specified when argument "most_com
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -1217,7 +1229,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -1244,7 +1256,7 @@ DETAIL:  Cannot set STATISTIC_KIND_MCELEM or STATISTIC_KIND_DECHIST.
 (1 row)
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -3362,8 +3374,9 @@ SELECT COUNT(*) FROM stats_import.test_range_expr_null
 (1 row)
 
 DROP SCHEMA stats_import CASCADE;
-NOTICE:  drop cascades to 18 other objects
-DETAIL:  drop cascades to view stats_import.pg_statistic_flat_t
+NOTICE:  drop cascades to 19 other objects
+DETAIL:  drop cascades to view stats_import.pg_stats_check
+drop cascades to view stats_import.pg_statistic_flat_t
 drop cascades to function stats_import.pg_statistic_flat(text)
 drop cascades to function stats_import.pg_statistic_get_difference(text,text)
 drop cascades to view stats_import.pg_stats_ext_flat_t
diff --git a/src/test/regress/sql/stats_import.sql b/src/test/regress/sql/stats_import.sql
index 0518bbf6f42..c36bdaf78ee 100644
--- a/src/test/regress/sql/stats_import.sql
+++ b/src/test/regress/sql/stats_import.sql
@@ -1,5 +1,18 @@
 CREATE SCHEMA stats_import;
 
+--
+-- Set up convenience views. Only stable values can be exposed by these
+-- views.
+--
+CREATE VIEW stats_import.pg_stats_check AS
+SELECT schemaname, tablename, attname, inherited, null_frac, avg_width,
+    n_distinct, most_common_vals::text AS most_common_vals, most_common_freqs,
+    histogram_bounds::text AS histogram_bounds, correlation,
+    most_common_elems::text AS most_common_elems, most_common_elem_freqs,
+    elem_count_histogram, range_length_histogram::text AS range_length_histogram,
+    range_empty_frac, range_bounds_histogram::text AS range_bounds_histogram
+FROM pg_stats;
+
 --
 -- Setup functions for set-difference convenience functions
 --
@@ -521,7 +534,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     'n_distinct', 0.6::real);
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -540,7 +553,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     'null_frac', 0.4::real);
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -556,7 +569,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     'nope', 0.5::real);
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -573,7 +586,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -590,7 +603,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -608,7 +621,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -626,7 +639,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -643,7 +656,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -660,7 +673,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -676,7 +689,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -693,7 +706,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -710,7 +723,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -728,7 +741,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -745,7 +758,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -762,7 +775,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -779,7 +792,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -796,7 +809,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -812,7 +825,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -830,7 +843,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -848,7 +861,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -865,7 +878,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -882,7 +895,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -899,7 +912,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
@@ -916,7 +929,7 @@ SELECT pg_catalog.pg_restore_attribute_stats(
     );
 
 SELECT *
-FROM pg_stats
+FROM stats_import.pg_stats_check
 WHERE schemaname = 'stats_import'
 AND tablename = 'test'
 AND inherited = false
-- 
2.47.3

