Skip to content

Commit 5aba264

Browse files
committed
fix(golang): escape generated enum values
1 parent a3b0cfd commit 5aba264

8 files changed

Lines changed: 182 additions & 1 deletion

File tree

internal/codegen/golang/templates/template.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ type {{.Name}} string
9292

9393
const (
9494
{{- range .Constants}}
95-
{{.Name}} {{.Type}} = "{{.Value}}"
95+
{{.Name}} {{.Type}} = {{printf "%q" .Value}}
9696
{{- end}}
9797
)
9898

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"contexts": ["base"]
3+
}

internal/endtoend/testdata/enum_escaped_values/postgresql/stdlib/go/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/enum_escaped_values/postgresql/stdlib/go/models.go

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

internal/endtoend/testdata/enum_escaped_values/postgresql/stdlib/go/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: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- name: GetUser :one
2+
SELECT id, role, payload FROM users WHERE id = $1;
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
CREATE TYPE injection AS ENUM (
2+
'safe_value',
3+
'injected" + "arbitrary_go_code" + "'
4+
);
5+
6+
CREATE TYPE user_role AS ENUM (
7+
'admin',
8+
'user\nadmin'
9+
);
10+
11+
CREATE TABLE users (
12+
id SERIAL PRIMARY KEY,
13+
role user_role NOT NULL,
14+
payload injection NOT NULL
15+
);
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: postgresql
4+
schema: "schema.sql"
5+
queries: "query.sql"
6+
gen:
7+
go:
8+
package: "querytest"
9+
out: "go"

0 commit comments

Comments
 (0)