diff --git a/doc/src/sgml/system-views.sgml b/doc/src/sgml/system-views.sgml
index e5fe423fc61..9ee1a2bfc6a 100644
--- a/doc/src/sgml/system-views.sgml
+++ b/doc/src/sgml/system-views.sgml
@@ -4414,6 +4414,16 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
+
+
+ tableidoid
+ (references pg_class.oid)
+
+
+ OID of table
+
+
+
attnamename
@@ -4424,6 +4434,16 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
+
+
+ attnumint2
+ (references pg_attribute.attnum)
+
+
+ Number of column described by this row
+
+
+
inheritedbool
@@ -4666,6 +4686,16 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
+
+
+ tableidoid
+ (references pg_class.oid)
+
+
+ OID of table
+
+
+
statistics_schemanamename
@@ -4686,6 +4716,16 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
+
+
+ statistics_idoid
+ (references pg_statistic_ext.oid)
+
+
+ OID of extended statistics object
+
+
+
statistics_ownername
@@ -4877,6 +4917,16 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
+
+
+ tableidoid
+ (references pg_class.oid)
+
+
+ OID of table the statistics object is defined on
+
+
+
statistics_schemanamename
@@ -4897,6 +4947,16 @@ SELECT * FROM pg_locks pl LEFT JOIN pg_prepared_xacts ppx
+
+
+ statistics_idoid
+ (references pg_statistic_ext.oid)
+
+
+ OID of extended statistics object
+
+
+
statistics_ownername
diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql
index 6d6dce18fa3..f1ed7b58f13 100644
--- a/src/backend/catalog/system_views.sql
+++ b/src/backend/catalog/system_views.sql
@@ -191,7 +191,9 @@ CREATE VIEW pg_stats WITH (security_barrier) AS
SELECT
nspname AS schemaname,
relname AS tablename,
+ attrelid AS tableid,
attname AS attname,
+ attnum,
stainherit AS inherited,
stanullfrac AS null_frac,
stawidth AS avg_width,
@@ -278,8 +280,10 @@ REVOKE ALL ON pg_statistic FROM public;
CREATE VIEW pg_stats_ext WITH (security_barrier) AS
SELECT cn.nspname AS schemaname,
c.relname AS tablename,
+ s.stxrelid AS tableid,
sn.nspname AS statistics_schemaname,
s.stxname AS statistics_name,
+ s.oid AS statistics_id,
pg_get_userbyid(s.stxowner) AS statistics_owner,
( SELECT array_agg(a.attname ORDER BY a.attnum)
FROM unnest(s.stxkeys) k
@@ -312,8 +316,10 @@ CREATE VIEW pg_stats_ext WITH (security_barrier) AS
CREATE VIEW pg_stats_ext_exprs WITH (security_barrier) AS
SELECT cn.nspname AS schemaname,
c.relname AS tablename,
+ s.stxrelid AS tableid,
sn.nspname AS statistics_schemaname,
s.stxname AS statistics_name,
+ s.oid AS statistics_id,
pg_get_userbyid(s.stxowner) AS statistics_owner,
stat.expr,
sd.stxdinherit AS inherited,
diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h
index eaaf2ff20b7..55a8fbbd509 100644
--- a/src/include/catalog/catversion.h
+++ b/src/include/catalog/catversion.h
@@ -57,6 +57,6 @@
*/
/* yyyymmddN */
-#define CATALOG_VERSION_NO 202603162
+#define CATALOG_VERSION_NO 202603171
#endif
diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out
index 9ed0a1756c0..32bea58db2c 100644
--- a/src/test/regress/expected/rules.out
+++ b/src/test/regress/expected/rules.out
@@ -2546,7 +2546,9 @@ pg_statio_user_tables| SELECT relid,
WHERE ((schemaname <> ALL (ARRAY['pg_catalog'::name, 'information_schema'::name])) AND (schemaname !~ '^pg_toast'::text));
pg_stats| SELECT n.nspname AS schemaname,
c.relname AS tablename,
+ a.attrelid AS tableid,
a.attname,
+ a.attnum,
s.stainherit AS inherited,
s.stanullfrac AS null_frac,
s.stawidth AS avg_width,
@@ -2638,8 +2640,10 @@ pg_stats| SELECT n.nspname AS schemaname,
WHERE ((NOT a.attisdropped) AND has_column_privilege(c.oid, a.attnum, 'select'::text) AND ((c.relrowsecurity = false) OR (NOT row_security_active(c.oid))));
pg_stats_ext| SELECT cn.nspname AS schemaname,
c.relname AS tablename,
+ s.stxrelid AS tableid,
sn.nspname AS statistics_schemaname,
s.stxname AS statistics_name,
+ s.oid AS statistics_id,
pg_get_userbyid(s.stxowner) AS statistics_owner,
( SELECT array_agg(a.attname ORDER BY a.attnum) AS array_agg
FROM (unnest(s.stxkeys) k(k)
@@ -2666,8 +2670,10 @@ pg_stats_ext| SELECT cn.nspname AS schemaname,
WHERE (pg_has_role(c.relowner, 'USAGE'::text) AND ((c.relrowsecurity = false) OR (NOT row_security_active(c.oid))));
pg_stats_ext_exprs| SELECT cn.nspname AS schemaname,
c.relname AS tablename,
+ s.stxrelid AS tableid,
sn.nspname AS statistics_schemaname,
s.stxname AS statistics_name,
+ s.oid AS statistics_id,
pg_get_userbyid(s.stxowner) AS statistics_owner,
stat.expr,
sd.stxdinherit AS inherited,
diff --git a/src/test/regress/expected/stats_import.out b/src/test/regress/expected/stats_import.out
index 0aa9f657376..fd660791ea9 100644
--- a/src/test/regress/expected/stats_import.out
+++ b/src/test/regress/expected/stats_import.out
@@ -78,7 +78,7 @@ SELECT COUNT(*) FROM pg_attribute
attnum > 0;
count
-------
- 15
+ 17
(1 row)
-- Create a view that is used purely for the type based on pg_stats_ext.
@@ -119,7 +119,7 @@ SELECT COUNT(*) FROM pg_attribute
attnum > 0;
count
-------
- 20
+ 22
(1 row)
-- Create a view that is used purely for the type based on pg_stats_ext_exprs.