From c2509c3c5b191463c5a7dfc674cc85f494a5f992 Mon Sep 17 00:00:00 2001 From: Pavlo Date: Sun, 1 Mar 2026 20:26:49 +0200 Subject: [PATCH] named param --- .../sql/rewrite/parameters_sqlite_test.go | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 internal/sql/rewrite/parameters_sqlite_test.go diff --git a/internal/sql/rewrite/parameters_sqlite_test.go b/internal/sql/rewrite/parameters_sqlite_test.go new file mode 100644 index 0000000000..7940ce512a --- /dev/null +++ b/internal/sql/rewrite/parameters_sqlite_test.go @@ -0,0 +1,32 @@ +package rewrite + +import ( + "strings" + "testing" + + "github.com/sqlc-dev/sqlc/internal/config" + "github.com/sqlc-dev/sqlc/internal/engine/sqlite" + "github.com/sqlc-dev/sqlc/internal/sql/validate" +) + +func TestSQLiteNamedParamAfterNot(t *testing.T) { + parser := sqlite.NewParser() + stmts, err := parser.Parse(strings.NewReader(`SELECT 1 WHERE NOT @argname;`)) + if err != nil { + t.Fatalf("parse failed: %v", err) + } + if len(stmts) != 1 { + t.Fatalf("expected 1 statement, got %d", len(stmts)) + } + + raw := stmts[0].Raw + numbers, dollar, err := validate.ParamRef(raw) + if err != nil { + t.Fatalf("validate.ParamRef failed: %v", err) + } + + _, params, _ := NamedParameters(config.EngineSQLite, raw, numbers, dollar) + if name, ok := params.NameFor(1); !ok || name != "argname" { + t.Fatalf("expected named parameter 'argname' at position 1, got %q (ok=%v)", name, ok) + } +}