-
Notifications
You must be signed in to change notification settings - Fork 962
Open
Labels
Description
I want to generate sql.NullFloat64 but got interface{}. How can I get the correct type?
Here is my query.sql and schema.sql.
query.sql
-- name: ListTest :many
SELECT
(a1 / 1024) a1_float, (a2 / 1024) a2_float, a3
FROM test;scheam.sql
CREATE TABLE test (
a1 float NULL,
a2 float NULL,
a3 float NULL
);The generated code look like this:
const listTest = `-- name: ListTest :many
SELECT
(a1 / 1024) a1_float, (a2 / 1024) a2_float, a3
FROM test
`
type ListTestRow struct {
A1Float interface{}
A2Float interface{}
A3 sql.NullFloat64
}
func (q *Queries) ListTest(ctx context.Context) ([]ListTestRow, error) {
rows, err := q.db.QueryContext(ctx, listTest)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ListTestRow
for rows.Next() {
var i ListTestRow
if err := rows.Scan(&i.A1Float, &i.A2Float, &i.A3); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}The fields A1Float and A2Float in the struct ListTestRow are of type interface{}.