Re: [PATCH] Add get_bytes() and set_bytes() functions
Joel Jacobson <joel@compiler.org>
From: "Joel Jacobson" <joel@compiler.org>
To: "Aleksander Alekseev" <aleksander@timescale.com>,
pgsql-hackers@lists.postgresql.org
Date: 2024-08-14T12:34:06Z
Lists: pgsql-hackers
On Wed, Aug 14, 2024, at 13:31, Aleksander Alekseev wrote: >> I wonder if get_bytes() and set_bytes() will behave differently >> on little-endian vs big-endian systems? > No, the returned value will not depend on the CPU endiness. Current > implementation uses big-endian / network order which in my humble > opinion is what most users would expect. Nice. I've reviewed and tested the patch. It looks straight-forward to me. I don't see any potential problems. I've marked it Ready for Committer. > I believe we also need reverse(bytea) and repeat(bytea, integer) > functions e.g. for those who want little-endian. However I want to > propose them separately when we are done with this patch. I agree those functions would be nice too. I also think it would be nice to provide these convenience functions: to_bytes(bigint) -> bytea from_bytes(bytea) -> bigint Since if not having a current bytea value, and just wanting to convert a bigint to bytea, then one would need to construct an zeroed bytea of the proper size first, to then use set_bytes(). And if just wanting to convert the entire bytea to a bigint, then one would need to pass 0 as offset and the length of the bytea as size. Regards, Joel
Commits
-
Allow casting between bytea and integer types.
- 6da469badaff 18.0 landed