PL/pgSQL “mal formé littéral de tableau” erreur à l'intérieur de la boucle

J'ai de la suite de fonctions pl/pgsql. (Évidemment, ce n'est pas la pleine fonction, c'est que la quantité minimale de code nécessaires pour reproduire le problème)

CREATE OR REPLACE FUNCTION test_func(infos TEXT[][])
RETURNS void AS
$$
DECLARE
    info TEXT[];
    type TEXT[];
    name TEXT;
BEGIN
    FOREACH info SLICE 1 IN ARRAY infos LOOP
        RAISE NOTICE 'Stuff: %', info;
        type := info[1];
        name := info[2];
        RAISE NOTICE 'Done with stuff';
    END LOOP;
RETURN;
END;
$$ LANGUAGE plpgsql;

Quand je lance la fonction à l'aide SELECT test_func('{{something, things},{other, data}}'::TEXT[][]);, j'obtiens le résultat suivant:

NOTICE:  Stuff: {something,things}
ERROR:  malformed array literal: "something"
DETAIL:  Array value must start with "{" or dimension information.
CONTEXT:  PL/pgSQL function test_func(text[]) line 10 at assignment

Je ne comprends pas comment cette erreur se produit. Lorsque la valeur de info est imprimé, il montre {something,things}, ce qui me semble être un bon littéral de tableau.

Je suis en utilisant la version de PostgreSQL 9.4.7, en cas de questions.

InformationsquelleAutor ItsTimmy | 2016-07-11