Twój rzut jest nieprawidłowy, nie możesz rozpakować text
.
Wypróbuj
INSERT INTO mytable (x, y)
SELECT
unnest('{x1, x2, x3}' :: TEXT []),
unnest('{y1, y2, y3}' :: TEXT []);
Zauważ, że ta forma wyboru zachowuje się dziwnie, jeśli obie tablice nie mają tej samej długości.
Funkcja unnest w postgresie 9.4+ pozwala na rozszerzenie wielu tablic przy użyciu jednej tablicy na kolumnę wyjściową:
INSERT INTO mytable
SELECT *
FROM unnest('{x1, x2, x3}' :: TEXT [], '{y1, y2, y3, y4}' :: TEXT [])