When I vacuum the database (PostgreSQL 6.5.3 on SuSE 6.3 Linux, 2.2 kernel), I get the
following error message:
ERROR: HEAP_MOVED_IN was not expected.
vacuumdb: database vacuum failed on ntis
This error only seems to occur after I have used the trim function to clean up one of
the rows in the msg table of a database called ntis:
ntis=>update msg set description = trim(description);
UPDATE 12069
ntis=>
To try and track down the problem, I wrote a C program (using ecpg) that trimmed the
table one row at a time and vacuumed between each row operation. I was hoping that
this program would reveal a problem with the data in one of my records. Unfortunately
the one row at a time approach did not reveal the problem and each vacuum operated
without error.
Can anyone tell me what a HEAP_MOVED_IN error is - I checked the source but was not
familiar enough to understand it? Any ideas on why trim() may have cause it?