@@ -27,6 +27,7 @@ import (
27
27
"github.com/kyleconroy/sqlc/internal/opts"
28
28
"github.com/kyleconroy/sqlc/internal/plugin"
29
29
"github.com/kyleconroy/sqlc/internal/shfmt"
30
+ "github.com/kyleconroy/sqlc/internal/vet"
30
31
)
31
32
32
33
var ErrFailedChecks = errors .New ("failed checks" )
@@ -76,22 +77,22 @@ func Vet(ctx context.Context, e Env, dir, filename string, stderr io.Writer) err
76
77
cel .StdLib (),
77
78
ext .Strings (ext .StringsVersion (1 )),
78
79
cel .Types (
79
- & plugin. VetConfig {},
80
- & plugin. VetQuery {},
81
- & plugin. PostgreSQLExplain {},
82
- & plugin. MySQLExplain {},
80
+ & vet. Config {},
81
+ & vet. Query {},
82
+ & vet. PostgreSQL {},
83
+ & vet. MySQL {},
83
84
),
84
85
cel .Variable ("query" ,
85
- cel .ObjectType ("plugin.VetQuery " ),
86
+ cel .ObjectType ("vet.Query " ),
86
87
),
87
88
cel .Variable ("config" ,
88
- cel .ObjectType ("plugin.VetConfig " ),
89
+ cel .ObjectType ("vet.Config " ),
89
90
),
90
91
cel .Variable ("postgresql" ,
91
- cel .ObjectType ("plugin .PostgreSQL" ),
92
+ cel .ObjectType ("vet .PostgreSQL" ),
92
93
),
93
94
cel .Variable ("mysql" ,
94
- cel .ObjectType ("plugin .MySQL" ),
95
+ cel .ObjectType ("vet .MySQL" ),
95
96
),
96
97
)
97
98
if err != nil {
@@ -170,7 +171,7 @@ func (p *pgxConn) Prepare(ctx context.Context, name, query string) error {
170
171
}
171
172
172
173
func (p * pgxConn ) Explain (ctx context.Context , query string , args ... * plugin.Parameter ) (* vetEngineOutput , error ) {
173
- eQuery := "EXPLAIN (ANALYZE false, VERBOSE, COSTS, SETTINGS, BUFFERS, FORMAT JSON) " + query
174
+ eQuery := "EXPLAIN (ANALYZE false, VERBOSE, COSTS, SETTINGS, BUFFERS, FORMAT JSON) " + query
174
175
eArgs := make ([]any , len (args ))
175
176
row := p .c .QueryRow (ctx , eQuery , eArgs ... )
176
177
var result []json.RawMessage
@@ -181,11 +182,11 @@ func (p *pgxConn) Explain(ctx context.Context, query string, args ...*plugin.Par
181
182
fmt .Println (eQuery )
182
183
fmt .Println (string (result [0 ]))
183
184
}
184
- var explain plugin .PostgreSQLExplain
185
+ var explain vet .PostgreSQLExplain
185
186
if err := pjson .Unmarshal (result [0 ], & explain ); err != nil {
186
187
return nil , err
187
188
}
188
- return & vetEngineOutput {PostgreSQL : & plugin .PostgreSQL {Explain : & explain }}, nil
189
+ return & vetEngineOutput {PostgreSQL : & vet .PostgreSQL {Explain : & explain }}, nil
189
190
}
190
191
191
192
type dbPreparer struct {
@@ -207,7 +208,7 @@ type mysqlExplainer struct {
207
208
}
208
209
209
210
func (me * mysqlExplainer ) Explain (ctx context.Context , query string , args ... * plugin.Parameter ) (* vetEngineOutput , error ) {
210
- eQuery := "EXPLAIN FORMAT=JSON " + query
211
+ eQuery := "EXPLAIN FORMAT=JSON " + query
211
212
eArgs := make ([]any , len (args ))
212
213
row := me .QueryRowContext (ctx , eQuery , eArgs ... )
213
214
var result json.RawMessage
@@ -218,14 +219,14 @@ func (me *mysqlExplainer) Explain(ctx context.Context, query string, args ...*pl
218
219
fmt .Println (eQuery )
219
220
fmt .Println (string (result ))
220
221
}
221
- var explain plugin .MySQLExplain
222
+ var explain vet .MySQLExplain
222
223
if err := pjson .Unmarshal (result , & explain ); err != nil {
223
224
return nil , err
224
225
}
225
226
if explain .QueryBlock .Message != "" {
226
227
return nil , fmt .Errorf ("mysql explain: %s" , explain .QueryBlock .Message )
227
228
}
228
- return & vetEngineOutput {MySQL : & plugin .MySQL {Explain : & explain }}, nil
229
+ return & vetEngineOutput {MySQL : & vet .MySQL {Explain : & explain }}, nil
229
230
}
230
231
231
232
type rule struct {
@@ -377,7 +378,8 @@ func (c *checker) checkSQL(ctx context.Context, s config.SQL) error {
377
378
}
378
379
379
380
// Get explain output for this query if we need it
380
- _ , pgsqlOK := evalMap ["postgresql" ]; _ , mysqlOK := evalMap ["mysql" ]
381
+ _ , pgsqlOK := evalMap ["postgresql" ]
382
+ _ , mysqlOK := evalMap ["mysql" ]
381
383
if rule .NeedsExplain && ! (pgsqlOK || mysqlOK ) {
382
384
if expl == nil {
383
385
fmt .Fprintf (c .Stderr , "%s: %s: %s: error explaining query: database connection required\n " , query .Filename , query .Name , name )
@@ -420,23 +422,23 @@ func (c *checker) checkSQL(ctx context.Context, s config.SQL) error {
420
422
return nil
421
423
}
422
424
423
- func vetConfig (req * plugin.CodeGenRequest ) * plugin. VetConfig {
424
- return & plugin. VetConfig {
425
+ func vetConfig (req * plugin.CodeGenRequest ) * vet. Config {
426
+ return & vet. Config {
425
427
Version : req .Settings .Version ,
426
428
Engine : req .Settings .Engine ,
427
429
Schema : req .Settings .Schema ,
428
430
Queries : req .Settings .Queries ,
429
431
}
430
432
}
431
433
432
- func vetQuery (q * plugin.Query ) * plugin. VetQuery {
433
- var params []* plugin. VetParameter
434
+ func vetQuery (q * plugin.Query ) * vet. Query {
435
+ var params []* vet. Parameter
434
436
for _ , p := range q .Params {
435
- params = append (params , & plugin. VetParameter {
437
+ params = append (params , & vet. Parameter {
436
438
Number : p .Number ,
437
439
})
438
440
}
439
- return & plugin. VetQuery {
441
+ return & vet. Query {
440
442
Sql : q .Text ,
441
443
Name : q .Name ,
442
444
Cmd : strings .TrimPrefix (":" , q .Cmd ),
@@ -445,6 +447,6 @@ func vetQuery(q *plugin.Query) *plugin.VetQuery {
445
447
}
446
448
447
449
type vetEngineOutput struct {
448
- PostgreSQL * plugin .PostgreSQL
449
- MySQL * plugin .MySQL
450
+ PostgreSQL * vet .PostgreSQL
451
+ MySQL * vet .MySQL
450
452
}
0 commit comments