From 68782c75ac3de636511274d4699355533d7bfa20 Mon Sep 17 00:00:00 2001 From: Corey Huinker Date: Tue, 10 Mar 2026 13:25:29 -0400 Subject: [PATCH v5 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 | 64 +++++++++++++--------- src/test/regress/sql/stats_import.sql | 60 ++++++++++++-------- 2 files changed, 74 insertions(+), 50 deletions(-) diff --git a/src/test/regress/expected/stats_import.out b/src/test/regress/expected/stats_import.out index c7adb783da2..12d70bc4723 100644 --- a/src/test/regress/expected/stats_import.out +++ b/src/test/regress/expected/stats_import.out @@ -1,5 +1,16 @@ CREATE SCHEMA stats_import; -- +-- Set up convenience 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 +654,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 +681,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 +706,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 +732,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 +758,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 +786,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 +813,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 +838,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 +864,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 +888,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 +914,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 +939,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 +967,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 +993,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 +1019,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 +1044,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 +1071,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 +1095,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 +1123,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 +1151,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 +1177,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 +1203,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 +1228,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 +1255,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 +3373,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..fe54eb46f43 100644 --- a/src/test/regress/sql/stats_import.sql +++ b/src/test/regress/sql/stats_import.sql @@ -1,5 +1,17 @@ CREATE SCHEMA stats_import; +-- +-- Set up convenience 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 +533,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 +552,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 +568,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 +585,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 +602,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 +620,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 +638,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 +655,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 +672,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 +688,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 +705,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 +722,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 +740,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 +757,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 +774,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 +791,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 +808,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 +824,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 +842,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 +860,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 +877,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 +894,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 +911,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 +928,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 base-commit: a630ac5c2016e523a1c29df117b7c1a563a7f6f8 -- 2.53.0