From c5a188cf0bd9118d0ae0c8d715bdc4304855a05c Mon Sep 17 00:00:00 2001 From: Dery Rahman Ahaddienata Date: Wed, 21 Jun 2023 21:14:59 +0700 Subject: [PATCH 1/2] feat: unbounded parameter limit --- internal/codegen/golang/result.go | 2 +- internal/config/v_two.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/codegen/golang/result.go b/internal/codegen/golang/result.go index f5ecd124a1..86b749aed8 100644 --- a/internal/codegen/golang/result.go +++ b/internal/codegen/golang/result.go @@ -241,7 +241,7 @@ func buildQueries(req *plugin.CodeGenRequest, structs []Struct) ([]Query, error) EmitPointer: req.Settings.Go.EmitParamsStructPointers, } - if len(query.Params) <= qpl { + if len(query.Params) <= qpl || qpl == -1 { gq.Arg.Emit = false } } diff --git a/internal/config/v_two.go b/internal/config/v_two.go index e2c97a2749..d0c835265f 100644 --- a/internal/config/v_two.go +++ b/internal/config/v_two.go @@ -75,7 +75,8 @@ func v2ParseConfig(rd io.Reader) (Config, error) { conf.SQL[j].Gen.Go.Package = filepath.Base(conf.SQL[j].Gen.Go.Out) } - if conf.SQL[j].Gen.Go.QueryParameterLimit != nil && (*conf.SQL[j].Gen.Go.QueryParameterLimit < 0) { + if conf.SQL[j].Gen.Go.QueryParameterLimit != nil && (*conf.SQL[j].Gen.Go.QueryParameterLimit == 0 || + *conf.SQL[j].Gen.Go.QueryParameterLimit < -1) { return conf, ErrInvalidQueryParameterLimit } From 7fbb0e432e4e230b79ad22ac5bda2d133e00934a Mon Sep 17 00:00:00 2001 From: Dery Rahman Ahaddienata Date: Wed, 21 Jun 2023 21:35:34 +0700 Subject: [PATCH 2/2] feat: update docs for parameter limit --- docs/reference/config.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/reference/config.md b/docs/reference/config.md index a3c430744f..07c2dacadb 100644 --- a/docs/reference/config.md +++ b/docs/reference/config.md @@ -124,8 +124,8 @@ The `gen` mapping supports the following keys: - `output_files_suffix`: - If specified the suffix will be added to the name of the generated files. - `query_parameter_limit`: - - 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`. -`rename`: + - 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`. While `-1` is used to always generate all positional arguments. `0` is invalid. Defaults to `1`. +- `rename`: - Customize the name of generated struct fields. Explained in detail on the `Renaming fields` section. - `overrides`: - 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.