Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita2fc343

Browse files
committed
Clean up SQL emitted by psql/describe.c.
Fix assorted places that had not bothered with the convention ofprefixing catalog and function names with "pg_catalog.". Thatcould possibly result in query failure when running with a nondefaultsearch_path. Also fix two places that weren't quoting OID literals.I think the latter hasn't mattered much since about 7.3, but it's stilla bad idea to be doing it in 99 places and not in 2 others.Also remove a useless EXISTS sub-select that someone had stuck intodescribeOneTableDetails' queries for child tables. We just got the OIDout of pg_class, so I hardly see how checking that it exists in pg_classwas doing anything helpful.In passing, try to improve the emitted formatting of a couple ofthese queries, though I didn't work really hard on that. And mergeunnecessarily duplicative coding in some other places.Much of this was new in HEAD, but some was quite old; back-patchas appropriate.
1 parent8c34876 commita2fc343

File tree

1 file changed

+34
-34
lines changed

1 file changed

+34
-34
lines changed

‎src/bin/psql/describe.c

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1553,8 +1553,8 @@ describeOneTableDetails(const char *schemaname,
15531553
appendPQExpBufferStr(&buf,",\n NULL AS indexdef");
15541554
if (tableinfo.relkind=='f'&&pset.sversion >=90200)
15551555
appendPQExpBufferStr(&buf,",\n CASE WHEN attfdwoptions IS NULL THEN '' ELSE "
1556-
" '(' || array_to_string(ARRAY(SELECT quote_ident(option_name) || ' ' || quote_literal(option_value) FROM "
1557-
" pg_options_to_table(attfdwoptions)), ', ') || ')' END AS attfdwoptions");
1556+
" '(' ||pg_catalog.array_to_string(ARRAY(SELECTpg_catalog.quote_ident(option_name) || ' ' ||pg_catalog.quote_literal(option_value) FROM "
1557+
"pg_catalog.pg_options_to_table(attfdwoptions)), ', ') || ')' END AS attfdwoptions");
15581558
else
15591559
appendPQExpBufferStr(&buf,",\n NULL AS attfdwoptions");
15601560
if (verbose)
@@ -1904,7 +1904,7 @@ describeOneTableDetails(const char *schemaname,
19041904
"\n a.attnum=d.refobjsubid)"
19051905
"\nWHERE d.classid='pg_catalog.pg_class'::pg_catalog.regclass"
19061906
"\n AND d.refclassid='pg_catalog.pg_class'::pg_catalog.regclass"
1907-
"\n AND d.objid=%s"
1907+
"\n AND d.objid='%s'"
19081908
"\n AND d.deptype='a'",
19091909
oid);
19101910

@@ -2138,7 +2138,7 @@ describeOneTableDetails(const char *schemaname,
21382138
{
21392139
printfPQExpBuffer(&buf,
21402140
"SELECT pol.polname,\n"
2141-
"CASE WHEN pol.polroles = '{0}' THEN NULL ELSE array_to_string(array(select rolname from pg_roles where oid = any (pol.polroles) order by 1),',') END,\n"
2141+
"CASE WHEN pol.polroles = '{0}' THEN NULL ELSEpg_catalog.array_to_string(array(select rolname frompg_catalog.pg_roles where oid = any (pol.polroles) order by 1),',') END,\n"
21422142
"pg_catalog.pg_get_expr(pol.polqual, pol.polrelid),\n"
21432143
"pg_catalog.pg_get_expr(pol.polwithcheck, pol.polrelid),\n"
21442144
"CASE pol.polcmd \n"
@@ -2498,13 +2498,13 @@ describeOneTableDetails(const char *schemaname,
24982498
/* Footer information about foreign table */
24992499
printfPQExpBuffer(&buf,
25002500
"SELECT s.srvname,\n"
2501-
"array_to_string(ARRAY(SELECT"
2502-
"quote_ident(option_name) || ' ' ||"
2503-
"quote_literal(option_value) FROM"
2504-
"pg_options_to_table(ftoptions)), ', ')"
2501+
"pg_catalog.array_to_string(ARRAY(\n"
2502+
"SELECT pg_catalog.quote_ident(option_name)"
2503+
"|| ' ' || pg_catalog.quote_literal(option_value)\n"
2504+
"FROM pg_catalog.pg_options_to_table(ftoptions)), ', ')\n"
25052505
"FROM pg_catalog.pg_foreign_table f,\n"
25062506
" pg_catalog.pg_foreign_server s\n"
2507-
"WHERE f.ftrelid =%s AND s.oid = f.ftserver;",
2507+
"WHERE f.ftrelid ='%s' AND s.oid = f.ftserver;",
25082508
oid);
25092509
result=PSQLexec(buf.data);
25102510
if (!result)
@@ -2935,16 +2935,16 @@ listDbRoleSettings(const char *pattern, const char *pattern2)
29352935

29362936
printfPQExpBuffer(&buf,"SELECT rolname AS \"%s\", datname AS \"%s\",\n"
29372937
"pg_catalog.array_to_string(setconfig, E'\\n') AS \"%s\"\n"
2938-
"FROM pg_db_role_setting AS s\n"
2939-
"LEFT JOIN pg_database ONpg_database.oid = setdatabase\n"
2940-
"LEFT JOIN pg_roles ONpg_roles.oid = setrole\n",
2938+
"FROMpg_catalog.pg_db_role_setting s\n"
2939+
"LEFT JOINpg_catalog.pg_databasedONd.oid = setdatabase\n"
2940+
"LEFT JOINpg_catalog.pg_rolesrONr.oid = setrole\n",
29412941
gettext_noop("Role"),
29422942
gettext_noop("Database"),
29432943
gettext_noop("Settings"));
29442944
havewhere=processSQLNamePattern(pset.db,&buf,pattern, false, false,
2945-
NULL,"pg_roles.rolname",NULL,NULL);
2945+
NULL,"r.rolname",NULL,NULL);
29462946
processSQLNamePattern(pset.db,&buf,pattern2,havewhere, false,
2947-
NULL,"pg_database.datname",NULL,NULL);
2947+
NULL,"d.datname",NULL,NULL);
29482948
appendPQExpBufferStr(&buf,"ORDER BY 1, 2;");
29492949
}
29502950
else
@@ -3173,13 +3173,13 @@ listLanguages(const char *pattern, bool verbose, bool showSystem)
31733173
{
31743174
appendPQExpBuffer(&buf,
31753175
",\n NOT l.lanispl AS \"%s\",\n"
3176-
" l.lanplcallfoid::regprocedure AS \"%s\",\n"
3177-
" l.lanvalidator::regprocedure AS \"%s\",\n ",
3176+
" l.lanplcallfoid::pg_catalog.regprocedure AS \"%s\",\n"
3177+
" l.lanvalidator::pg_catalog.regprocedure AS \"%s\",\n ",
31783178
gettext_noop("Internal Language"),
31793179
gettext_noop("Call Handler"),
31803180
gettext_noop("Validator"));
31813181
if (pset.sversion >=90000)
3182-
appendPQExpBuffer(&buf,"l.laninline::regprocedure AS \"%s\",\n ",
3182+
appendPQExpBuffer(&buf,"l.laninline::pg_catalog.regprocedure AS \"%s\",\n ",
31833183
gettext_noop("Inline Handler"));
31843184
printACLColumn(&buf,"l.lanacl");
31853185
}
@@ -4304,10 +4304,10 @@ listForeignDataWrappers(const char *pattern, bool verbose)
43044304
printACLColumn(&buf,"fdwacl");
43054305
appendPQExpBuffer(&buf,
43064306
",\n CASE WHEN fdwoptions IS NULL THEN '' ELSE "
4307-
" '(' || array_to_string(ARRAY(SELECT "
4308-
" quote_ident(option_name) || ' ' || "
4309-
" quote_literal(option_value) FROM "
4310-
" pg_options_to_table(fdwoptions)), ', ') || ')' "
4307+
" '(' ||pg_catalog.array_to_string(ARRAY(SELECT "
4308+
"pg_catalog.quote_ident(option_name) || ' ' || "
4309+
"pg_catalog.quote_literal(option_value) FROM "
4310+
"pg_catalog.pg_options_to_table(fdwoptions)), ', ') || ')' "
43114311
" END AS \"%s\"",
43124312
gettext_noop("FDW Options"));
43134313

@@ -4385,10 +4385,10 @@ listForeignServers(const char *pattern, bool verbose)
43854385
" s.srvtype AS \"%s\",\n"
43864386
" s.srvversion AS \"%s\",\n"
43874387
" CASE WHEN srvoptions IS NULL THEN '' ELSE "
4388-
" '(' || array_to_string(ARRAY(SELECT "
4389-
" quote_ident(option_name) || ' ' || "
4390-
" quote_literal(option_value) FROM "
4391-
" pg_options_to_table(srvoptions)), ', ') || ')' "
4388+
" '(' ||pg_catalog.array_to_string(ARRAY(SELECT "
4389+
"pg_catalog.quote_ident(option_name) || ' ' || "
4390+
"pg_catalog.quote_literal(option_value) FROM "
4391+
"pg_catalog.pg_options_to_table(srvoptions)), ', ') || ')' "
43924392
" END AS \"%s\",\n"
43934393
" d.description AS \"%s\"",
43944394
gettext_noop("Type"),
@@ -4403,7 +4403,7 @@ listForeignServers(const char *pattern, bool verbose)
44034403

44044404
if (verbose)
44054405
appendPQExpBufferStr(&buf,
4406-
"LEFT JOIN pg_description d\n "
4406+
"LEFT JOINpg_catalog.pg_description d\n "
44074407
"ON d.classoid = s.tableoid AND d.objoid = s.oid "
44084408
"AND d.objsubid = 0\n");
44094409

@@ -4459,10 +4459,10 @@ listUserMappings(const char *pattern, bool verbose)
44594459
if (verbose)
44604460
appendPQExpBuffer(&buf,
44614461
",\n CASE WHEN umoptions IS NULL THEN '' ELSE "
4462-
" '(' || array_to_string(ARRAY(SELECT "
4463-
" quote_ident(option_name) || ' ' || "
4464-
" quote_literal(option_value) FROM "
4465-
" pg_options_to_table(umoptions)), ', ') || ')' "
4462+
" '(' ||pg_catalog.array_to_string(ARRAY(SELECT "
4463+
"pg_catalog.quote_ident(option_name) || ' ' || "
4464+
"pg_catalog.quote_literal(option_value) FROM "
4465+
"pg_catalog.pg_options_to_table(umoptions)), ', ') || ')' "
44664466
" END AS \"%s\"",
44674467
gettext_noop("FDW Options"));
44684468

@@ -4522,10 +4522,10 @@ listForeignTables(const char *pattern, bool verbose)
45224522
if (verbose)
45234523
appendPQExpBuffer(&buf,
45244524
",\n CASE WHEN ftoptions IS NULL THEN '' ELSE "
4525-
" '(' || array_to_string(ARRAY(SELECT "
4526-
" quote_ident(option_name) || ' ' || "
4527-
" quote_literal(option_value) FROM "
4528-
" pg_options_to_table(ftoptions)), ', ') || ')' "
4525+
" '(' ||pg_catalog.array_to_string(ARRAY(SELECT "
4526+
"pg_catalog.quote_ident(option_name) || ' ' || "
4527+
"pg_catalog.quote_literal(option_value) FROM "
4528+
"pg_catalog.pg_options_to_table(ftoptions)), ', ') || ')' "
45294529
" END AS \"%s\",\n"
45304530
" d.description AS \"%s\"",
45314531
gettext_noop("FDW Options"),

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp