From: | "amir" <amir(at)binaryreef(dot)com> |
---|---|
To: | <pgsql-general(at)postgresql(dot)org> |
Subject: | getting dead locks with 2 functions |
Date: | 2004-08-06 00:41:37 |
Message-ID: | 200408052141.CDF46004@ms7.netsolmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
I have the following 2 functions and I'm getting deadlocks when I call them
from multiple threads. The first, I'm not sure why because I'm doing a
select for update. The second I'm doing an insert on, and I thought insert
will automatically do a lock as it inserts:
-------------FUNCTION 1: -------------
CREATE OR REPLACE FUNCTION
public.select_pend_visitation_for_unvisited_links(int4)
RETURNS SETOF record AS
'
DECLARE
urlrow RECORD;
BEGIN
FOR urlrow in EXECUTE \'SELECT * FROM "URL" WHERE visited=1::int2 LIMIT \'
|| $1::int4 || \'FOR UPDATE\'
LOOP
UPDATE "URL" SET visited=2 WHERE "URLID"::int8 =
urlrow."URLID"::int8;
RETURN NEXT urlrow;
END LOOP;
RETURN;
END;
'
LANGUAGE 'plpgsql' VOLATILE;
-------------FUNCTION 2: -------------
CREATE OR REPLACE FUNCTION public.add_link_to_url_table(varchar, int8, int4,
int2, bool, int2)
RETURNS void AS
'
INSERT INTO "URL"
("rootlessURLString","rootURLID","rootURLIDPartition","visited",
"createdAt","updatedAt","isValid","URLType")
VALUES ($1, $2, $3, $4, now(), now(), $5, $6 );
'
LANGUAGE 'sql' VOLATILE;
Thanx for the help,
amir
From | Date | Subject | |
---|---|---|---|
Next Message | Jim Wilson | 2004-08-06 01:44:05 | Commit Transaction Command |
Previous Message | Tom Lane | 2004-08-06 00:03:04 | Re: Sequence Question DOH! |