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

Started by Tim Stumpabout 23 years ago5 messagesgeneral
Jump to latest
#1Tim Stump
tstump@regenstrief.org

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tim Stump (#1)
Re: nodeRead: did not find '}' at end of plan node

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

#3Tim Stump
tstump@regenstrief.org
In reply to: Tom Lane (#2)
Re: nodeRead: did not find '}' at end of plan node

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

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Tim Stump (#3)
Re: nodeRead: did not find '}' at end of plan node

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

#5Tim Stump
tstump@regenstrief.org
In reply to: Tom Lane (#2)
Re: nodeRead: did not find '}' at end of plan node

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:

Show quoted text

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