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

Reply via email to