Re: RECORD.* doesn't work in Pl/PGSQL
От | Gurjeet Singh |
---|---|
Тема | Re: RECORD.* doesn't work in Pl/PGSQL |
Дата | |
Msg-id | 65937bea0804222334l43ad8a9m23fba6a035749adc@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: RECORD.* doesn't work in Pl/PGSQL ("Merlin Moncure" <mmoncure@gmail.com>) |
Список | pgsql-hackers |
On Wed, Apr 23, 2008 at 4:20 AM, Merlin Moncure <mmoncure@gmail.com> wrote:
<highlight>
<highlight>
<snip>
Sorry... that 1 in SELECT 1, rec.* was a leftover from a trial workarond... please ignore that.
Best regards,
--
gurjeet[.singh]@EnterpriseDB.com
singh.gurjeet@{ gmail | hotmail | indiatimes | yahoo }.com
EnterpriseDB http://www.enterprisedb.com
Mail sent from my BlackLaptop device
On Tue, Apr 22, 2008 at 4:10 PM, Gurjeet Singh <singh.gurjeet@gmail.com> wrote:
> RECORD.* doesn't work in plpgsql, but NEW.* and OLD.* do in trigger
> functions created in plpgsql.
>
> The example function process_emp_audit() on page
> http://www.postgresql.org/docs/8.3/interactive/plpgsql-trigger.html , shows
> that we can use OLD.* and NEW.* as:
>
> INSERT INTO emp_audit SELECT 'D', now(), user, OLD.*;
>
> but if I try to do the same thing in my own plpgsql function, it throws
> a runtime ERROR:
>
> create table t1( a int, b char );
> create table t2( a int, b char );
>
> create or replace function log_rotate() returns void as $$
> declare
> rec record;
> begin
>
> for rec in delete from t2 returning * loop
<highlight>
> insert into t1 select 1, rec.*; -- throws ERROR: record type has
<highlight>
you can do this:
> not been registered
> end loop;
>
> end;
> $$ language 'plpgsql';
<snip>
for rec in delete from t2 returning 1, * loop
Sorry... that 1 in SELECT 1, rec.* was a leftover from a trial workarond... please ignore that.
Best regards,
--
gurjeet[.singh]@EnterpriseDB.com
singh.gurjeet@{ gmail | hotmail | indiatimes | yahoo }.com
EnterpriseDB http://www.enterprisedb.com
Mail sent from my BlackLaptop device
В списке pgsql-hackers по дате отправления: