/
telnov.ob
/
postgresql-patterns-library
Обзор
Документация
Войти
/
telnov.ob
/
postgresql-patterns-library
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
functions/encode/delta_decode.sql
23 строки
636 B
rin-nas
language sql BEGIN ATOMIC
14 апр 2026, 16:15
14 апр 2026, 16:15
acbbc15
Код
Авторство
О чём код?
create or replace function public.delta_decode(a int[]) returns int[] immutable returns null on null input parallel safe -- Postgres 10+ language sql set search_path = '' begin atomic select array( select sum(a.v) over (order by a.o rows between unbounded preceding and current row) from unnest(delta_decode.a) with ordinality as a(v, o) order by a.o ); end; comment on function public.delta_decode(a int[]) is 'https://en.wikipedia.org/wiki/Delta_encoding'; -- TEST do $$ begin assert public.delta_decode(array[2, 2, 2, 3, -2]) = array[2, 4, 6, 9, 7]; end; $$;