Vaše obsazení je chybné, nelze zrušit vnoření text
.
Zkuste
INSERT INTO mytable (x, y)
SELECT
unnest('{x1, x2, x3}' :: TEXT []),
unnest('{y1, y2, y3}' :: TEXT []);
Všimněte si, že tato forma výběru se chová zvláštně, pokud obě pole nemají stejnou délku.
Funkce unnest v postgresu 9.4+ vám umožňuje rozšířit více polí pomocí jednoho pole na výstupní sloupec:
INSERT INTO mytable
SELECT *
FROM unnest('{x1, x2, x3}' :: TEXT [], '{y1, y2, y3, y4}' :: TEXT [])