"Florian G. Pflug" <[EMAIL PROTECTED]> writes: > 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;
That wouldn't follow the expected semantics if there's a concurrent update, because the updated row would always fail the WHERE clause, and thus the update would just silently not happen. (I'm thinking about READ COMMITTED mode of course --- in SERIALIZABLE you'd just get the expected error.) You'd have to find some way to pump the row's most up-to-date version through the cursor's query plan, a la EvalPlanQual, to see if it still met the cursor's WHERE condition. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster