How to mark a transaction as SERIALIZABLE?

From: Joe Carr <joe(dot)carr(at)gmail(dot)com>
To: pgsql-novice(at)postgresql(dot)org
Subject: How to mark a transaction as SERIALIZABLE?
Date: 2010-11-02 01:51:05
Message-ID: AANLkTikHGht_eA-fdKLiTRNVoMOVDeNwFni9mqB=c=Jd@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

In version 9.0, I've been reading
http://www.postgresql.org/docs/9.0/interactive/sql-begin.html. I've been
using the following :

CREATE OR REPLACE FUNCTION test(character varying)
RETURNS SETOF integer AS
$BODY$

BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;
--SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
RETURN 1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE

which returns with the error :
ERROR: syntax error at or near "TRANSACTION"
LINE 1: TRANSACTION ISOLATION LEVEL SERIALIZABLE

if the BEGIN line is empty with no semi-colon, the function will work :
CREATE OR REPLACE FUNCTION test(character varying)
RETURNS integer AS
$BODY$

BEGIN
--TRANSACTION ISOLATION LEVEL SERIALIZABLE;
--SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

RETURN 1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE

but if I place a semi-colon after BEGIN (e.g. BEGIN;), I get the error :
ERROR: syntax error at or near ";"
LINE 5: BEGIN;

So any help you may be able to provide in the BEGIN syntax (or whatever I'm
doing wrong) is greatly appreciated. Thanks!

-Joe

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Yogesh Sharma 2010-11-02 05:09:24 Re: SELECT triggers - Table Partitioning
Previous Message Majid Azimi 2010-11-01 21:33:42 SELECT triggers - Table Partitioning