Version: "PostgreSQL 8.4.6 on i386-apple-darwin, compiled by GCC i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5370), 32-bit" There was an hardware crash. after that pg_dump failed with an error: ERROR: invalid memory alloc request size 1765277700 I searched archive and it indicates that this is data corruption. I have narrowed down to 7 records or so might be corrupted. However, something doesn't add up... Please see below:
-- I have narrowed down the row SELECT * FROM table ORDER BY table_id OFFSET 526199 LIMIT 1 -- ERROR: invalid memory alloc request size 1765277700 -- I was able to view a few columns SELECT table_id, table_column1, table_column2 FROm table ORDER BY table_id OFFSET 526199 LIMIT 1 -- returns one row table_id = 12345 -- using that id to SELECT ALL. It shows fine...I was assuming this will give me same error... SELECT * FROM table WHERE table_id=12345 -- shows perfectly -- This also returns value just fine SELECT table_column3 FROM table WHERE table_id = 12345 -- However this returns an error SELECT table_column3 FROm table ORDER BY table_id OFFSET 526199 LIMIT 1 --error ERROR: invalid memory alloc request size 1765277700
To me it is as if it is accessing to different record.. I thought possibly primary key index might be corrupted.. so attempted REINDEX TABLE table; --ERROR: could not create unique index "table_pkey" --DETAIL: Table contains duplicated values. -- Now this returns 0 row... Not sure what I am doing wrong here... SELECT table_id FROM table GROUP BY table_id HAVING count(table_id) > 1
If anyone could advice me why I am able to view record with primary key query but not with OFFSET? Do I consider these record as corrupted? If so deleting these records might resolve the error I am getting?