From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Martin Blazek <mblazek(at)8bc(dot)com>, pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #4629: PL/pgSQL issue |
Date: | 2009-02-02 19:43:01 |
Message-ID: | 162867790902021143p4e89dcabpc054d9fdcdb7acad@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Hello
2009/2/2 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:
> "Martin Blazek" <mblazek(at)8bc(dot)com> writes:
>> CREATE FUNCTION test() RETURNS integer AS $$
>> BEGIN
>> CREATE RULE "rule" AS ON INSERT TO "test" DO INSTEAD INSERT INTO "test"
>> VALUES (1);
>> END;$$ LANGUAGE plpgsql;
>
> Hm, I guess nobody ever tried to do that in plpgsql before. It's
> taking the INTO as starting a clause that returns values into plpgsql
> variables :-(.
>
> There's a special case in there to prevent INTO just after INSERT
> from being taken that way, but it only works when the INSERT is at
> the start of the statement :-(. Guess we need to change that.
>
> In the meantime, you can probably work around this by using EXECUTE,
> ie
>
We should ignore INTO keyword when statement starts with CREATE
keyword. This patch have to simple. I'll prepare it.
Regards
Pavel Stehule
> EXECUTE 'CREATE RULE "rule" AS ON INSERT TO "test" DO INSTEAD INSERT INTO "test" VALUES (1)';
>
> regards, tom lane
>
> --
> Sent via pgsql-bugs mailing list (pgsql-bugs(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-bugs
>
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2009-02-02 19:58:34 | Re: BUG #4629: PL/pgSQL issue |
Previous Message | Tom Lane | 2009-02-02 19:30:46 | Re: BUG #4629: PL/pgSQL issue |