无法使用 pgx 获取自定义枚举的数组
作者: kntajus创建于 2022年10月1日更新于 2026年8月31日
标签invalid:books: postgresql:wrench: golangpgx/v4
考虑以下 SQL 语句:
CREATE TYPE fruit AS ENUM ('apple', 'banana', 'kiwi');
CREATE TABLE choices (
id int PRIMARY KEY,
fruits fruit[] NOT NULL
);
-- name: GetChoice :one
SELECT * FROM choices WHERE id = $1;与以下配置一起:
version: "2"
sql:
- schema: "query.sql"
queries: "query.sql"
engine: "PostgreSQL"
gen:
go:
out: "db"
sql_package: "pgx/v4"调用生成的 GetChoice 函数时,出现了错误:
panic: reflect.Value.Convert: value of type *[]db.Fruit cannot be converted to type *[]string(示例代码) 我不知道问题出在 sqlc、pgx 中,还是出在我身上(更有可能)。值得注意的是,如果我修改生成的代码,在扫描到数组时使用 pq.Array,则它就可以正常工作了。
内容来源: sqlc-dev/sqlc