hello! when i use query with arry of enums, i get an error: Query failed. err=failed to encode args[0]: unable to encode []main.Level{"low", "middle"} into text format for unknown type (OID 16408): cannot find encode plan
first, i create a table of author and level is enum type
create table authors
(
id bigserial,
name text not null,
bio text,
age integer default 18 not null,
level level default 'low'::level not null,
primary key (id)
);
then, i use query like this:
type Level string
const (
LevelLow Level = "low"
LevelMiddle Level = "middle"
LevelHigh Level = "high"
)
func main() {
ctx := context.Background()
conn, err := pgx.Connect(ctx, "postgres://postgres:123456@localhost:5432/postgres")
if err != nil {
log.Fatalf("init pgx failed. err=%v", err)
}
rows, err := conn.Query(ctx, `
SELECT id
FROM authors
WHERE level = ANY ($1::level[])
`, []Level{LevelLow, LevelMiddle})
if err != nil {
log.Fatalf("Query failed. err=%v", err)
}
defer rows.Close()
var ids []int64
for rows.Next() {
var id int64
if err := rows.Scan(&id); err != nil {
log.Fatalf("scan failed. err=%v", err)
}
ids = append(ids, id)
}
if err := rows.Err(); err != nil {
log.Fatalf("rows.Err(). err=%v", err)
}
fmt.Println(ids)
}
Could you tell me how can i use []Level type to query the ids?
hello! when i use query with arry of enums, i get an error:
Query failed. err=failed to encode args[0]: unable to encode []main.Level{"low", "middle"} into text format for unknown type (OID 16408): cannot find encode planfirst, i create a table of author and level is enum type
then, i use query like this:
Could you tell me how can i use []Level type to query the ids?