On Fri, Mar 30, 2012 at 08:15:22PM +0200, Erik Rijkers wrote: > (in hopes that the current changes to tab-completion will help to get this > fixed) > > tab-completion goes wrong on SET setting=... > > example: > > If you want to input "set search_path=myschema;" without spaces around '=', > and you try tab-completion halfway the schemaname: > > set search_path=mysch > ^tab > > then the initial part of the schema name ('mysch') gets removed and replaced > with 'TO'. > > So that you now have: > > set search_path=TO <cursor> > > You lose the part of the schema name that was already input. > > With spaces that doesn't happen, but after all tabcompletion is about > avoiding keystrokes and errors. > > Tab-completion is great and this search_path-annoyance happens to me all the > time; my fingers > can't seem to learn this exception. > > (pgsql 9.2devel, problem also in latest 9.1.3)
I have fixed this with the attached patch. It does not do any further competion of DEFAULT or other known settings if the equal sign has no space before it. -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. +
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c new file mode 100644 index 8a74877..bfba1dd *** a/src/bin/psql/tab-complete.c --- b/src/bin/psql/tab-complete.c *************** psql_completion(char *text, int start, i *** 2842,2847 **** --- 2842,2848 ---- pg_strcasecmp(prev_wd, "TABLESPACE") != 0 && pg_strcasecmp(prev_wd, "SCHEMA") != 0 && prev_wd[strlen(prev_wd) - 1] != ')' && + prev_wd[strlen(prev_wd) - 1] != '=' && pg_strcasecmp(prev4_wd, "DOMAIN") != 0) COMPLETE_WITH_CONST("TO"); /* Suggest possible variable values */
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers