Skip to content

Commit 34e3bf4

Browse files
go-mezkyleconroy
go-mez
authored andcommitted
Allow query_parameter_limit to be zero
1 parent cf7897a commit 34e3bf4

File tree

20 files changed

+167
-159
lines changed

20 files changed

+167
-159
lines changed

docs/reference/config.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ The `gen` mapping supports the following keys:
127127
- Customize the name of generated struct fields. Explained in detail on the `Renaming fields` section.
128128
- `overrides`:
129129
- It is a collection of definitions that dictates which types are used to map a database types. Explained in detail on the `Type overriding` section.
130+
- `query_parameter_limit`:
131+
- Positional arguments that will be generated in go functions (`>= 0`). To always emit a parameter struct, you would need to set it to `0`. Defaults to `1`.
130132

131133
##### Renaming fields
132134

@@ -405,8 +407,9 @@ Each mapping in the `packages` collection has the following keys:
405407
- Customize the name of the querier file. Defaults to `querier.go`.
406408
- `output_files_suffix`:
407409
- If specified the suffix will be added to the name of the generated files.
408-
- `query_parameter_limit`:
409-
- Positional arguments that will be generated in go functions (>= `1` or `-1`). To always emit a parameter struct, you would need to set it to `-1`. `0` is invalid. Defaults to `1`.
410+
- `query_parameter_limit`:
411+
- Positional arguments that will be generated in go functions (`>= 0`). To always emit a parameter struct, you would need to set it to `0`. Defaults to `1`.
412+
410413

411414
### overrides
412415

internal/cmd/shim.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ func pluginCodegen(s config.Codegen) *plugin.Codegen {
7777
func pluginGoCode(s config.SQLGo) *plugin.GoCode {
7878
if s.QueryParameterLimit == nil {
7979
s.QueryParameterLimit = new(int32)
80+
*s.QueryParameterLimit = 1
8081
}
8182

8283
return &plugin.GoCode{
@@ -102,7 +103,7 @@ func pluginGoCode(s config.SQLGo) *plugin.GoCode {
102103
OutputQuerierFileName: s.OutputQuerierFileName,
103104
OutputFilesSuffix: s.OutputFilesSuffix,
104105
InflectionExcludeTableNames: s.InflectionExcludeTableNames,
105-
QueryParameterLimit: *s.QueryParameterLimit,
106+
QueryParameterLimit: s.QueryParameterLimit,
106107
}
107108
}
108109

internal/codegen/golang/result.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,9 +202,9 @@ func buildQueries(req *plugin.CodeGenRequest, structs []Struct) ([]Query, error)
202202
}
203203
sqlpkg := parseDriver(req.Settings.Go.SqlPackage)
204204

205-
qpl := int(req.Settings.Go.QueryParameterLimit)
205+
qpl := int(*req.Settings.Go.QueryParameterLimit)
206206

207-
if len(query.Params) == 1 && qpl != -1 {
207+
if len(query.Params) == 1 && qpl != 0 {
208208
p := query.Params[0]
209209
gq.Arg = QueryValue{
210210
Name: paramName(p),
@@ -213,7 +213,7 @@ func buildQueries(req *plugin.CodeGenRequest, structs []Struct) ([]Query, error)
213213
SQLDriver: sqlpkg,
214214
Column: p.Column,
215215
}
216-
} else if len(query.Params) >= 1 && (qpl >= 1 || qpl == -1) {
216+
} else if len(query.Params) >= 1 && (qpl >= 0) {
217217
var cols []goColumn
218218
for _, p := range query.Params {
219219
cols = append(cols, goColumn{

internal/config/v_one.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,7 @@ func v1ParseConfig(rd io.Reader) (Config, error) {
7676
return config, ErrNoPackagePath
7777
}
7878

79-
if settings.Packages[j].QueryParameterLimit != nil && (*settings.Packages[j].QueryParameterLimit < -1 ||
80-
*settings.Packages[j].QueryParameterLimit == 0) {
79+
if settings.Packages[j].QueryParameterLimit != nil && (*settings.Packages[j].QueryParameterLimit < 0) {
8180
return config, ErrInvalidQueryParameterLimit
8281
}
8382

internal/config/v_two.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ func v2ParseConfig(rd io.Reader) (Config, error) {
7575
conf.SQL[j].Gen.Go.Package = filepath.Base(conf.SQL[j].Gen.Go.Out)
7676
}
7777

78-
if conf.SQL[j].Gen.Go.QueryParameterLimit != nil && (*conf.SQL[j].Gen.Go.QueryParameterLimit < -1 ||
79-
*conf.SQL[j].Gen.Go.QueryParameterLimit == 0) {
78+
if conf.SQL[j].Gen.Go.QueryParameterLimit != nil && (*conf.SQL[j].Gen.Go.QueryParameterLimit < 0) {
8079
return conf, ErrInvalidQueryParameterLimit
8180
}
8281

internal/endtoend/testdata/codegen_json/gen/codegen.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@
3737
"emit_enum_valid_method": false,
3838
"emit_all_enum_values": false,
3939
"inflection_exclude_table_names": [],
40-
"emit_pointers_for_null_types": false
40+
"emit_pointers_for_null_types": false,
41+
"query_parameter_limit": 1
4142
},
4243
"json": {
4344
"out": "gen",

internal/endtoend/testdata/process_plugin_disabled/gen/codegen.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@
3737
"emit_enum_valid_method": false,
3838
"emit_all_enum_values": false,
3939
"inflection_exclude_table_names": [],
40-
"emit_pointers_for_null_types": false
40+
"emit_pointers_for_null_types": false,
41+
"query_parameter_limit": 1
4142
},
4243
"json": {
4344
"out": "",

internal/endtoend/testdata/process_plugin_sqlc_gen_json/gen/codegen.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@
3737
"emit_enum_valid_method": false,
3838
"emit_all_enum_values": false,
3939
"inflection_exclude_table_names": [],
40-
"emit_pointers_for_null_types": false
40+
"emit_pointers_for_null_types": false,
41+
"query_parameter_limit": 1
4142
},
4243
"json": {
4344
"out": "",

internal/endtoend/testdata/query_parameter_limit_invalid/postgresql/sqlc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"name": "querytest",
88
"schema": "query.sql",
99
"queries": "query.sql",
10-
"query_parameter_limit": 0
10+
"query_parameter_limit": -1
1111
}
1212
]
1313
}

internal/endtoend/testdata/query_parameter_limit_to_two/postgresql/go/db.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/query_parameter_limit_to_two/postgresql/go/models.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/query_parameter_limit_to_two/postgresql/go/query.sql.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/query_parameter_limit_minus_one/postgresql/go/db.go renamed to internal/endtoend/testdata/query_parameter_limit_to_zero/postgresql/go/db.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/query_parameter_limit_minus_one/postgresql/go/models.go renamed to internal/endtoend/testdata/query_parameter_limit_to_zero/postgresql/go/models.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/query_parameter_limit_minus_one/postgresql/go/query.sql.go renamed to internal/endtoend/testdata/query_parameter_limit_to_zero/postgresql/go/query.sql.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/query_parameter_limit_minus_one/postgresql/sqlc.json renamed to internal/endtoend/testdata/query_parameter_limit_to_zero/postgresql/sqlc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"name": "querytest",
88
"schema": "query.sql",
99
"queries": "query.sql",
10-
"query_parameter_limit": -1
10+
"query_parameter_limit": 0
1111
}
1212
]
1313
}

0 commit comments

Comments
 (0)