Re: Isolation and Concurrency in PG functions? - Mailing list pgsql-sql

From Tom Lane
Subject Re: Isolation and Concurrency in PG functions?
Date
Msg-id 14263.968688094@sss.pgh.pa.us
Whole thread Raw
In response to Isolation and Concurrency in PG functions?  (Roberto Mello <rmello@cc.usu.edu>)
List pgsql-sql
Roberto Mello <rmello@cc.usu.edu> writes:
> I am porting some VERY big functions to PG for a data warehousing system
> (that is GPL'd BTW) and it seems that the results of one portion of the
> function (e.g. a create table or a series of inserts) are invisible to
> the other parts which obviously causes the function (and following
> functions) to fail and is completely driving me nuts because I see the
> results when I do the queries interactively.

?? How are you defining these functions, exactly?  In SQL or PLPGSQL
functions, successive queries certainly do see each others' results,
for example

regression=# create table foot (f1 int);
CREATE
regression=# create function foo(int) returns int as
regression-# 'insert into foot values($1);
regression'# select count(*) from foot' language 'sql';
CREATE
regression=# select foo(1);foo
-----  1
(1 row)

regression=# select foo(1);foo
-----  2
(1 row)

If you are coding at the C level you may need to call
CommandCounterIncrement() between queries.
        regards, tom lane


pgsql-sql by date:

Previous
From: Oleg Bartunov
Date:
Subject: Re: need asap: bg_BG locale for FreeBSD
Next
From: Zeljko Trogrlic
Date:
Subject: Re: Tree structure