I'm now looking into toast code and I found following code in
pglz_decompress:
00704 if (destsize != source->rawsize)
00705 elog(destsize > source->rawsize ? FATAL : ERROR,
00706 "compressed data is corrupt");
I'm surprise why we there panic? By my opinion is not too good idea to
crash server in case when we know how much memory we really have for
dest and we can check range. Other silly thing is that message
"compressed data is corrupt" does not contain any information about file
relation etc.
My idea is to improve this piece of code and move error logging to
callers (heap_tuple_untoast_attr() and heap_tuple_untoast_attr_slice())
where we have a little bit more details (especially for external storage).
Any comments?
thanks Zdenek
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match