I create 2 temp tables on each connection to store session relevant variables.
It works beautifully with code I robbed accross postgresql mailinglists:
CREATE OR REPLACE FUNCTION set_quarant(mylvlquarant int4) RETURNS int4 AS $BODY$ BEGIN perform relname from pg_class where relname = 'quara_tmp' and case when has_schema_privilege(relnamespace, 'USAGE') then pg_table_is_visible(oid) else false end; if not found then create temporary table quara_tmp ( lvlquara integer ); else delete from quara_tmp; end if;
insert into quara_tmp values (mylvlquarant); return 0; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE;
CREATE OR REPLACE FUNCTION get_quarant() RETURNS int4 AS $BODY$ declare ergebnis int4; BEGIN perform relname from pg_class where relname = 'quara_tmp' and case when has_schema_privilege(relnamespace, 'USAGE') then pg_table_is_visible(oid) else false end; if not found then return 0; else select lvlquara from quara_tmp into ergebnis; end if;
if not found then ergebnis:=0; end if;
RETURN ergebnis; END; $BODY$ LANGUAGE 'plpgsql' STABLE;
Now I looked at system objects and detected, that schemas named PG_TEMPn, where n is a slowly growing integer, are created.
Those schemas seem to get more and more and more. Is anyprocess taking care of purging the ones no longer needed?
"PostgreSQL 8.1.3 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.4.2 (mingw-special)"
(yes, autovacuum is set up, yes, I have vacuumed the database manually in addition)
Harald
Post
-- GHUM Harald Massa persuadere et programmare Harald Armin Massa Reinsburgstraße 202b 70197 Stuttgart 0173/9409607 - Let's set so double the killer delete select all.