sorry, i wrote the funciton wrong. here is what i meant to write: CREATE OR REPLACE FUNCTION public.sample(varchar) RETURNS SETOF record AS ' DECLARE row RECORD; BEGIN LOCK TABLE table1 IN ROW SHARE MODE; FOR urlrow in EXECUTE \'SELECT * FROM "table1"\' LOOP UPDATE "table1" SET col1=5 WHERE "col2"=6 RETURN NEXT row; END LOOP; RETURN; END; ' LANGUAGE 'plpgsql' VOLATILE;
thanx, amir On Tue, 10 Aug 2004 15:53:33 -0700, Amir Zicherman <[EMAIL PROTECTED]> wrote: > will locks work inside functions or only in transactions? > > will this lock? .... > > CREATE OR REPLACE FUNCTION public.sample(varchar) > RETURNS SETOF record AS > ' > DECLARE > row RECORD; > BEGIN > LOCK TABLE "URL" IN ROW SHARE MODE; > FOR urlrow in EXECUTE \'SELECT * FROM "table1"\' > LOOP > UPDATE "table1" SET col1=5 WHERE "col2"=6 > RETURN NEXT row; > END LOOP; > RETURN; > END; > ' > LANGUAGE 'plpgsql' VOLATILE; > > thanx, amir > ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster