Thread: Maximum len of data fit into the tuple
Hello all, I try to write large objects in one table support for postgres and have following problem: I should calculate maximum amount of data I can put into the bytea field. Table scheme is: create table pg_largeobject { loid oid, lastbyte int4, data bytea ); If I will assume that oid == int4 I will have 4 * 2 + 4 (size of vl_len in bytea) = 12. Plus 36 bytes of header (as noted in FAQ). It will be 48 bytes... But I still get error that tuple is out too big... And that my size is 8188, but should be 8140. It would be great if someone will clarify the way I should do such calculations. -- Sincerely Yours, Denis Perchine ---------------------------------- E-Mail: dyp@perchine.com HomePage: http://www.perchine.com/dyp/ FidoNet: 2:5000/120.5 ----------------------------------
Denis Perchine <dyp@perchine.com> writes: > If I will assume that oid == int4 I will have 4 * 2 + 4 (size of > vl_len in bytea) = 12. Plus 36 bytes of header (as noted in FAQ). It > will be 48 bytes... But I still get error that tuple is out too > big... And that my size is 8188, but should be 8140. > It would be great if someone will clarify the way I should do such > calculations. You forgot the per-page overhead. Offhand 36 seems too small for the per-tuple overhead, anyway, but I'm too lazy to count bytes in include/access/htup.h right now... regards, tom lane