BUG #16403: set_bit function does not have expected effect

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: amovitz(at)bncpu(dot)com
Subject: BUG #16403: set_bit function does not have expected effect
Date: 2020-04-29 21:50:53
Message-ID: 16403-c4ad1c176b130a5b@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 16403
Logged by: Alex Movitz
Email address: amovitz(at)bncpu(dot)com
PostgreSQL version: 11.0
Operating system: Linux
Description:

Input:
SELECT set_bit('\x00000000'::bytea, 0, 1);
Expected Output:
'\x00000001' or '\x80000000'
Actual Output:
'\x01000000'

Input:
SELECT set_bit('\x00000000'::bytea, 8, 1);
Expected Output:
'\x00000100' or '\x00800000'
Actual Output:
'\x00010000'

Issue:
set_bit function changes the right-most bit of the byte, but with
little-endian byte order. This is confusing to any use case where setting a
bit in a BYTEA in a specific position. To iterate through the bits within
the BYTEA, one must have nested loops which set bits within byte boundaries.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Thomas Munro 2020-04-29 23:11:27 Re: BUG #16402: No se puede instalar pgadmin4
Previous Message Peter Eisentraut 2020-04-29 20:41:49 Re: BUG #16401: Minor misspelling for hint in Swedish