Skip to content

Commit 3d20d04

Browse files
authored
feat: Pass sqlc version in codegen request (#1514)
1 parent 031cd20 commit 3d20d04

File tree

7 files changed

+91
-36
lines changed

7 files changed

+91
-36
lines changed

internal/cmd/shim.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55

66
"github.com/kyleconroy/sqlc/internal/compiler"
77
"github.com/kyleconroy/sqlc/internal/config"
8+
"github.com/kyleconroy/sqlc/internal/info"
89
"github.com/kyleconroy/sqlc/internal/plugin"
910
"github.com/kyleconroy/sqlc/internal/sql/catalog"
1011
)
@@ -274,8 +275,9 @@ func pluginQueryParam(p compiler.Parameter) *plugin.Parameter {
274275

275276
func codeGenRequest(r *compiler.Result, settings config.CombinedSettings) *plugin.CodeGenRequest {
276277
return &plugin.CodeGenRequest{
277-
Settings: pluginSettings(settings),
278-
Catalog: pluginCatalog(r.Catalog),
279-
Queries: pluginQueries(r),
278+
Settings: pluginSettings(settings),
279+
Catalog: pluginCatalog(r.Catalog),
280+
Queries: pluginQueries(r),
281+
SqlcVersion: info.Version,
280282
}
281283
}

internal/codegen/golang/gen.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"text/template"
1111

1212
"github.com/kyleconroy/sqlc/internal/codegen/sdk"
13-
"github.com/kyleconroy/sqlc/internal/info"
1413
"github.com/kyleconroy/sqlc/internal/metadata"
1514
"github.com/kyleconroy/sqlc/internal/plugin"
1615
)
@@ -93,7 +92,7 @@ func generate(req *plugin.CodeGenRequest, enums []Enum, structs []Struct, querie
9392
GoQueries: queries,
9493
Enums: enums,
9594
Structs: structs,
96-
SqlcVersion: info.Version,
95+
SqlcVersion: req.SqlcVersion,
9796
}
9897

9998
if tctx.UsesCopyFrom && tctx.SQLPackage != SQLPackagePGX {

internal/codegen/kotlin/gen.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212

1313
"github.com/kyleconroy/sqlc/internal/codegen/sdk"
1414
"github.com/kyleconroy/sqlc/internal/inflection"
15-
"github.com/kyleconroy/sqlc/internal/info"
1615
"github.com/kyleconroy/sqlc/internal/metadata"
1716
"github.com/kyleconroy/sqlc/internal/plugin"
1817
)
@@ -793,7 +792,7 @@ func Generate(req *plugin.CodeGenRequest) (*plugin.CodeGenResponse, error) {
793792
Queries: queries,
794793
Enums: enums,
795794
DataClasses: structs,
796-
SqlcVersion: info.Version,
795+
SqlcVersion: req.SqlcVersion,
797796
}
798797

799798
output := map[string]string{}

internal/codegen/python/gen.go

+17-16
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010

1111
"github.com/kyleconroy/sqlc/internal/codegen/sdk"
1212
"github.com/kyleconroy/sqlc/internal/inflection"
13-
"github.com/kyleconroy/sqlc/internal/info"
1413
"github.com/kyleconroy/sqlc/internal/metadata"
1514
"github.com/kyleconroy/sqlc/internal/plugin"
1615
pyast "github.com/kyleconroy/sqlc/internal/python/ast"
@@ -482,7 +481,7 @@ func buildQueries(req *plugin.CodeGenRequest, structs []Struct) ([]Query, error)
482481
return qs, nil
483482
}
484483

485-
func moduleNode(source string) *pyast.Module {
484+
func moduleNode(version, source string) *pyast.Module {
486485
mod := &pyast.Module{
487486
Body: []*pyast.Node{
488487
poet.Comment(
@@ -492,7 +491,7 @@ func moduleNode(source string) *pyast.Module {
492491
"versions:",
493492
),
494493
poet.Comment(
495-
" sqlc " + info.Version,
494+
" sqlc " + version,
496495
),
497496
},
498497
}
@@ -661,7 +660,7 @@ func buildImportGroup(specs map[string]importSpec) *pyast.Node {
661660
}
662661

663662
func buildModelsTree(ctx *pyTmplCtx, i *importer) *pyast.Node {
664-
mod := moduleNode("")
663+
mod := moduleNode(ctx.SqlcVersion, "")
665664
std, pkg := i.modelImportSpecs()
666665
mod.Body = append(mod.Body, buildImportGroup(std), buildImportGroup(pkg))
667666

@@ -793,7 +792,7 @@ func asyncQuerierClassDef() *pyast.ClassDef {
793792
}
794793

795794
func buildQueryTree(ctx *pyTmplCtx, i *importer, source string) *pyast.Node {
796-
mod := moduleNode(source)
795+
mod := moduleNode(ctx.SqlcVersion, source)
797796
std, pkg := i.queryImportSpecs(source)
798797
mod.Body = append(mod.Body, buildImportGroup(std), buildImportGroup(pkg))
799798
mod.Body = append(mod.Body, &pyast.Node{
@@ -1028,12 +1027,13 @@ func buildQueryTree(ctx *pyTmplCtx, i *importer, source string) *pyast.Node {
10281027
}
10291028

10301029
type pyTmplCtx struct {
1031-
Models []Struct
1032-
Queries []Query
1033-
Enums []Enum
1034-
EmitSync bool
1035-
EmitAsync bool
1036-
SourceName string
1030+
Models []Struct
1031+
Queries []Query
1032+
Enums []Enum
1033+
EmitSync bool
1034+
EmitAsync bool
1035+
SourceName string
1036+
SqlcVersion string
10371037
}
10381038

10391039
func (t *pyTmplCtx) OutputQuery(sourceName string) bool {
@@ -1060,11 +1060,12 @@ func Generate(req *plugin.CodeGenRequest) (*plugin.CodeGenResponse, error) {
10601060
}
10611061

10621062
tctx := pyTmplCtx{
1063-
Models: models,
1064-
Queries: queries,
1065-
Enums: enums,
1066-
EmitSync: req.Settings.Python.EmitSyncQuerier,
1067-
EmitAsync: req.Settings.Python.EmitAsyncQuerier,
1063+
Models: models,
1064+
Queries: queries,
1065+
Enums: enums,
1066+
EmitSync: req.Settings.Python.EmitSyncQuerier,
1067+
EmitAsync: req.Settings.Python.EmitAsyncQuerier,
1068+
SqlcVersion: req.SqlcVersion,
10681069
}
10691070

10701071
output := map[string]string{}

internal/plugin/codegen.pb.go

+23-13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/plugin/codegen_vtproto.pb.go

+43
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

protos/plugin/codegen.proto

+1
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ message CodeGenRequest
183183
Settings settings = 1 [json_name="settings"];
184184
Catalog catalog = 2 [json_name="catalog"];
185185
repeated Query queries = 3 [json_name="queries"];
186+
string sqlc_version = 4 [json_name="sqlc_version"];
186187
}
187188

188189
message CodeGenResponse

0 commit comments

Comments
 (0)