From: | Thomas Chille <thomas(dot)chille(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Are subselects treated as atomic single commands? |
Date: | 2004-11-24 15:12:42 |
Message-ID: | cad2de1c041124071225c92cf2@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
the docu about the Read Committed Transaction Isolation Level pointed
out: "... The point at issue here is whether or not within a single
command we see an absolutely consistent view of the database.".
Because i dont want to use the Serializable Transaction Isolation
Level or table locks if it not necessary i have one question:
Would the insert command with that subselect treated as one single
command and can i so prevent a race condition between multiple
function calls?
CREATE OR REPLACE FUNCTION "public"."count_parameter" (name, integer)
RETURNS "pg_catalog"."void" AS'
BEGIN
INSERT INTO parameter (parameter_name, parameter_value) SELECT $1,
$2 WHERE (
SELECT COUNT(*) = 0 FROM parameter WHERE parameter_name = $1
);
IF NOT FOUND THEN
UPDATE parameter SET parameter_value = parameter_value + $2
WHERE parameter_name = $1;
END IF;
RETURN;
END;
'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
best regards,
thomas
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2004-11-24 15:21:08 | Re: Moving/Using Postgres Binaries on multiple machines |
Previous Message | Richard Huxton | 2004-11-24 15:08:35 | Re: Performance |