-
Notifications
You must be signed in to change notification settings - Fork 966
Open
Labels
Description
Version
1.30.0
What happened?
Fail to generate go gode when using named argument >1 for optional SELECT WHERE query case
see #200
suggested solution does not work in 1.30.0 in golang
would generate go compile error name redeclared in this block
Relevant log output
Go auto-generated code
// ListUsers
//
// SELECT name
// FROM users
// WHERE
// (name = ? OR ? IS NULL)
func (q *Queries) ListUsers(ctx context.Context, name *string, name *string) ([]string, error) {
go build
# query_parameter_limit = 4 (important) will generate (ISSUE) duplicate func args
# query_parameter_limit = 1 will generate struct, no duplicate (NO ISSUE)
sqlc/maindb/users.sql.go:25:64: name redeclared in this block
sqlc/maindb/users.sql.go:25:50: other declaration of nameDatabase schema
CREATE TABLE users (name TEXT NOT NULL);
SQL queries
-- name: ListUsers :many
SELECT *
FROM users
WHERE
(name = sqlc.narg('name') OR sqlc.narg('name') IS NULL)
Configuration
version: "2"
sql:
- engine: "mysql"
queries: "./db/maindb/queries/"
schema: "./db/maindb/migrations/"
gen:
go:
package: "maindb"
out: "internal/infra/sqlc/maindb"
sql_package: "database/sql"
sql_driver: "github.com/go-sql-driver/mysql"
emit_interface: true
emit_json_tags: true
json_tags_case_style: "camel"
emit_prepared_queries: true
emit_exact_table_names: true
emit_empty_slices: true
emit_result_struct_pointers: true
emit_params_struct_pointers: true
query_parameter_limit: 4
emit_db_tags: true
emit_enum_valid_method: true
emit_all_enum_values: true
emit_sql_as_comment: true
What operating system are you using?
macOS
What database engines are you using?
MySQL
What type of code are you generating?
Go