
These are handled differently by OTRS - for databases other than MySQL, OTRS stores them in BASE64 encoding. The conversion can be done with Postgres using encode(column, 'base64').
I'd rather see MySQL use base64 too. All the world isn't Intel-based, and at least base64 is not ambiguous what the byte values really are.
My question is: Why do the other databases use character objects for all the LONGBLOBs including those that really contain binary data, so that for these databases, a BASE64 encoding is necessary, which costs performance when encoding and decoding and 33% more storage? Wouldn't it be much better and easier if OTRS used BLOBs consistently across all databases for the binary columns, and TEXT for the other large columns?
It would make it much more difficult to move data cross-platform. Try setting up a OTRS install on a Linux on POWER big-endian machine and moving the database from your Intel system. Those binary blobs are a royal pain. The base64 columns move perfectly and without any action on the admin's part.
Also, would it be possible to use BYTEA in PostgreSQL instead of TEXT for the binary data columns, changing the database scheme accordingly and setting the DB::DirectBlob flag to 1 so that OTRS stops BASE64 encoding these columns?
Are you storing attachments in the database? If so, you might consider changing that. Most of the big blobs are related to that, and the non-existence of those big opaque blobs in the database makes this issue a lot less relevant (to the point of being almost not measurable). (in fact, I think that should be the default...)