Skip to content

Commit 74bcedc

Browse files
Handle untyped sqlite columns without crashing. Fixes #2279 (#2281)
1 parent 5096a9f commit 74bcedc

File tree

6 files changed

+91
-1
lines changed

6 files changed

+91
-1
lines changed

internal/endtoend/testdata/untyped_columns/sqlite/stdlib/db/db.go

Lines changed: 31 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/untyped_columns/sqlite/stdlib/db/models.go

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/untyped_columns/sqlite/stdlib/db/query.sql.go

Lines changed: 21 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-- original table name in sqlite schema was sqlite_sequence, rest of def is identical
2+
create table repro(id, name, seq);
3+
4+
-- name: GetRepro :one
5+
select * from repro where id = ? limit 1;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"version": "2",
3+
"sql": [
4+
{
5+
"engine": "sqlite",
6+
"schema": "query.sql",
7+
"queries": "query.sql",
8+
"gen": {
9+
"go": {
10+
"package": "db",
11+
"out": "db"
12+
}
13+
}
14+
}
15+
]
16+
}

internal/engine/sqlite/convert.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,14 @@ func (c *cc) convertCreate_table_stmtContext(n *parser.Create_table_stmtContext)
109109
}
110110
for _, idef := range n.AllColumn_def() {
111111
if def, ok := idef.(*parser.Column_defContext); ok {
112+
typeName := "any"
113+
if def.Type_name() != nil {
114+
typeName = def.Type_name().GetText()
115+
}
112116
stmt.Cols = append(stmt.Cols, &ast.ColumnDef{
113117
Colname: identifier(def.Column_name().GetText()),
114118
IsNotNull: hasNotNullConstraint(def.AllColumn_constraint()),
115-
TypeName: &ast.TypeName{Name: def.Type_name().GetText()},
119+
TypeName: &ast.TypeName{Name: typeName},
116120
})
117121
}
118122
}

0 commit comments

Comments
 (0)