Re: How to recover from : "Cache lookup failed for rela - Mailing list pgsql-general
| From | Patrick.FICHE@AQSACOM.COM | 
|---|---|
| Subject | Re: How to recover from : "Cache lookup failed for rela | 
| Date | |
| Msg-id | 1DC6C8C88D09D51181A40002A5286929B22FFE@intranet Whole thread Raw  | 
		
| Responses | 
                	
            		Re: How to recover from : "Cache lookup failed for rela tion "
            		
            		 | 
		
| List | pgsql-general | 
The error happens when I try to create other temporary tables.
Here is a part of my Server Log :
ERROR:  cache lookup failed for relation 463558
CONTEXT:  SQL statement "CREATE TEMP TABLE Tmp_MsgRxOrder ( EventId int4,
CodeRef int4 )"
        PL/pgSQL function "adm_ne" line 248 at SQL statement
STATEMENT:  SELECT ALIS.ADM_NE()
From what I understand, PostgreSQL is creating new temporary schemas or
using existing one when I try to create a temporary table. The problem
occurs when PostrgreSQL tries to use the pg_temp_4 schema.
The oid of the tmp_d_alarm type is 463559.
The pg_type table contains a record with relid = 463558 :
typname   | typnamespace | typowner | typlen | typbyval | typtype |
typisdefined | typdelim | typrelid | typelem | typinput  | typoutput  |
typreceive  |   typsend   | typanalyze | typalign | typstorage | typnotnull
| typbasetype | typtypmod | typndims | typdefaultbin | typdefault
-------------+--------------+----------+--------+----------+---------+------
--------+----------+----------+---------+-----------+------------+----------
---+-------------+------------+----------+------------+------------+--------
-----+-----------+----------+---------------+------------
 tmp_d_alarm |       440012 |      104 |     -1 | f        | c       | t
| ,        |   463558 |       0 | record_in | record_out | record_recv |
record_send | -          | d        | x          | f          |           0
|        -1 |        0 |               |
This table was created inside a function with the following SQL :
  CREATE TEMPORARY TABLE Tmp_D_Alarm
  (
     D_AlarmID            int4 NOT NULL,
     D_RAlarmID           int4 NOT NULL,
     D_PerceivedSeverity  int4 NOT NULL,
     D_ObjRef             int4 NOT NULL,
     D_ObjOwnerRef        int4 NOT NULL,
     D_ObjClassTag        varchar(5) NOT NULL,
     L_LogRecId           int4 NULL
  );
There is no DROP command as this function is invoked from a connexion which
is closed after calling this function. I guess that the temp table will be
deleted as this is a temporary table.
I tried the following :
- REINDEX DATABASE alis;
- DROP SCHEMA pg_temp_4 ( CASCADE )
- from the shell : reindexdb alis
- Tried to stop/restart PostgreSQL,
- vacuum
Patrick
----------------------------------------------------------------------------
---------------
Patrick Fiche
email : patrick.fiche@aqsacom.com
tél : 01 69 29 36 18
----------------------------------------------------------------------------
---------------
-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: lundi 23 mai 2005 15:18
To: Patrick.FICHE@AQSACOM.COM
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] How to recover from : "Cache lookup failed for
relation "
Patrick.FICHE@AQSACOM.COM writes:
> I have a server installed with Postgres 8.0.2 on Solaris.
> Since two days, I get the error : "ERROR:  cache lookup failed for =
> relation
> 463558"
What SQL command(s) produce that error, exactly?
> When I look with the pgAdmin at my database, I see that I have in =
> pg_temp_4
> schema, a type called "tmp_d_alarm" which is the name of a temporary =
> table
> that I'm using in functions....
> The table of the same name is not in the schema and I suspect that this
> remaining type is causing the trouble.
Possibly.  Does the pg_type.typrelid field of that entry contain 463558?
How are you creating and dropping these temporary tables, exactly?
> How to get read of this type. I'm not able to drop it, neither the =
> schema...
What did you try, and what were the results?
            regards, tom lane
		
	pgsql-general by date: