From: | jwieck(at)debis(dot)com (Jan Wieck) |
---|---|
To: | michael(dot)davis(at)prevuenet(dot)com (Michael Davis) |
Cc: | hackers(at)postgreSQL(dot)org |
Subject: | Re: [HACKERS] for row in select loop question |
Date: | 1999-03-05 09:59:48 |
Message-ID: | m10IrOX-000EBQC@orion.SAPserv.Hamburg.dsh.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(at)debis(dot)com (Jan Wieck) #
From | Date | Subject | |
---|---|---|---|
Next Message | Oleg Broytmann | 1999-03-05 13:13:12 | Bug on complex join |
Previous Message | Oleg Broytmann | 1999-03-05 09:50:49 | Re: [HACKERS] Not enough memory for complex join |