@a_horse_with_no_name вы совершенно правы. Я продолжаю находить, что у Postgres есть что-то встроенное для каждого случая, о котором я мог подумать. Не стесняйтесь редактировать / обновлять сообщение с вашим предложением.

обходной путь не работает

CREATE FUNCTION json_array_castext(json) RETURNS text[] AS $f$
  SELECT array_agg(x::text) FROM json_array_elements($1) t(x);
$f$ LANGUAGE sql IMMUTABLE;

-- Problem:
SELECT 'hello'='hello';  -- true...
SELECT  (json_array_castext('["hello","world"]'))[1] = 'hello'; -- false!

Итак, как получить реальный массив текста?

PS: с предполагаемым «гражданином первого класса» JSONb, та же проблема.

Изменить: после @ОтоШавадзе хороший ответ (комментарий решен!),манифест для разработчиков PostgreSQL: Почемуx::text не актерский состав? (используя стр. 9.5.6) и почему он не генерирует предупреждение или ошибку?

Ответы на вопрос(0)

Ваш ответ на вопрос