#1871·sqlc

无法使用 pgx 获取自定义枚举的数组

作者: kntajus创建于 2022年10月1日更新于 2026年8月31日
标签invalid:books: postgresql:wrench: golangpgx/v4

考虑以下 SQL 语句:

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;

与以下配置一起:

yaml
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

示例代码) 我不知道问题出在 sqlcpgx 中,还是出在我身上(更有可能)。值得注意的是,如果我修改生成的代码,在扫描到数组时使用 pq.Array,则它就可以正常工作了。