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