/
telnov.ob
/
postgresql-patterns-library
Обзор
Документация
Войти
/
telnov.ob
/
postgresql-patterns-library
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
functions/encode/url_encode.sql
27 строк
807 B
rin-nas
language sql BEGIN ATOMIC
14 апр 2026, 16:15
14 апр 2026, 16:15
acbbc15
Код
Авторство
О чём код?
--see also extension https://github.com/okbob/url_encode with C implementation create or replace function public.url_encode(text) returns text immutable strict -- returns null if any parameter is null language sql set search_path = '' begin atomic select string_agg( case when octet_length(s.char) > 1 or s.char !~ '[0-9a-zA-Z:/@._?#-]+' then regexp_replace(upper(substring(s.char::bytea::text, 3)), '(..)', E'%\\1', 'g') else s.char end, '' ) from unnest(string_to_array($1, null)) as s(char); end; --TEST do $$ begin assert public.url_encode('hello, привет!') = 'hello%2C%20%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82%21'; end; $$;