Я использую pgv10.Мне кажется, что эта функция неправильная функция:
CREATE FUNCTION array_coalesce(ANYARRAY) RETURNS ANYARRAY AS $f$
SELECT CASE WHEN $1 IS NULL THEN array[]::ANYARRAY ELSE $1 END;
$f$ language SQL IMMUTABLE;
Любопытство
... Я начал упрощать комплекспроблема, и приходит в тесте select coalesce(null::text[], array[]::text[])
, что не работал ... Так что это был хороший вопрос, как это реализовать?Но извините, я что-то работаю, COALESCE (массив, массив) работает нормально (фу!).
Таким образом, "проблема слияния" является просто иллюстративной / диатической.Что я действительно хочу понять здесь: Как использовать ANYARRAY
?
PS: другое любопытство, строка concat()
, ||
и другие операторы конкатенации в PostgreSQL делают некоторое "объединение",
select concat(NULL::text, 'Hello', NULL::text); -- 'Hello'
select null::text[] || array[]::text[]; -- []
select array[]::text[] || null::text[]; -- []