strk wrote:

JanWieck wrote:
strk wrote:

> I get the following error when vacuuming a db or inserting
> a big value in a column of a toastable datatype (GEOMETRY).
> > ERROR: Index pg_toast_8443892_index is not a btree
> > My last action has been killing a psql that was getting
> mad about receiving too much input and beeping as hell
> (readline issue ?).


You must have killed a lot more than your psql frontend to get that as a result.

really... I hit ^C at the psql terminal and kill -9 <psql_pid>

The only other reason I can thing about is the data type text
input function screwing pg internal pointers...

You mean the text input function did stomp over shared memory of the buffer cache? That would be the first time I hear of this.


Could you please do

select oid as datoid from pg_database where datname = '<dbname>';
select A.relfilenode from pg_class A, pg_class B, pg_class C
    where C.relname = '<tablename>'
    and B.oid = C.reltoastrelid
    and A.oid = B.reltoastidxid;

With that information, give us an

ls -l $PGDATA/base/<datoid>/<relfilenode>

This file is the toast tables index.



> > After that, I put the insert query I was trying to feed to
> psql in a file and sourced it... Bump! that error appeared.
> > psql:B:477: ERROR: Index pg_toast_8443892_index is not a btree
> > Line 477 is EOF...
> > Vacuum does not solve this (as you can see in the first error message)
> > Do you have any hint about how to fix this ?


Try "reindex table <tablename>". If you really only lost that btree index, that should do.

gis=# reindex table test; -- this is the table I was trying to insert into WARNING: table "test" wasn't reindexed

Is there more information about why it wasn't reindexed in the postmaster log?


REINDEX
gis=# reindex table pg_toast_8443892; -- this was an assuption I made
ERROR:  Relation "pg_toast_8443892" does not exist
gis=# vacuum;
ERROR:  Index pg_toast_8443892_index is not a btree
gis=#

Where could this pg_toast_8443892_index reference be found ?

As you might guess from the second select above ...



Jan


--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== [EMAIL PROTECTED] #


---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to