RosettaCodeData/Task/Bitwise-IO/DuckDB/bitwise-io-2.duckdb
2025-08-11 18:05:26 -07:00

13 lines
494 B
Text

# "Compress" a string by printing it as a bitstring without the left-most bit of each byte
CREATE OR REPLACE FUNCTION sevenbits(str) as (
select string_agg(format('{}', ascii(s)::BITSTRING)[-7:], '')
from (select unnest(regexp_extract_all(str, '.')) as s)
);
# Undo sevenbits()
CREATE OR REPLACE FUNCTION from_sevenbits(str) as (
select string_agg(chr(s::BIT::INT), '')
from (select unnest(regexp_extract_all(str, '.......')) as s)
);
select from_sevenbits(sevenbits('abracadabra'));