From ce6b662aae7abc8b533b0cfa8fff50a9001508b1 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera Date: Mon, 30 Aug 2021 14:01:29 -0400 Subject: [PATCH] psql: Fix name quoting on extended statistics Per our message style guidelines, for human consumption we quote qualified names as a whole rather than each part separately; but commits bc085205c8a4 introduced a deviation for extended statistics and a4d75c86bf15 copied it. I don't agree with this policy applying to names shown by psql, but that's a poor reason to deviate from the practice only in two obscure corners, so make said corners use the same style as everywhere else. Backpatch to 14. The first of these is older, but I'm not sure we want to destabilize the psql output in the older branches for such a small thing. Discussion: https://postgr.es/m/20210828181618.GS26465@telsasoft.com --- src/bin/psql/describe.c | 4 ++-- src/test/regress/expected/create_table_like.out | 12 ++++++------ src/test/regress/expected/stats_ext.out | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index 37ca88a8e26..fe98270acd1 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -2917,7 +2917,7 @@ describeOneTableDetails(const char *schemaname, printfPQExpBuffer(&buf, " "); /* statistics object name (qualified with namespace) */ - appendPQExpBuffer(&buf, "\"%s\".\"%s\"", + appendPQExpBuffer(&buf, "\"%s.%s\"", PQgetvalue(result, i, 2), PQgetvalue(result, i, 3)); @@ -3012,7 +3012,7 @@ describeOneTableDetails(const char *schemaname, printfPQExpBuffer(&buf, " "); /* statistics object name (qualified with namespace) */ - appendPQExpBuffer(&buf, "\"%s\".\"%s\" (", + appendPQExpBuffer(&buf, "\"%s.%s\" (", PQgetvalue(result, i, 2), PQgetvalue(result, i, 3)); diff --git a/src/test/regress/expected/create_table_like.out b/src/test/regress/expected/create_table_like.out index 4dc5e6aa5fb..e410266d71f 100644 --- a/src/test/regress/expected/create_table_like.out +++ b/src/test/regress/expected/create_table_like.out @@ -416,8 +416,8 @@ Indexes: Check constraints: "ctlt1_a_check" CHECK (length(a) > 2) Statistics objects: - "public"."ctlt_all_a_b_stat" ON a, b FROM ctlt_all - "public"."ctlt_all_expr_stat" ON ((a || b)) FROM ctlt_all + "public.ctlt_all_a_b_stat" ON a, b FROM ctlt_all + "public.ctlt_all_expr_stat" ON ((a || b)) FROM ctlt_all SELECT c.relname, objsubid, description FROM pg_description, pg_index i, pg_class c WHERE classoid = 'pg_class'::regclass AND objoid = i.indexrelid AND c.oid = i.indexrelid AND i.indrelid = 'ctlt_all'::regclass ORDER BY c.relname, objsubid; relname | objsubid | description @@ -456,8 +456,8 @@ Indexes: Check constraints: "ctlt1_a_check" CHECK (length(a) > 2) Statistics objects: - "public"."pg_attrdef_a_b_stat" ON a, b FROM public.pg_attrdef - "public"."pg_attrdef_expr_stat" ON ((a || b)) FROM public.pg_attrdef + "public.pg_attrdef_a_b_stat" ON a, b FROM public.pg_attrdef + "public.pg_attrdef_expr_stat" ON ((a || b)) FROM public.pg_attrdef DROP TABLE public.pg_attrdef; -- Check that LIKE isn't confused when new table masks the old, either @@ -478,8 +478,8 @@ Indexes: Check constraints: "ctlt1_a_check" CHECK (length(a) > 2) Statistics objects: - "ctl_schema"."ctlt1_a_b_stat" ON a, b FROM ctlt1 - "ctl_schema"."ctlt1_expr_stat" ON ((a || b)) FROM ctlt1 + "ctl_schema.ctlt1_a_b_stat" ON a, b FROM ctlt1 + "ctl_schema.ctlt1_expr_stat" ON ((a || b)) FROM ctlt1 ROLLBACK; DROP TABLE ctlt1, ctlt2, ctlt3, ctlt4, ctlt12_storage, ctlt12_comments, ctlt1_inh, ctlt13_inh, ctlt13_like, ctlt_all, ctla, ctlb CASCADE; diff --git a/src/test/regress/expected/stats_ext.out b/src/test/regress/expected/stats_ext.out index fa9fa9c8f0f..45992943fda 100644 --- a/src/test/regress/expected/stats_ext.out +++ b/src/test/regress/expected/stats_ext.out @@ -92,7 +92,7 @@ ALTER TABLE ab1 DROP COLUMN a; b | integer | | | c | integer | | | Statistics objects: - "public"."ab1_b_c_stats" ON b, c FROM ab1 + "public.ab1_b_c_stats" ON b, c FROM ab1 -- Ensure statistics are dropped when table is SELECT stxname FROM pg_statistic_ext WHERE stxname LIKE 'ab1%'; @@ -124,7 +124,7 @@ ALTER STATISTICS ab1_a_b_stats SET STATISTICS 0; a | integer | | | b | integer | | | Statistics objects: - "public"."ab1_a_b_stats" ON a, b FROM ab1; STATISTICS 0 + "public.ab1_a_b_stats" ON a, b FROM ab1; STATISTICS 0 ANALYZE ab1; SELECT stxname, stxdndistinct, stxddependencies, stxdmcv @@ -144,7 +144,7 @@ ALTER STATISTICS ab1_a_b_stats SET STATISTICS -1; a | integer | | | | plain | | b | integer | | | | plain | | Statistics objects: - "public"."ab1_a_b_stats" ON a, b FROM ab1 + "public.ab1_a_b_stats" ON a, b FROM ab1 -- partial analyze doesn't build stats either ANALYZE ab1 (a);