I think we'd prioritise small results first, as this is the most common use case, but if a blob is not big enough to hold "reasonably" sized results, then longblob wold be a good default. Could we ...
this is wrong because in 64 bit "unsigned long" will be 8 bytes, not 4 bytes. So, ~zero will be 0xFFFFFFFFFFFFFFFF instead of 0xFFFFFFFF as written in MySQL documentation.