diff options
author | Tom Lane | 2022-04-13 20:26:34 +0000 |
---|---|---|
committer | Tom Lane | 2022-04-13 20:26:34 +0000 |
commit | b5607b0746f40b3f5b38004c64ccc9697ee1e222 (patch) | |
tree | f1215b331dc8a13617e1530849f2b99ae8d7c41d | |
parent | 139d46ee26a2c7813d02739d35fa305890643ac1 (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.c | 22 |
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 "\ |