You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the blob segment size is controlled by the connection property PacketSize, and this has a maximum value of 32767 (bytes). However, since Firebird 2.1, segment sizes of 64KiB - 1 are supported (though Firebird 2.1 and 2.5 have some issues because sometimes the value is cast to a SSHORT, as far as I know, Firebird 3.0 is the first where it really works).
There are some oddities with this maximum, because for op_get_segment the maximum is also the maximum size of the buffer used for transferring, so the largest value you can receive with op_get_segment when asking for 65535 is actually 65533 (and if the response is broken up in multiple segments, it can even be multiples of 2 shorter) because of the 2-byte length prefixes in the response buffer. When sending (op_put_segment), the maximum is 65535 bytes.
Support a larger maximum value, so blobs can be transferred more efficiently, at least for Firebird 3.0 and higher, and also consider deprecating PacketSize, and/or introduce an alternative property called BlobSegmentSize, as that seems to be the only thing controlled by PacketSize.
The text was updated successfully, but these errors were encountered:
Currently, the blob segment size is controlled by the connection property
PacketSize
, and this has a maximum value of 32767 (bytes). However, since Firebird 2.1, segment sizes of 64KiB - 1 are supported (though Firebird 2.1 and 2.5 have some issues because sometimes the value is cast to a SSHORT, as far as I know, Firebird 3.0 is the first where it really works).There are some oddities with this maximum, because for
op_get_segment
the maximum is also the maximum size of the buffer used for transferring, so the largest value you can receive withop_get_segment
when asking for 65535 is actually 65533 (and if the response is broken up in multiple segments, it can even be multiples of 2 shorter) because of the 2-byte length prefixes in the response buffer. When sending (op_put_segment
), the maximum is 65535 bytes.Support a larger maximum value, so blobs can be transferred more efficiently, at least for Firebird 3.0 and higher, and also consider deprecating
PacketSize
, and/or introduce an alternative property calledBlobSegmentSize
, as that seems to be the only thing controlled byPacketSize
.The text was updated successfully, but these errors were encountered: