I have a value inserted into a bytea column, which is about 137megs in size.
If I use octet_length() to check the size of the column for this specific row I get this:
TestDB=# SELECT octet_length(rawdata) FROM LargeData;
octet_length
--------------
143721188
When fetching the row through the C API, and I use PQgetlength() on the column of the row in question I get:
(gdb) p (int)PQgetlength(result, rowIndex, i)
$3 = 544453159
I am wondering if I am lacking knowledge that explains why these values are different, or if something fishy is going on.
What led me to investigating this is that fetching this row in a C application is causing a failure. My programs memory usage balloons to 1.3 gigs after executing this: