Thanks Eric,
ll try to explain as much as possible

When i try to give this query

UPDATE payment
SET desc='New description'
WHERE payment_id='xyz'

I got the error
ERROR: could not open relation with OID 672178

This error was consistent for this query and it yielded the same OID every time.

When I checked the pg_class with oid=672178, there were no records
found with that OID.
So I checked the other catalog files to see if there are any reference
to that OID in any of them.
I found a couple of them in the pg_trigger files that references that
OID 672178.

That is why I tried the first query ie.,
select * from pg_trigger where tgrelid not in (select oid from pg_class)
to see if there are any other rows in pg_trigger without corresponding
OID in pg_class.

Is it common to have records in pg_triggers and other catalog files
iwthout corresponding OID in the pg_class file?

>>Do you use CLUSTER on any kind of regular basis?  Have you had any other
kind of abnormal performance issues (other errors, system crashes,
etc...)?
I don't use cluster on any kind. Im not sure about the performance since Im
working with a very small test dataset.
Thanks
Josh

On 9/17/07, Erik Jones <[EMAIL PROTECTED]> wrote:
>
>
> On Sep 17, 2007, at 9:02 AM, Josh Harrison wrote:
> >
> > On 9/17/07, Tom Lane <[EMAIL PROTECTED]> wrote: "Josh Harrison"
> > <[EMAIL PROTECTED]> writes:
> > > if I give this query, which checks for the triggers that do not have
> > > corresponding tables in the pg_class
> >
> > > select * from pg_trigger where tgrelid not in (select relfilenode
> > from
> > > pg_class),
> >
> > This query is wrong --- relfilenode is not a join column for any other
> > table.  You should be using pg_class.oid there.
> >
> >                         regards, tom lane
>
> > Thanks Tom.
> > I tried it using pg_class.oid and I still have some records which r
> > not in the pg_class files. What can I do about that?
> > (BTW what does relfilenode in pg_class stands for?)
> > Thanks again
> > Josh
>
> relfilenode is the name of the actual file that holds the given
> relation's data.  Now that you've got that query right, can you give
> us some more details about what's happening?  Just to be sure, when
> checking triggers, the query should be
>
> select * from pg_trigger where tgrelid not in (select oid from
> pg_class);
>
> What are the queries that are generating these errors?  Why are you
> looking at pg_trigger?  In order to help, we'll need to know more
> about the situation that just the error type as different situations
> can yield that.  Do the same queries consistently yield the error?
> Do you see the same oids in the errors, or do they change?  Do you
> use CLUSTER on any kind of regular basis?  Have you had any other
> kind of abnormal performance issues (other errors, system crashes,
> etc...)?  The more info you give, the better help you can receive.
>
>
> Erik Jones
>
> Software Developer | Emma(r)
> [EMAIL PROTECTED]
> 800.595.4401 or 615.292.5888
> 615.292.0777 (fax)
>
> Emma helps organizations everywhere communicate & market in style.
> Visit us online at http://www.myemma.com
>
>
>

Reply via email to