Развернуть массив на один уровень

Я хочу взять массивn Размеры и возвращаемый набор, содержащий ряды массивовn-1 размеры. Например, возьмите массивARRAY[[1,2,3], [4,5,6], [7,8,9]] и вернуть набор{1,2,3}, {4,5,6}, {7,8,9}, Использование unnest возвращает набор1,2,3,4,5,6,7,8,9.

Я попытался получить функцию unnest из PostgreSQL 8.4, которая, похоже, сделала бы то, что я ищу:

CREATE OR REPLACE FUNCTION tstng.unnest2(anyarray)
    RETURNS SETOF anyelement
    LANGUAGE plpgsql
    IMMUTABLE
    AS $
    BEGIN
            RETURN QUERY SELECT $1[i]
                FROM generate_series(array_lower($1,1), array_upper($1,1)) i;
        END;
    $;

Тем не мение,SELECT tstng.unnest2(ARRAY[[1,2,3], [4,5,6], [7,8,9]]); возвращает набор, , (т.е. 3 пустых строки).

Я также обнаружил, чтоSELECT (ARRAY[[1,2,3], [4,5,6], [7,8,9]])[0]; возвращает ноль, который я считаю корнем моей проблемы.

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

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