Ashutosh Bapat wrote: > I think we need a similar change in byteaGetBit() and byteaSetBit() > as well.
get_bit() and set_bit() as SQL functions take an int4 as the "offset" argument representing the bit number, meaning that the maximum value that can be passed is 2^31-1. But the maximum theorical size of a bytea value being 1 gigabyte or 2^30 bytes, the real maximum bit number in a bytea equals 2^33-1 (2^33=8*2^30), which doesn't fit into an "int4". As a result, the part of a bytea beyond the first 256MB is inaccessible to get_bit() and set_bit(). So aside from the integer overflow bug, isn't there the issue that the "offset" argument of get_bit() and set_bit() should have been an int8 in the first place? Best regards, -- Daniel Vérité PostgreSQL-powered mailer: http://www.manitou-mail.org Twitter: @DanielVerite