On Thu, 31 May 2001, Tom Lane wrote:
> Kovacs Zoltan <kovacsz@pc10.radnoti-szeged.sulinet.hu> writes:
> > Starting pg_dump, this error occured (there is no output dump,
> > unfortunately). Getting closer, I got this:
>
> > tir=# SELECT pg_get_viewdef(c.relname) AS definition FROM pg_class c
> > offset 441 limit 1;
> > ERROR: cache lookup for proc 4303134 failed
>
> I think you've got a view or rule that refers to a function you dropped.
It seems that there is a problem with the views. The SELECT you can see
above is a part of the definition of pg_views. But consider this:
tir=# SELECT c.relname AS viewname, pg_get_userbyid(c.relowner) AS
viewowner, pg_get_viewdef(c.relname) AS definition FROM pg_class c WHERE
(c.relkind = 'v'::"char") limit 21 offset 1;
ERROR: cache lookup for proc 4303134 failed
It means that the 21st line of the result is problematic, because writing
20 instead of 21 I got no problem. Consider this:
tir=# SELECT c.relname AS viewname, pg_get_userbyid(c.relowner) AS
viewowner FROM pg_class c WHERE (c.relkind = 'v'::"char") offset 21 limit
1; viewname | viewowner
-------------+-----------felhasznalo | postgres
(1 row)
This is the problematic view. I selected only its name, not the
definition. But selecting this:
tir=# SELECT c.relname AS viewname, pg_get_userbyid(c.relowner) AS
viewowner, pg_get_viewdef(c.relname) AS definition FROM pg_class c WHERE
(c.relkind = 'v'::"char") and c.relname = 'felhasznalo'; viewname | viewowner | definition
-------------+-----------+------------------------------------------------------------------------------------------------------------------------------------felhasznalo
|postgres | SELECT szemely.az, szemely.nev,
szemely.teljes_nev FROM szemely WHERE ((1 <= szemely.felhasznalo) AND
(szemely.felhasznalo <= 2));
(1 row)
I get no problem, it gives the definition. Why?
TIA, Zoltan