From: | "Florian G(dot) Pflug" <fgp(at)phlo(dot)org> |
---|---|
To: | Gavin Sherry <swm(at)linuxworld(dot)com(dot)au> |
Cc: | Golden Liu <goldenliu(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: UPDATE/DELETE XXX WHERE CURRENT OF cursor_name |
Date: | 2006-07-24 15:12:18 |
Message-ID: | 44C4E352.6090704@phlo.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Gavin Sherry wrote:
> On Mon, 24 Jul 2006, Golden Liu wrote:
>
>> begin;
>> declare foo cursor for select * from bar for update;
>> fetch foo;
>> update bar set abc='def' where current of foo;
>> fetch foo;
>> delete from bar where current of foo;
>> commit;
> No one has stepped up to do this for 8.2 so unfortunately you will most
> likely not see this within the next year or so :-(.
Couldn't this be emulated by doing
begin;
declare foo cursor for select * from bar for update;
fetch foo into v_foo ;
update bar set abc='def' where ctid = v_foo.ctid;
fetch foo into v_foo ;
delete from bar where ctid = v_foo.ctid;
commit;
Or could a concurrent vacuum run lead to the wrong
rows being updated/deleted?
greetings, Florian Pflug
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-07-24 15:13:55 | Better name/syntax for "online" index creation |
Previous Message | Sergey E. Koposov | 2006-07-24 15:10:03 | Re: patch implementing the multi-argument aggregates (SOC |