RE: [HACKERS] for row in select loop question
От | Michael Davis |
---|---|
Тема | RE: [HACKERS] for row in select loop question |
Дата | |
Msg-id | 93C04F1F5173D211A27900105AA8FCFC145236@lambic.prevuenet.com обсуждение исходный текст |
Список | pgsql-hackers |
Thanks. Declaring row as a record did the trick. I have a lot of tables and I am looking to more deeply understand the PostgreSQL security module. -----Original Message-----From: jwieck@debis.com [SMTP:jwieck@debis.com]Sent: Friday, March 05, 1999 3:00 AMTo: Michael DavisCc: hackers@postgreSQL.orgSubject: Re: [HACKERS] for row in select loop question >> 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_tablesLOOP> 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);" returnsan 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 wrongthan for being right. ## Let's break this rule - forgive me. ##======================================== jwieck@debis.com (Jan Wieck) #
В списке pgsql-hackers по дате отправления: