On 2015-12-14 20:58:21 +0900, Michael Paquier wrote: > On Mon, Dec 14, 2015 at 8:49 PM, Andres Freund <and...@anarazel.de> wrote: > > On 2015-12-14 20:44:20 +0900, Michael Paquier wrote: > >> + /* > >> + * ALTER TABLE,INDEX,MATERIALIZED VIEW ALL IN TABLESPACE xxx OWNED > >> BY xxx > >> + * SET TABLESPACE. > >> + */ > >> + else if (pg_strcasecmp(prev9_wd, "ALL") == 0 && > >> + pg_strcasecmp(prev8_wd, "IN") == 0 && > >> + pg_strcasecmp(prev7_wd, "TABLESPACE") == 0 && > >> + pg_strcasecmp(prev5_wd, "OWNED") == 0 && > >> + pg_strcasecmp(prev4_wd, "BY") == 0 && > >> + pg_strcasecmp(prev2_wd, "SET") == 0 && > >> + pg_strcasecmp(prev_wd, "TABLESPACE") == 0) > >> + { > >> + COMPLETE_WITH_QUERY(Query_for_list_of_tablespaces); > >> + } > > > > Isn't that already handled by the normal SET TABLESPACE case? > > No, There is no SET TABLESPACE case, there is a TABLE SET TABLESPACE > though. Just removing the TABLE seems to be fine..
ALTER TABLE ALL IN TABLESPACE pg_default OWNED BY andres SET TABLESPACE <tab> works, because of /* * Finally, we look through the list of "things", such as TABLE, INDEX and * check if that was the previous word. If so, execute the query to get a * list of them. */ else { int i; for (i = 0; words_after_create[i].name; i++) { if (pg_strcasecmp(prev_wd, words_after_create[i].name) == 0) { if (words_after_create[i].query) COMPLETE_WITH_QUERY(words_after_create[i].query); else if (words_after_create[i].squery) COMPLETE_WITH_SCHEMA_QUERY(*words_after_create[i].squery, NULL); break; } } } -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers