/
telnov.ob
/
postgresql-patterns-library
Обзор
Документация
Войти
/
telnov.ob
/
postgresql-patterns-library
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
functions/bit/bit_to_bytea.sql
32 строки
979 B
rin-nas
language sql BEGIN ATOMIC
14 апр 2026, 16:15
14 апр 2026, 16:15
acbbc15
Код
Авторство
О чём код?
create or replace function public.bit_to_bytea(bits bit varying) returns bytea immutable strict -- returns null if any parameter is null parallel safe security invoker language sql set search_path = '' begin atomic select public.bytea_agg( decode( lpad( to_hex(substring(bits8 from i * 8 + 1 for 8)::int), 2, '0' ), 'hex' ) ) from octet_length(bits) as len cross join generate_series(0, len - 1) as i cross join public.bit_rpad(bits, len * 8, B'0') as bits8; --trailing with zeros (aligned with byte boundaries) end; comment on function public.bit_to_bytea(bits bit varying) is 'Converts bit varying to bytea type'; --TEST do $$ begin assert public.bit_to_bytea(B'1101100111011000111001101011000011100011010011') = '\xD9D8E6B0E34C'; end; $$;