Thread: nodeRead: did not find '}' at end of plan node

nodeRead: did not find '}' at end of plan node

From
tstump@regenstrief.org (Tim Stump)
Date:
I'm trying to drop a view from my postgres database and getting the
following error:

ERROR: nodeRead: did not find '}' at end of plan node

I'm not able to drop the view, create a dump file of the entire
database, or create a dump file of another table in the database.
Each time I get this error.  What does this mean?

I'm using Linux RedHat 8.0 and PostgreSQL version 7.2.3-5.80

Re: nodeRead: did not find '}' at end of plan node

From
Tom Lane
Date:
tstump@regenstrief.org (Tim Stump) writes:
> I'm trying to drop a view from my postgres database and getting the
> following error:
> ERROR: nodeRead: did not find '}' at end of plan node

This suggests either that you have a corrupted entry in pg_rewrite,
or that the database is somehow version-incompatible with the backend
(ie, the backend is expecting a different parsetree-node layout than
what is in the database entry for the view).

Would you show us the output from

select * from pg_rewrite where ev_class = (select oid from pg_class
where relname = 'the-troublesome-view');

If you don't really care about determining the cause, you could just
manually DELETE the view's row from pg_class, and then you should be
able to dump.  But it would be interesting to figure out how you got
into this state.

            regards, tom lane

Re: nodeRead: did not find '}' at end of plan node

From
tstump@regenstrief.org (Tim Stump)
Date:
tgl@sss.pgh.pa.us (Tom Lane) wrote in message news:<11222.1045258379@sss.pgh.pa.us>...
> tstump@regenstrief.org (Tim Stump) writes:
> > I'm trying to drop a view from my postgres database and getting the
> > following error:
> > ERROR: nodeRead: did not find '}' at end of plan node
>
> This suggests either that you have a corrupted entry in pg_rewrite,
> or that the database is somehow version-incompatible with the backend
> (ie, the backend is expecting a different parsetree-node layout than
> what is in the database entry for the view).
>
> Would you show us the output from
>
> select * from pg_rewrite where ev_class = (select oid from pg_class
> where relname = 'the-troublesome-view');
>
> If you don't really care about determining the cause, you could just
> manually DELETE the view's row from pg_class, and then you should be
> able to dump.  But it would be interesting to figure out how you got
> into this state.
>
>             regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org

Tom,

Thanks for the information.  I manually deleted the view from the
pg_class table, but then I could not re-create the view (i.e., using
the same name).  There must be some other system table that stores
information out there besides pg_class.  At least I could create a
dump file of the entire database. Then I dropped the database and
restored from the dump file.  After this, I was able to create the
view just fine. Not sure if that is the optimal solution, but it
worked.  Thanks again for your help.

--Tim

Re: nodeRead: did not find '}' at end of plan node

From
Tom Lane
Date:
tstump@regenstrief.org (Tim Stump) writes:
> Thanks for the information.  I manually deleted the view from the
> pg_class table, but then I could not re-create the view (i.e., using
> the same name).  There must be some other system table that stores
> information out there besides pg_class.

pg_type would have an entry named for the view, too.  Can't recall
anything else that would give trouble.

> At least I could create a
> dump file of the entire database. Then I dropped the database and
> restored from the dump file.  After this, I was able to create the
> view just fine.

Can you dump it now?  If there's actually a software bug here, I'd
expect the same view definition to lead to the same complaint.
But if you can dump it now, then I'd lean towards the
corrupted-catalog-entry theory.  Not that that should make you any
happier ... have you run memory and disk diagnostics lately?

            regards, tom lane

Re: nodeRead: did not find '}' at end of plan node

From
Tim Stump
Date:
Tom,

Thanks again.  Yes, I was able to create a dump file at that point so I
don't think it is a software bug.  Besides, the view had been in use for
about a year and a half.  We're going to run some memory and disk
diagnostics.

--Tim

Tom Lane wrote:

> tstump@regenstrief.org (Tim Stump) writes:
> > Thanks for the information.  I manually deleted the view from the
> > pg_class table, but then I could not re-create the view (i.e., using
> > the same name).  There must be some other system table that stores
> > information out there besides pg_class.
>
> pg_type would have an entry named for the view, too.  Can't recall
> anything else that would give trouble.
>
> > At least I could create a
> > dump file of the entire database. Then I dropped the database and
> > restored from the dump file.  After this, I was able to create the
> > view just fine.
>
> Can you dump it now?  If there's actually a software bug here, I'd
> expect the same view definition to lead to the same complaint.
> But if you can dump it now, then I'd lean towards the
> corrupted-catalog-entry theory.  Not that that should make you any
> happier ... have you run memory and disk diagnostics lately?
>
>                         regards, tom lane