Hello
one my customer reported a random issue. He uses a procedure with
following fragment
IF NOT EXISTS( SELECT relname FROM pg_class WHERE relname = 'tmp_object_state_change' AND relkind = 'r' AND
pg_table_is_visible(oid))THEN CREATE TEMPORARY TABLE tmp_object_state_change ( object_id INTEGER, object_hid
INTEGER, new_states INTEGER[], old_states INTEGER[] );ELSE TRUNCATE tmp_object_state_change;END IF;
These lines sometimes raise a error
Oct 25 20:13:44 db-s-01 postgres: <local5.warning> -- postgres[29970]:
[3-1] 2011-10-25 20:13:44 CEST adifd 29970 ERROR: cache lookup failed
for relation 319883311
Oct 25 20:13:44 db-s-01 postgres: <local5.warning> -- postgres[29970]:
[3-2] 2011-10-25 20:13:44 CEST adifd 29970 CONTEXT: SQL statement
"SELECT NOT EXISTS( SELECT relname FROM pg_class WHERE relname =
Oct 25 20:13:44 db-s-01 postgres: <local5.warning> -- postgres[29970]:
[3-3] 'tmp_object_state_change' AND relkind = 'r' AND
pg_table_is_visible(oid) )"
Oct 25 20:13:44 db-s-01 postgres: <local5.warning> -- postgres[29970]:
[3-4] PL/pgSQL function "update_object_states" line 2 at IF
Oct 25 20:13:44 db-s-01 postgres: <local5.warning> -- postgres[29970]:
[3-5] 2011-10-25 20:13:44 CEST adifd 29970 STATEMENT: SELECT
update_object_states($1::integer)
I don't see a reason why on this query cache should be broken,
He uses Pg 8.3.15.
Any idea?
Regards
Pavel Stehule