Skip to content

Commit bca48e6

Browse files
authored
dolphin: Implement named parameters via sqlc.arg() (#632)
* parser: Update to latest version of forked parser * endtoend: Add sqlc_arg test case * internal: Implement named arguments for MySQL * cleanup
1 parent 3731a92 commit bca48e6

File tree

16 files changed

+294
-8
lines changed

16 files changed

+294
-8
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ require (
1616
vitess.io/vitess v0.0.0-20200617014457-5ba6549015c0
1717
)
1818

19-
replace github.com/pingcap/parser => github.com/kyleconroy/parser v0.0.0-20200727200926-0e04da0a60a6
19+
replace github.com/pingcap/parser => github.com/kyleconroy/parser v0.0.0-20200728181224-b006e3bf3ed9

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,8 @@ github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
311311
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
312312
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
313313
github.com/krishicks/yaml-patch v0.0.10/go.mod h1:Sm5TchwZS6sm7RJoyg87tzxm2ZcKzdRE4Q7TjNhPrME=
314-
github.com/kyleconroy/parser v0.0.0-20200727200926-0e04da0a60a6 h1:fryw+mWaV81slq8BqQFia2hlVt1HA4v+8d0UM7VOe7E=
315-
github.com/kyleconroy/parser v0.0.0-20200727200926-0e04da0a60a6/go.mod h1:vQdbJqobJAgFyiRNNtXahpMoGWwPEuWciVEK5A20NS0=
314+
github.com/kyleconroy/parser v0.0.0-20200728181224-b006e3bf3ed9 h1:rSPG/3/wBoiniDxYd/BsAy+mLIi0MVfZMhXJr7TKVPA=
315+
github.com/kyleconroy/parser v0.0.0-20200728181224-b006e3bf3ed9/go.mod h1:vQdbJqobJAgFyiRNNtXahpMoGWwPEuWciVEK5A20NS0=
316316
github.com/lfittl/pg_query_go v1.0.0 h1:rcHZK5DBEUoxtO6dACP+UVCHKtA1ZsELBW0rSjOXMAE=
317317
github.com/lfittl/pg_query_go v1.0.0/go.mod h1:jcikG62RKf+NIWmbLzjjk73m4x6um2pKf3h+TJyINms=
318318
github.com/lib/pq v1.4.0 h1:TmtCFbH+Aw0AixwyttznSMQDgbR5Yed/Gg6S8Funrhc=

internal/compiler/parse.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func (c *Compiler) parseQuery(stmt ast.Node, src string, o opts.Parser) (*Query,
7676
return nil, err
7777
}
7878

79-
raw, namedParams, edits := rewrite.NamedParameters(raw)
79+
raw, namedParams, edits := rewrite.NamedParameters(c.conf.Engine, raw)
8080
rvs := rangeVars(raw.Stmt)
8181
refs := findParameters(raw.Stmt)
8282
if o.UsePositionalParameters {

internal/debug/dump.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ func init() {
1212
Active = os.Getenv("SQLCDEBUG") != ""
1313
}
1414

15-
func Dump(n interface{}) {
15+
func Dump(n ...interface{}) {
1616
if Active {
1717
spew.Dump(n)
1818
}

internal/endtoend/testdata/sqlc_arg/mysql/go/db.go

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

internal/endtoend/testdata/sqlc_arg/mysql/go/models.go

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

internal/endtoend/testdata/sqlc_arg/mysql/go/query.sql.go

Lines changed: 62 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
CREATE TABLE foo (name text not null);
2+
3+
/* name: FuncParamIdent :many */
4+
SELECT name FROM foo WHERE name = sqlc.arg(slug);
5+
6+
/* name: FuncParamString :many */
7+
SELECT name FROM foo WHERE name = sqlc.arg('slug');
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"version": "1",
3+
"packages": [
4+
{
5+
"engine": "_dolphin",
6+
"path": "go",
7+
"name": "querytest",
8+
"schema": "query.sql",
9+
"queries": "query.sql"
10+
}
11+
]
12+
}

internal/endtoend/testdata/sqlc_arg/postgresql/go/db.go

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

0 commit comments

Comments
 (0)