Thread: cache lookup for operator ...

cache lookup for operator ...

From
Deron
Date:
Hello,
 
I am trying to determine what might cause an issue like this.   This was a large (several hundred GB) data warehouse server with PG 8.2.4.   I can't really determine what caused this issue.  We ended up restoring the data from a backup.
 
Here are some of the errors in the log:

postmaster.1:Jul 11 14:13:36  postgres[18051]: [8-1] ERROR: cache lookup failed for operator 660

postmaster.1:Jul 11 15:27:00  postgres[26428]: [2-1] ERROR: cache lookup failed for operator 93

Attempting to list the tables using psql:

#\dt

ERROR:  operator does not exist: oid = oid

LINE 6:      JOIN pg_catalog.pg_roles r ON r.oid = c.relowner

                                                 ^

HINT:  No operator matches the given name and argument type(s). You may need to add explicit type casts.

Deron

Re: cache lookup for operator ...

From
Kenneth Marshall
Date:
On Tue, Jul 13, 2010 at 10:29:42AM -0700, Deron wrote:
> Hello,
>
> I am trying to determine what might cause an issue like this.   This was a
> large (several hundred GB) data warehouse server with PG 8.2.4.   I can't
> really determine what caused this issue.  We ended up restoring the data
> from a backup.
>
> Here are some of the errors in the log:
>
> postmaster.1:Jul 11 14:13:36  postgres[18051]: [8-1] ERROR: cache lookup
> failed for operator 660
>
> postmaster.1:Jul 11 15:27:00  postgres[26428]: [2-1] ERROR: cache lookup
> failed for operator 93
>
> Attempting to list the tables using psql:
>
> #\dt
>
> ERROR:  operator does not exist: oid = oid
>
> LINE 6:      JOIN pg_catalog.pg_roles r ON r.oid = c.relowner
>
>                                                  ^
>
> HINT:  No operator matches the given name and argument type(s). You may need
> to add explicit type casts.
>
> Deron

Could it be the result of running an over 3 year old version of
8.2? Try checking the release notes for the last 13 releases and
see if any of the fixes might apply to your situation. I would
certainly upgrade to prevent future problems and data loss. There
are good reasons for all of the point releases for the major
PostgreSQL releases. Maybe someone else can remember details of
a problem such as yours.

Good luck.
Ken

Re: cache lookup for operator ...

From
Tom Lane
Date:
Deron <fecastle@gmail.com> writes:
> I am trying to determine what might cause an issue like this.   This was a
> large (several hundred GB) data warehouse server with PG 8.2.4.   I can't
> really determine what caused this issue.  We ended up restoring the data
> from a backup.

> Here are some of the errors in the log:

> postmaster.1:Jul 11 14:13:36  postgres[18051]: [8-1] ERROR: cache lookup
> failed for operator 660

> postmaster.1:Jul 11 15:27:00  postgres[26428]: [2-1] ERROR: cache lookup
> failed for operator 93

Evidently you had corruption in the pg_operator catalog.  If you were
lucky, a REINDEX of pg_operator might have fixed it, but unless you kept
a physical copy of the corrupted database there's no way to investigate
further now.

8.2.4 is extremely out of date btw, you should be using 8.2.17 or
something close to that.

            regards, tom lane