movead...@highgo.ca wrote: > >I believe the formula for the upper limit in the 32-bit case is: > > (len <= PG_INT32_MAX / 8) ? (len*8 - 1) : PG_INT32_MAX; > > >These functions could benefit from a comment mentioning that > >they cannot reach the full extent of a bytea, because of the size limit > >on the bit number. > > Because the 2nd argument is describing 'bit' location of every byte in bytea > string, so an int32 is not enough for that. I think the change is nothing > wrong, > or I have not caught your means?
In existing releases, the SQL definitions are set_bit(bytea,int4,int4) and get_bit(bytea,int4) and cannot be changed to not break the API. So the patch meant for existing releases has to deal with a too-narrow int32 bit number. Internally in the C functions, you may convert that number to int64 if you think it's necessary, but you may not use PG_GETARG_INT64 to pick a 32-bit argument. Best regards, -- Daniel Vérité PostgreSQL-powered mailer: http://www.manitou-mail.org Twitter: @DanielVerite