-
Notifications
You must be signed in to change notification settings - Fork 901
Closed as not planned
Labels
Description
Version
1.17.2
What happened?
Given
Migration file
create type myarg as (
id integer,
name text
);
When
Query file
-- name: BasicQuery :one
select $1::myarg;
Then
const basicQuery = `-- name: BasicQuery :one
select $1::myarg
`
func (q *Queries) BasicQuery(ctx context.Context, dollar_1 string) (string, error) {
row := q.db.QueryRow(ctx, basicQuery, dollar_1)
var column_1 string
err := row.Scan(&column_1)
return column_1, err
}
Note that the second input parameter (dollar_1 string
) is of type string
, which is not what I expected. The same goes for the output parameter which I expected to a struct but is instead a string
.
When
Query file
-- name: LessBasicQuery :many
select id, text from unnest(@args::myarg[]);
Then
When you generate the Go code the following error shows up in the terminal.
queries/queries.sql:28:8: column "id" does not exist
sql/generate.go:3: running "sqlc": exit status 1
When
Query file
-- name: LessBasicQuery :many
select * from unnest(@args::myarg[]);
Then
const lessBasicQuery = `-- name: LessBasicQuery :many
select from unnest($1::myarg[])
`
type LessBasicQueryRow struct {
}
func (q *Queries) LessBasicQuery(ctx context.Context, args []string) ([]*LessBasicQueryRow, error) {
rows, err := q.db.Query(ctx, lessBasicQuery, args)
if err != nil {
return nil, err
}
defer rows.Close()
var items []*LessBasicQueryRow
for rows.Next() {
var i LessBasicQueryRow
if err := rows.Scan(); err != nil {
return nil, err
}
items = append(items, &i)
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
Notice that the input argument (args []string
) is a slice of string
instead of an expected struct. The output parameter LessBasicQueryRow
is struct, but its implementation is empty i.e. no fields have been generated.
Relevant log output
No response
Database schema
create type myarg as (
id integer,
name text
);
SQL queries
No response
Configuration
version: '2'
sql:
- schema: "migrations/"
queries: "queries/"
engine: "postgresql"
gen:
go:
package: "store"
out: "./store"
sql_package: "pgx/v4"
emit_result_struct_pointers: true
emit_params_struct_pointers: true
emit_interface: false
output_db_file_name: "db.go"
Playground URL
https://play.sqlc.dev/p/cd61cf69aae8e7e71c37cf2733176654aec3debc090660bb149700c1ab61153c
What operating system are you using?
macOS
What database engines are you using?
PostgreSQL
What type of code are you generating?
Go
bessiambre