Din cast er forkert, du kan ikke fjerne text
.
Prøv
INSERT INTO mytable (x, y)
SELECT
unnest('{x1, x2, x3}' :: TEXT []),
unnest('{y1, y2, y3}' :: TEXT []);
Bemærk, at denne form for udvælgelse opfører sig mærkeligt, hvis begge arrays ikke er lige lange.
Unnest-funktionen i postgres 9.4+ giver dig mulighed for at udvide flere arrays ved at bruge et array pr. outputkolonne:
INSERT INTO mytable
SELECT *
FROM unnest('{x1, x2, x3}' :: TEXT [], '{y1, y2, y3, y4}' :: TEXT [])