Skip to content

Commit c2509c3

Browse files
committed
named param
1 parent ce83d3f commit c2509c3

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package rewrite
2+
3+
import (
4+
"strings"
5+
"testing"
6+
7+
"github.com/sqlc-dev/sqlc/internal/config"
8+
"github.com/sqlc-dev/sqlc/internal/engine/sqlite"
9+
"github.com/sqlc-dev/sqlc/internal/sql/validate"
10+
)
11+
12+
func TestSQLiteNamedParamAfterNot(t *testing.T) {
13+
parser := sqlite.NewParser()
14+
stmts, err := parser.Parse(strings.NewReader(`SELECT 1 WHERE NOT @argname;`))
15+
if err != nil {
16+
t.Fatalf("parse failed: %v", err)
17+
}
18+
if len(stmts) != 1 {
19+
t.Fatalf("expected 1 statement, got %d", len(stmts))
20+
}
21+
22+
raw := stmts[0].Raw
23+
numbers, dollar, err := validate.ParamRef(raw)
24+
if err != nil {
25+
t.Fatalf("validate.ParamRef failed: %v", err)
26+
}
27+
28+
_, params, _ := NamedParameters(config.EngineSQLite, raw, numbers, dollar)
29+
if name, ok := params.NameFor(1); !ok || name != "argname" {
30+
t.Fatalf("expected named parameter 'argname' at position 1, got %q (ok=%v)", name, ok)
31+
}
32+
}

0 commit comments

Comments
 (0)