Бих предположил, че pq.Array
ви дава PostgreSQL масив във формата на низ, така че в крайна сметка получавате нещо подобно:
unnest('{a,b,c,d,e}')
и PostgreSQL не е сигурен как трябва да интерпретира този низ, оттук и оплакването относно unnest(unknown)
. Трябва да можете да добавите изрично преобразуване на типа, за да изясните нещата:
unnest($1::text[]) -- PostgreSQL-specific casting syntax
unnest(cast($1 as text[])) -- Standard casting syntax
Ще получите нещо подобно:
rows, err := db.Query("select colname from (SELECT date, unnest($1::text[]) AS colname, unnest($1) AS thing from test1 where date='123') as tester where thing=1;", pq.Array(arr1))