Re: [HACKERS] for row in select loop question

Поиск
Список
Период
Сортировка
От jwieck@debis.com (Jan Wieck)
Тема Re: [HACKERS] for row in select loop question
Дата
Msg-id m10IrOX-000EBQC@orion.SAPserv.Hamburg.dsh.de
обсуждение исходный текст
Ответ на for row in select loop question  (Michael Davis <michael.davis@prevuenet.com>)
Список pgsql-hackers
>
> The following function does not work:
>
> CREATE FUNCTION InstallPermissions(varchar, varchar) RETURNS int2 AS '
>    DECLARE
>         options ALIAS FOR $1;
>         username ALIAS FOR $2;
> BEGIN
>    FOR row IN select * from pg_tables LOOP
>           REVOKE ALL ON row.tablename FROM username;
>           GRANT options on row.tablename TO username;
>    END LOOP;
>    return 0;
>  END; ' LANGUAGE 'plpgsql';
>
> "select InstallPermissions('test1', 'test2);"  returns an error at "select".
> Any suggestions on how to eliminate the error?

    First you forgot to declare 'row'. Could be type record.

    Second  REVOKE and GRANT are utility statements not supported
    for prepared SPI plans and  thus  PL/pgSQL  currently  cannot
    execute them.


Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#======================================== jwieck@debis.com (Jan Wieck) #

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Oleg Broytmann
Дата:
Сообщение: Re: [HACKERS] Not enough memory for complex join
Следующее
От: Oleg Broytmann
Дата:
Сообщение: Bug on complex join