Skip to content

Commit 5226cf7

Browse files
authored
internal/dinosql: Error on duplicate query names (#221)
* internal/dinosql: Error on duplicate query names * Only check for duplicates if name is not empty
1 parent dff2740 commit 5226cf7

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

internal/dinosql/parser.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ func ParseQueries(c core.Catalog, settings GenerateSettings, pkg PackageSettings
202202

203203
merr := NewParserErr()
204204
var q []*Query
205+
set := map[string]struct{}{}
205206
for _, filename := range files {
206207
if !strings.HasSuffix(filename, ".sql") {
207208
continue
@@ -221,7 +222,6 @@ func ParseQueries(c core.Catalog, settings GenerateSettings, pkg PackageSettings
221222
continue
222223
}
223224
for _, stmt := range tree.Statements {
224-
// line, col := location(source, stmt)
225225
query, err := parseQuery(c, stmt, source)
226226
if err == errUnsupportedStatementType {
227227
continue
@@ -230,6 +230,13 @@ func ParseQueries(c core.Catalog, settings GenerateSettings, pkg PackageSettings
230230
merr.Add(filename, source, location(stmt), err)
231231
continue
232232
}
233+
if query.Name != "" {
234+
if _, exists := set[query.Name]; exists {
235+
merr.Add(filename, source, location(stmt), fmt.Errorf("duplicate query name: %s", query.Name))
236+
continue
237+
}
238+
set[query.Name] = struct{}{}
239+
}
233240
query.Filename = filepath.Base(filename)
234241
if query != nil {
235242
q = append(q, query)

0 commit comments

Comments
 (0)