Skip to content

Commit b128c35

Browse files
authored
internal/dinosql: Error on missing queries (#180)
If after parsing a package contains zero queries, error
1 parent 9211826 commit b128c35

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

internal/dinosql/parser.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,9 @@ func ParseQueries(c core.Catalog, settings GenerateSettings, pkg PackageSettings
219219
for _, stmt := range tree.Statements {
220220
// line, col := location(source, stmt)
221221
query, err := parseQuery(c, stmt, source)
222+
if err == errUnsupportedStatementType {
223+
continue
224+
}
222225
if err != nil {
223226
merr.Add(filename, source, location(stmt), err)
224227
continue
@@ -229,11 +232,12 @@ func ParseQueries(c core.Catalog, settings GenerateSettings, pkg PackageSettings
229232
}
230233
}
231234
}
232-
235+
if len(q) == 0 {
236+
return nil, fmt.Errorf("path %s contains no queries", pkg.Queries)
237+
}
233238
if len(merr.Errs) > 0 {
234239
return nil, merr
235240
}
236-
237241
return &Result{Catalog: c, Queries: q, Settings: settings}, nil
238242
}
239243

@@ -365,6 +369,8 @@ func validateCmd(n nodes.Node, name, cmd string) error {
365369
return nil
366370
}
367371

372+
var errUnsupportedStatementType = errors.New("parseQuery: unsupported statement type")
373+
368374
func parseQuery(c core.Catalog, stmt nodes.Node, source string) (*Query, error) {
369375
if err := validateParamRef(stmt); err != nil {
370376
return nil, err
@@ -382,7 +388,7 @@ func parseQuery(c core.Catalog, stmt nodes.Node, source string) (*Query, error)
382388
}
383389
case nodes.UpdateStmt:
384390
default:
385-
return nil, fmt.Errorf("parseQuery: unsupported statement type: %T", n)
391+
return nil, errUnsupportedStatementType
386392
}
387393

388394
rawSQL, err := pluckQuery(source, raw)

0 commit comments

Comments
 (0)