Skip to content

Commit 26daf0a

Browse files
committed
feat: Add end-to-end test and compiler support for SQLite boolean arguments with the NOT operator.
1 parent ce83d3f commit 26daf0a

File tree

5 files changed

+95
-0
lines changed

5 files changed

+95
-0
lines changed

internal/compiler/resolve.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,20 @@ func (comp *Compiler) resolveCatalogRefs(qc *QueryCatalog, rvs []*ast.RangeVar,
522522
Column: col,
523523
})
524524

525+
case *ast.BoolExpr:
526+
defaultP := named.NewInferredParam(ref.name, false)
527+
p, isNamed := params.FetchMerge(ref.ref.Number, defaultP)
528+
a = append(a, Parameter{
529+
Number: ref.ref.Number,
530+
Column: &Column{
531+
Name: p.Name(),
532+
DataType: "boolean",
533+
IsNamedParam: isNamed,
534+
NotNull: p.NotNull(),
535+
IsSqlcSlice: p.IsSqlcSlice(),
536+
},
537+
})
538+
525539
case *ast.ParamRef:
526540
a = append(a, Parameter{Number: ref.ref.Number})
527541

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-- name: Example :many
2+
select 1 where not @argname;
3+
4+
-- name: Example2 :many
5+
select 1 where cast(@argname as boolean);

internal/endtoend/testdata/sqlite_not_bool_arg/sqlite/query.sql.go

Lines changed: 64 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
CREATE TABLE example (
2+
bar boolean
3+
);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
version: "2"
2+
sql:
3+
- engine: "sqlite"
4+
queries: "query.sql"
5+
schema: "schema.sql"
6+
gen:
7+
go:
8+
package: "db"
9+
out: "."

0 commit comments

Comments
 (0)