Excerpts from Josh Kupershmidt's message of mié oct 19 23:50:58 -0300 2011: > On Wed, Oct 19, 2011 at 10:40 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > > Josh Kupershmidt <schmi...@gmail.com> writes: > >> Incidentally, I was wondering what the heck was up with a clause like this: > >> else if (pg_strcasecmp(prev_wd, "EXECUTE") == 0 && > >> pg_strcasecmp(prev2_wd, "EXECUTE") == 0) > > > > Hmm, maybe || was meant not && ? It seems pretty unlikely that the > > above test would ever trigger on valid SQL input. > > Well, changing '&&' to '||' breaks the stated comment of the patch, namely: > /* must not match CREATE TRIGGER ... EXECUTE PROCEDURE */ > > I assume this is an accepted quirk of previous_word() since we have > this existing similar code: > > /* DROP, but watch out for DROP embedded in other commands */ > /* complete with something you can drop */ > else if (pg_strcasecmp(prev_wd, "DROP") == 0 && > pg_strcasecmp(prev2_wd, "DROP") == 0)
Maybe both are wrong, though the DROP case seems to work so maybe it's just dead code. This was introduced in commit 90725929465474648de133d216b873bdb69fe357: *************** *** 674,685 **** psql_completion(char *text, int start, int end) else if (pg_strcasecmp(prev_wd, "CREATE") == 0) matches = completion_matches(text, create_command_generator); ! /* DROP, except ALTER (TABLE|DOMAIN|GROUP) sth DROP */ /* complete with something you can drop */ else if (pg_strcasecmp(prev_wd, "DROP") == 0 && ! pg_strcasecmp(prev3_wd, "TABLE") != 0 && ! pg_strcasecmp(prev3_wd, "DOMAIN") != 0 && ! pg_strcasecmp(prev3_wd, "GROUP") != 0) matches = completion_matches(text, drop_command_generator); /* ALTER */ --- 674,683 ---- else if (pg_strcasecmp(prev_wd, "CREATE") == 0) matches = completion_matches(text, create_command_generator); ! /* DROP, but watch out for DROP embedded in other commands */ /* complete with something you can drop */ else if (pg_strcasecmp(prev_wd, "DROP") == 0 && ! pg_strcasecmp(prev2_wd, "DROP") == 0) matches = completion_matches(text, drop_command_generator); /* ALTER */ -- Álvaro Herrera <alvhe...@commandprompt.com> The PostgreSQL Company - Command Prompt, Inc. PostgreSQL Replication, Consulting, Custom Development, 24x7 support -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers