Обсуждение: nodeRead: did not find '}' at end of plan node
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
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
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
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
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