Как получить доступ к внутреннему индексу массива с помощью postgreSQL?

Это мое (возможно, обычное для вас)неоптимизированная решение:

Обходной путь для проблемы PG с неоптимизированной внутренней функцией:

CREATE FUNCTION unnest_with_idx(anyarray)
RETURNS TABLE(idx integer, val anyelement) AS
$ 
   SELECT generate_series(1,array_upper($1,1)) as idx, unnest($1) as val;
$ LANGUAGE SQL IMMUTABLE;

Тестовое задание:

SELECT idx,val from unnest_with_idx(array[1,20,3,5]) as t;

Но, как я уже сказал,неоптимизированная, Я могу'не верю (!!), что PostgreSQL ненет внутреннего индекса для массивов ...? Но в этом случае вопрос заключается в том, как напрямую получить доступ к этому индексу, гдеGIN-как внутренний счетчик?

ПРИМЕЧАНИЕ 1: решение выше и вопрос не совпадает сКак вы создаете индекс по каждому элементу массива? ", Тоже не такой какМожет ли PostgreSQL индексировать столбцы массива? " потому что функция предназначена для изолированного массива, а не для индекса таблицы для полей массива.

ПРИМЕЧАНИЕ2 (отредактировано после ответов): «индексы массива " (более популярный термин) или "массив индексов " или же "счетчик массивов " являются терминами, которые мы можем использовать в семантическом пути для обозначения "внутренний счетчик "аккумулятор к следующему элементу массива. я вижу этонет команды PostgreSQL предложить прямой доступ к этому счетчику, Какgenerate_series() функция,generate_subscripts() функция являетсягенератор последовательностии производительность (лучше, но) примерно одинакова. С другой стороныrow_number() Функция предлагает прямой доступ квнутренний счетчик рядов, но это о рядах,не о массивахи, к сожалению, производительность хуже.

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

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