Fix StatisticsObjIsVisibleExt() for pg_temp.
Noah Misch <noah@leadboat.com>
Fix StatisticsObjIsVisibleExt() for pg_temp. Neighbor get_statistics_object_oid() ignores objects in pg_temp, as has been the standard for non-relation, non-type namespace searches since CVE-2007-2138. Hence, most operations that name a statistics object correctly decline to map an unqualified name to a statistics object in pg_temp. StatisticsObjIsVisibleExt() did not. Consequently, pg_statistics_obj_is_visible() wrongly returned true for such objects, psql \dX wrongly listed them, and getObjectDescription()-based ereport() and pg_describe_object() wrongly omitted namespace qualification. Any malfunction beyond that would depend on how a human or application acts on those wrong indications. Commit d99d58cdc8c0b5b50ee92995e8575c100b1a458a introduced this. Back-patch to v13 (all supported versions). Reviewed-by: Nathan Bossart <nathandbossart@gmail.com> Discussion: https://postgr.es/m/20250920162116.2e.nmisch@google.com Backpatch-through: 13
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/catalog/namespace.c | modified | +3 −0 |
| src/test/regress/expected/stats_ext.out | modified | +14 −0 |
| src/test/regress/sql/stats_ext.sql | modified | +8 −0 |
Discussion
- StatisticsObjIsVisibleExt lacks "do not look in temp namespace" 2 messages · 2025-09-20 → 2025-09-22