summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2022-04-13 20:26:34 +0000
committerTom Lane2022-04-13 20:26:34 +0000
commitb5607b0746f40b3f5b38004c64ccc9697ee1e222 (patch)
treef1215b331dc8a13617e1530849f2b99ae8d7c41d
parent139d46ee26a2c7813d02739d35fa305890643ac1 (diff)
Fix case sensitivity in psql's tab completion for GUC names.
Input for these should be case-insensitive, but was not completely so. Comparing to the similar queries for timezone names, I realized that we'd missed forcing the comparison pattern to lower-case. With that, it behaves as I expect. While here, flatten the sub-selects in these queries; I don't find that those add any readability. Discussion: https://postgr.es/m/3369130.1649348542@sss.pgh.pa.us
-rw-r--r--src/bin/psql/tab-complete.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 10e8dbc9b1..588c0841fe 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -1006,24 +1006,18 @@ static const SchemaQuery Query_for_trigger_of_table = {
/* Use COMPLETE_WITH_QUERY_VERBATIM with these queries for GUC names: */
#define Query_for_list_of_alter_system_set_vars \
-"SELECT name FROM "\
-" (SELECT pg_catalog.lower(name) AS name FROM pg_catalog.pg_settings "\
-" WHERE context != 'internal' "\
-" ) ss "\
-" WHERE name LIKE '%s'"
+"SELECT pg_catalog.lower(name) FROM pg_catalog.pg_settings "\
+" WHERE context != 'internal' "\
+" AND pg_catalog.lower(name) LIKE pg_catalog.lower('%s')"
#define Query_for_list_of_set_vars \
-"SELECT name FROM "\
-" (SELECT pg_catalog.lower(name) AS name FROM pg_catalog.pg_settings "\
-" WHERE context IN ('user', 'superuser') "\
-" ) ss "\
-" WHERE name LIKE '%s'"
+"SELECT pg_catalog.lower(name) FROM pg_catalog.pg_settings "\
+" WHERE context IN ('user', 'superuser') "\
+" AND pg_catalog.lower(name) LIKE pg_catalog.lower('%s')"
#define Query_for_list_of_show_vars \
-"SELECT name FROM "\
-" (SELECT pg_catalog.lower(name) AS name FROM pg_catalog.pg_settings "\
-" ) ss "\
-" WHERE name LIKE '%s'"
+"SELECT pg_catalog.lower(name) FROM pg_catalog.pg_settings "\
+" WHERE pg_catalog.lower(name) LIKE pg_catalog.lower('%s')"
#define Query_for_list_of_roles \
" SELECT rolname "\