From f945922f139e7cd8eca19f56719841aa21e19d7c Mon Sep 17 00:00:00 2001 From: Nick Glynn Date: Wed, 1 Oct 2025 15:56:01 +1000 Subject: [PATCH 1/3] Fix up space before parens --- .../sqlc_embed/postgresql/pgx/go/query.sql.go | 72 ++++++++++++++++--- .../sqlc_embed/postgresql/pgx/query.sql | 5 +- internal/sql/rewrite/embeds.go | 26 +++++-- 3 files changed, 85 insertions(+), 18 deletions(-) diff --git a/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go b/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go index 643d5d41d6..c84a283d59 100644 --- a/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go +++ b/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go @@ -11,7 +11,11 @@ import ( ) const duplicate = `-- name: Duplicate :one -SELECT users.id, users.name, users.age, users.id, users.name, users.age FROM users +SELECT + users.id, users.name, users.age, + users.id, users.name, users.age +FROM + users ` type DuplicateRow struct { @@ -34,8 +38,12 @@ func (q *Queries) Duplicate(ctx context.Context) (DuplicateRow, error) { } const join = `-- name: Join :one -SELECT users.id, users.name, users.age, posts.id, posts.user_id FROM posts -INNER JOIN users ON posts.user_id = users.id +SELECT + users.id, users.name, users.age, + posts.id, posts.user_id +FROM + posts + INNER JOIN users ON posts.user_id = users.id ` type JoinRow struct { @@ -57,7 +65,10 @@ func (q *Queries) Join(ctx context.Context) (JoinRow, error) { } const only = `-- name: Only :one -SELECT users.id, users.name, users.age FROM users +SELECT + users.id, users.name, users.age +FROM + users ` type OnlyRow struct { @@ -72,7 +83,10 @@ func (q *Queries) Only(ctx context.Context) (OnlyRow, error) { } const withAlias = `-- name: WithAlias :one -SELECT u.id, u.name, u.age FROM users u +SELECT + u.id, u.name, u.age +FROM + users u ` type WithAliasRow struct { @@ -87,7 +101,11 @@ func (q *Queries) WithAlias(ctx context.Context) (WithAliasRow, error) { } const withAsterisk = `-- name: WithAsterisk :one -SELECT users.id, users.name, users.age, id, name, age FROM users +SELECT + users.id, users.name, users.age, + id, name, age +FROM + users ` type WithAsteriskRow struct { @@ -112,8 +130,12 @@ func (q *Queries) WithAsterisk(ctx context.Context) (WithAsteriskRow, error) { } const withCrossSchema = `-- name: WithCrossSchema :many -SELECT users.id, users.name, users.age, bu.id, bu.name FROM users -INNER JOIN baz.users bu ON users.id = bu.id +SELECT + users.id, users.name, users.age, + bu.id, bu.name +FROM + users + INNER JOIN baz.users bu ON users.id = bu.id ` type WithCrossSchemaRow struct { @@ -148,7 +170,10 @@ func (q *Queries) WithCrossSchema(ctx context.Context) ([]WithCrossSchemaRow, er } const withSchema = `-- name: WithSchema :one -SELECT bu.id, bu.name FROM baz.users bu +SELECT + bu.id, bu.name +FROM + baz.users bu ` type WithSchemaRow struct { @@ -162,8 +187,35 @@ func (q *Queries) WithSchema(ctx context.Context) (WithSchemaRow, error) { return i, err } +const withSpaceBeforeParen = `-- name: WithSpaceBeforeParen :one +SELECT + users.id, users.name, users.age +FROM + users +` + +type WithSpaceBeforeParenRow struct { + User User `db:"user" json:"user"` +} + +func (q *Queries) WithSpaceBeforeParen(ctx context.Context) (WithSpaceBeforeParenRow, error) { + row := q.db.QueryRow(ctx, withSpaceBeforeParen) + var i WithSpaceBeforeParenRow + err := row.Scan(&i.User.ID, &i.User.Name, &i.User.Age) + return i, err +} + const withSubquery = `-- name: WithSubquery :many -SELECT users.id, users.name, users.age, (SELECT count(*) FROM users) AS total_count FROM users +SELECT + users.id, users.name, users.age, + ( + SELECT + count(*) + FROM + users + ) AS total_count +FROM + users ` type WithSubqueryRow struct { diff --git a/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/query.sql b/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/query.sql index 7822145508..22350e4637 100644 --- a/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/query.sql +++ b/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/query.sql @@ -22,4 +22,7 @@ SELECT sqlc.embed(bu) FROM baz.users bu; -- name: WithCrossSchema :many SELECT sqlc.embed(users), sqlc.embed(bu) FROM users -INNER JOIN baz.users bu ON users.id = bu.id; \ No newline at end of file +INNER JOIN baz.users bu ON users.id = bu.id; + +-- name: WithSpaceBeforeParen :one +SELECT sqlc.embed (users) FROM users; diff --git a/internal/sql/rewrite/embeds.go b/internal/sql/rewrite/embeds.go index 596c03be89..b60e000470 100644 --- a/internal/sql/rewrite/embeds.go +++ b/internal/sql/rewrite/embeds.go @@ -2,6 +2,7 @@ package rewrite import ( "fmt" + "strings" "github.com/sqlc-dev/sqlc/internal/sql/ast" "github.com/sqlc-dev/sqlc/internal/sql/astutils" @@ -9,14 +10,15 @@ import ( // Embed is an instance of `sqlc.embed(param)` type Embed struct { - Table *ast.TableName - param string - Node *ast.ColumnRef + Table *ast.TableName + param string + Node *ast.ColumnRef + spaces string } // Orig string to replace func (e Embed) Orig() string { - return fmt.Sprintf("sqlc.embed(%s)", e.param) + return fmt.Sprintf("sqlc.embed%s(%s)", e.spaces, e.param) } // EmbedSet is a set of Embed instances @@ -51,6 +53,15 @@ func Embeds(raw *ast.RawStmt) (*ast.RawStmt, EmbedSet) { param, _ := flatten(fun.Args) + // Calculate spaces between function name and opening parenthesis + // to handle formatters that insert spaces (e.g., pgFormatter) + funcName := "sqlc.embed" + spaces := "" + if fun.Args != nil && len(fun.Args.Items) > 0 { + leftParen := fun.Args.Items[0].Pos() - 1 + spaces = strings.Repeat(" ", leftParen-fun.Location-len(funcName)) + } + node := &ast.ColumnRef{ Fields: &ast.List{ Items: []ast.Node{ @@ -61,9 +72,10 @@ func Embeds(raw *ast.RawStmt) (*ast.RawStmt, EmbedSet) { } embeds = append(embeds, &Embed{ - Table: &ast.TableName{Name: param}, - param: param, - Node: node, + Table: &ast.TableName{Name: param}, + param: param, + Node: node, + spaces: spaces, }) cr.Replace(node) From 7f4de2faea10a1f0eb6860178c9272dac4beaacf Mon Sep 17 00:00:00 2001 From: Nick Glynn Date: Wed, 1 Oct 2025 15:56:01 +1000 Subject: [PATCH 2/3] Fix up space before parens --- internal/endtoend/testdata/go.sum | 24 +++++++ .../testdata/sqlc_embed/mysql/go/query.sql.go | 72 ++++++++++++++++--- .../testdata/sqlc_embed/mysql/query.sql | 60 +++++++++++++--- .../sqlc_embed/postgresql/pgx/go/query.sql.go | 15 ++++ .../sqlc_embed/postgresql/pgx/query.sql | 5 +- .../postgresql/stdlib/go/query.sql.go | 72 ++++++++++++++++--- .../sqlc_embed/postgresql/stdlib/query.sql | 60 +++++++++++++--- .../sqlc_embed/sqlite/go/query.sql.go | 72 ++++++++++++++++--- .../testdata/sqlc_embed/sqlite/query.sql | 60 +++++++++++++--- internal/sql/rewrite/embeds.go | 26 +++++-- 10 files changed, 398 insertions(+), 68 deletions(-) diff --git a/internal/endtoend/testdata/go.sum b/internal/endtoend/testdata/go.sum index a5819e0a3b..ddedf70267 100644 --- a/internal/endtoend/testdata/go.sum +++ b/internal/endtoend/testdata/go.sum @@ -9,6 +9,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/friendsofgo/errors v0.9.2 h1:X6NYxef4efCBdwI7BgS820zFaN7Cphrmb+Pljdzjtgk= github.com/friendsofgo/errors v0.9.2/go.mod h1:yCvFW5AkDIL9qn7suHVLiI/gH228n7PC4Pn44IGoTOI= +github.com/go-pg/pg/v10 v10.11.0/go.mod h1:4BpHRoxE61y4Onpof3x1a2SQvi9c+q1dJnrNdMjsroA= +github.com/go-pg/zerochecker v0.2.0/go.mod h1:NJZ4wKL0NmTtz0GKCoJ8kym6Xn/EQzXRl2OnAe7MmDo= github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -74,10 +76,13 @@ github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0f github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= +github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -102,6 +107,7 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= @@ -124,6 +130,15 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc/go.mod h1:bciPuU6GHm1iF1pBvUfxfsH0Wmnc2VbpgvbI9ZWuIRs= +github.com/uptrace/bun v1.1.12/go.mod h1:NPG6JGULBeQ9IU6yHp7YGELRa5Agmd7ATZdz4tGZ6z0= +github.com/uptrace/bun/dialect/pgdialect v1.1.12/go.mod h1:Ij6WIxQILxLlL2frUBxUBOZJtLElD2QQNDcu/PWDHTc= +github.com/uptrace/bun/driver/pgdriver v1.1.12/go.mod h1:ssYUP+qwSEgeDDS1xm2XBip9el1y9Mi5mTAvLoiADLM= +github.com/vmihailenco/bufpool v0.1.11/go.mod h1:AFf/MOy3l2CFTKbxwt0mp2MwnqjNEs5H/UxrkA5jxTQ= +github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/volatiletech/inflect v0.0.1 h1:2a6FcMQyhmPZcLa+uet3VJ8gLn/9svWhJxJYwvE8KsU= github.com/volatiletech/inflect v0.0.1/go.mod h1:IBti31tG6phkHitLlr5j7shC5SOo//x0AjDzaJU1PLA= github.com/volatiletech/null/v8 v8.1.2 h1:kiTiX1PpwvuugKwfvUNX/SU/5A2KGZMXfGD0DUHdKEI= @@ -154,11 +169,14 @@ golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -169,6 +187,8 @@ golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= @@ -184,6 +204,7 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -193,6 +214,7 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1N golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/guregu/null.v4 v4.0.0 h1:1Wm3S1WEA2I26Kq+6vcW+w0gcDo44YKYD7YIEJNHDjg= gopkg.in/guregu/null.v4 v4.0.0/go.mod h1:YoQhUrADuG3i9WqesrCmpNRwm1ypAgSHYqoOcTu/JrI= @@ -200,4 +222,6 @@ gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:a gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +mellium.im/sasl v0.3.1/go.mod h1:xm59PUYpZHhgQ9ZqoJ5QaCqzWMi8IeS49dhp6plPCzw= diff --git a/internal/endtoend/testdata/sqlc_embed/mysql/go/query.sql.go b/internal/endtoend/testdata/sqlc_embed/mysql/go/query.sql.go index 09f901c7b3..39c07e8fc4 100644 --- a/internal/endtoend/testdata/sqlc_embed/mysql/go/query.sql.go +++ b/internal/endtoend/testdata/sqlc_embed/mysql/go/query.sql.go @@ -11,7 +11,11 @@ import ( ) const duplicate = `-- name: Duplicate :one -SELECT users.id, users.name, users.age, users.id, users.name, users.age FROM users +SELECT + users.id, users.name, users.age, + users.id, users.name, users.age +FROM + users ` type DuplicateRow struct { @@ -34,8 +38,12 @@ func (q *Queries) Duplicate(ctx context.Context) (DuplicateRow, error) { } const join = `-- name: Join :one -SELECT users.id, users.name, users.age, posts.id, posts.user_id FROM posts -INNER JOIN users ON posts.user_id = users.id +SELECT + users.id, users.name, users.age, + posts.id, posts.user_id +FROM + posts + INNER JOIN users ON posts.user_id = users.id ` type JoinRow struct { @@ -57,7 +65,10 @@ func (q *Queries) Join(ctx context.Context) (JoinRow, error) { } const only = `-- name: Only :one -SELECT users.id, users.name, users.age FROM users +SELECT + users.id, users.name, users.age +FROM + users ` type OnlyRow struct { @@ -72,7 +83,10 @@ func (q *Queries) Only(ctx context.Context) (OnlyRow, error) { } const withAlias = `-- name: WithAlias :one -SELECT u.id, u.name, u.age FROM users u +SELECT + u.id, u.name, u.age +FROM + users u ` type WithAliasRow struct { @@ -87,7 +101,11 @@ func (q *Queries) WithAlias(ctx context.Context) (WithAliasRow, error) { } const withAsterisk = `-- name: WithAsterisk :one -SELECT users.id, users.name, users.age, id, name, age FROM users +SELECT + users.id, users.name, users.age, + id, name, age +FROM + users ` type WithAsteriskRow struct { @@ -112,8 +130,12 @@ func (q *Queries) WithAsterisk(ctx context.Context) (WithAsteriskRow, error) { } const withCrossSchema = `-- name: WithCrossSchema :many -SELECT users.id, users.name, users.age, bu.id, bu.name FROM users -INNER JOIN baz.users bu ON users.id = bu.id +SELECT + users.id, users.name, users.age, + bu.id, bu.name +FROM + users + INNER JOIN baz.users bu ON users.id = bu.id ` type WithCrossSchemaRow struct { @@ -151,7 +173,10 @@ func (q *Queries) WithCrossSchema(ctx context.Context) ([]WithCrossSchemaRow, er } const withSchema = `-- name: WithSchema :one -SELECT bu.id, bu.name FROM baz.users bu +SELECT + bu.id, bu.name +FROM + baz.users bu ` type WithSchemaRow struct { @@ -165,8 +190,35 @@ func (q *Queries) WithSchema(ctx context.Context) (WithSchemaRow, error) { return i, err } +const withSpaceBeforeParen = `-- name: WithSpaceBeforeParen :one +SELECT + users.id, users.name, users.age +FROM + users +` + +type WithSpaceBeforeParenRow struct { + User User +} + +func (q *Queries) WithSpaceBeforeParen(ctx context.Context) (WithSpaceBeforeParenRow, error) { + row := q.db.QueryRowContext(ctx, withSpaceBeforeParen) + var i WithSpaceBeforeParenRow + err := row.Scan(&i.User.ID, &i.User.Name, &i.User.Age) + return i, err +} + const withSubquery = `-- name: WithSubquery :many -SELECT users.id, users.name, users.age, (SELECT count(*) FROM users) AS total_count FROM users +SELECT + users.id, users.name, users.age, + ( + SELECT + count(*) + FROM + users + ) AS total_count +FROM + users ` type WithSubqueryRow struct { diff --git a/internal/endtoend/testdata/sqlc_embed/mysql/query.sql b/internal/endtoend/testdata/sqlc_embed/mysql/query.sql index 7822145508..122a165e73 100644 --- a/internal/endtoend/testdata/sqlc_embed/mysql/query.sql +++ b/internal/endtoend/testdata/sqlc_embed/mysql/query.sql @@ -1,25 +1,65 @@ -- name: Only :one -SELECT sqlc.embed(users) FROM users; +SELECT + sqlc.embed (users) +FROM + users; -- name: WithAlias :one -SELECT sqlc.embed(u) FROM users u; +SELECT + sqlc.embed (u) +FROM + users u; -- name: WithSubquery :many -SELECT sqlc.embed(users), (SELECT count(*) FROM users) AS total_count FROM users; +SELECT + sqlc.embed (users), + ( + SELECT + count(*) + FROM + users + ) AS total_count +FROM + users; -- name: WithAsterisk :one -SELECT sqlc.embed(users), * FROM users; +SELECT + sqlc.embed (users), + * +FROM + users; -- name: Duplicate :one -SELECT sqlc.embed(users), sqlc.embed(users) FROM users; +SELECT + sqlc.embed (users), + sqlc.embed (users) +FROM + users; -- name: Join :one -SELECT sqlc.embed(users), sqlc.embed(posts) FROM posts -INNER JOIN users ON posts.user_id = users.id; +SELECT + sqlc.embed (users), + sqlc.embed (posts) +FROM + posts + INNER JOIN users ON posts.user_id = users.id; -- name: WithSchema :one -SELECT sqlc.embed(bu) FROM baz.users bu; +SELECT + sqlc.embed (bu) +FROM + baz.users bu; -- name: WithCrossSchema :many -SELECT sqlc.embed(users), sqlc.embed(bu) FROM users -INNER JOIN baz.users bu ON users.id = bu.id; \ No newline at end of file +SELECT + sqlc.embed (users), + sqlc.embed (bu) +FROM + users + INNER JOIN baz.users bu ON users.id = bu.id; + +-- name: WithSpaceBeforeParen :one +SELECT + sqlc.embed (users) +FROM + users; diff --git a/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go b/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go index 643d5d41d6..2fab1e54f9 100644 --- a/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go +++ b/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go @@ -162,6 +162,21 @@ func (q *Queries) WithSchema(ctx context.Context) (WithSchemaRow, error) { return i, err } +const withSpaceBeforeParen = `-- name: WithSpaceBeforeParen :one +SELECT users.id, users.name, users.age FROM users +` + +type WithSpaceBeforeParenRow struct { + User User `db:"user" json:"user"` +} + +func (q *Queries) WithSpaceBeforeParen(ctx context.Context) (WithSpaceBeforeParenRow, error) { + row := q.db.QueryRow(ctx, withSpaceBeforeParen) + var i WithSpaceBeforeParenRow + err := row.Scan(&i.User.ID, &i.User.Name, &i.User.Age) + return i, err +} + const withSubquery = `-- name: WithSubquery :many SELECT users.id, users.name, users.age, (SELECT count(*) FROM users) AS total_count FROM users ` diff --git a/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/query.sql b/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/query.sql index 7822145508..22350e4637 100644 --- a/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/query.sql +++ b/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/query.sql @@ -22,4 +22,7 @@ SELECT sqlc.embed(bu) FROM baz.users bu; -- name: WithCrossSchema :many SELECT sqlc.embed(users), sqlc.embed(bu) FROM users -INNER JOIN baz.users bu ON users.id = bu.id; \ No newline at end of file +INNER JOIN baz.users bu ON users.id = bu.id; + +-- name: WithSpaceBeforeParen :one +SELECT sqlc.embed (users) FROM users; diff --git a/internal/endtoend/testdata/sqlc_embed/postgresql/stdlib/go/query.sql.go b/internal/endtoend/testdata/sqlc_embed/postgresql/stdlib/go/query.sql.go index 460f8fe490..482c765481 100644 --- a/internal/endtoend/testdata/sqlc_embed/postgresql/stdlib/go/query.sql.go +++ b/internal/endtoend/testdata/sqlc_embed/postgresql/stdlib/go/query.sql.go @@ -13,7 +13,11 @@ import ( ) const duplicate = `-- name: Duplicate :one -SELECT users.id, users.name, users.age, users.id, users.name, users.age FROM users +SELECT + users.id, users.name, users.age, + users.id, users.name, users.age +FROM + users ` type DuplicateRow struct { @@ -36,8 +40,12 @@ func (q *Queries) Duplicate(ctx context.Context) (DuplicateRow, error) { } const join = `-- name: Join :one -SELECT users.id, users.name, users.age, posts.id, posts.user_id, posts.likes FROM posts -INNER JOIN users ON posts.user_id = users.id +SELECT + users.id, users.name, users.age, + posts.id, posts.user_id, posts.likes +FROM + posts + INNER JOIN users ON posts.user_id = users.id ` type JoinRow struct { @@ -60,7 +68,10 @@ func (q *Queries) Join(ctx context.Context) (JoinRow, error) { } const only = `-- name: Only :one -SELECT users.id, users.name, users.age FROM users +SELECT + users.id, users.name, users.age +FROM + users ` type OnlyRow struct { @@ -75,7 +86,10 @@ func (q *Queries) Only(ctx context.Context) (OnlyRow, error) { } const withAlias = `-- name: WithAlias :one -SELECT u.id, u.name, u.age FROM users u +SELECT + u.id, u.name, u.age +FROM + users u ` type WithAliasRow struct { @@ -90,7 +104,11 @@ func (q *Queries) WithAlias(ctx context.Context) (WithAliasRow, error) { } const withAsterisk = `-- name: WithAsterisk :one -SELECT users.id, users.name, users.age, id, name, age FROM users +SELECT + users.id, users.name, users.age, + id, name, age +FROM + users ` type WithAsteriskRow struct { @@ -115,8 +133,12 @@ func (q *Queries) WithAsterisk(ctx context.Context) (WithAsteriskRow, error) { } const withCrossSchema = `-- name: WithCrossSchema :many -SELECT users.id, users.name, users.age, bu.id, bu.name FROM users -INNER JOIN baz.users bu ON users.id = bu.id +SELECT + users.id, users.name, users.age, + bu.id, bu.name +FROM + users + INNER JOIN baz.users bu ON users.id = bu.id ` type WithCrossSchemaRow struct { @@ -154,7 +176,10 @@ func (q *Queries) WithCrossSchema(ctx context.Context) ([]WithCrossSchemaRow, er } const withSchema = `-- name: WithSchema :one -SELECT bu.id, bu.name FROM baz.users bu +SELECT + bu.id, bu.name +FROM + baz.users bu ` type WithSchemaRow struct { @@ -168,8 +193,35 @@ func (q *Queries) WithSchema(ctx context.Context) (WithSchemaRow, error) { return i, err } +const withSpaceBeforeParen = `-- name: WithSpaceBeforeParen :one +SELECT + users.id, users.name, users.age +FROM + users +` + +type WithSpaceBeforeParenRow struct { + User User +} + +func (q *Queries) WithSpaceBeforeParen(ctx context.Context) (WithSpaceBeforeParenRow, error) { + row := q.db.QueryRowContext(ctx, withSpaceBeforeParen) + var i WithSpaceBeforeParenRow + err := row.Scan(&i.User.ID, &i.User.Name, &i.User.Age) + return i, err +} + const withSubquery = `-- name: WithSubquery :many -SELECT users.id, users.name, users.age, (SELECT count(*) FROM users) AS total_count FROM users +SELECT + users.id, users.name, users.age, + ( + SELECT + count(*) + FROM + users + ) AS total_count +FROM + users ` type WithSubqueryRow struct { diff --git a/internal/endtoend/testdata/sqlc_embed/postgresql/stdlib/query.sql b/internal/endtoend/testdata/sqlc_embed/postgresql/stdlib/query.sql index 7822145508..122a165e73 100644 --- a/internal/endtoend/testdata/sqlc_embed/postgresql/stdlib/query.sql +++ b/internal/endtoend/testdata/sqlc_embed/postgresql/stdlib/query.sql @@ -1,25 +1,65 @@ -- name: Only :one -SELECT sqlc.embed(users) FROM users; +SELECT + sqlc.embed (users) +FROM + users; -- name: WithAlias :one -SELECT sqlc.embed(u) FROM users u; +SELECT + sqlc.embed (u) +FROM + users u; -- name: WithSubquery :many -SELECT sqlc.embed(users), (SELECT count(*) FROM users) AS total_count FROM users; +SELECT + sqlc.embed (users), + ( + SELECT + count(*) + FROM + users + ) AS total_count +FROM + users; -- name: WithAsterisk :one -SELECT sqlc.embed(users), * FROM users; +SELECT + sqlc.embed (users), + * +FROM + users; -- name: Duplicate :one -SELECT sqlc.embed(users), sqlc.embed(users) FROM users; +SELECT + sqlc.embed (users), + sqlc.embed (users) +FROM + users; -- name: Join :one -SELECT sqlc.embed(users), sqlc.embed(posts) FROM posts -INNER JOIN users ON posts.user_id = users.id; +SELECT + sqlc.embed (users), + sqlc.embed (posts) +FROM + posts + INNER JOIN users ON posts.user_id = users.id; -- name: WithSchema :one -SELECT sqlc.embed(bu) FROM baz.users bu; +SELECT + sqlc.embed (bu) +FROM + baz.users bu; -- name: WithCrossSchema :many -SELECT sqlc.embed(users), sqlc.embed(bu) FROM users -INNER JOIN baz.users bu ON users.id = bu.id; \ No newline at end of file +SELECT + sqlc.embed (users), + sqlc.embed (bu) +FROM + users + INNER JOIN baz.users bu ON users.id = bu.id; + +-- name: WithSpaceBeforeParen :one +SELECT + sqlc.embed (users) +FROM + users; diff --git a/internal/endtoend/testdata/sqlc_embed/sqlite/go/query.sql.go b/internal/endtoend/testdata/sqlc_embed/sqlite/go/query.sql.go index aafc0897a8..73f95bac4c 100644 --- a/internal/endtoend/testdata/sqlc_embed/sqlite/go/query.sql.go +++ b/internal/endtoend/testdata/sqlc_embed/sqlite/go/query.sql.go @@ -11,7 +11,11 @@ import ( ) const duplicate = `-- name: Duplicate :one -SELECT users.id, users.name, users.age, users.id, users.name, users.age FROM users +SELECT + users.id, users.name, users.age, + users.id, users.name, users.age +FROM + users ` type DuplicateRow struct { @@ -34,8 +38,12 @@ func (q *Queries) Duplicate(ctx context.Context) (DuplicateRow, error) { } const join = `-- name: Join :one -SELECT u.id, u.name, u.age, p.id, p.user_id FROM posts AS p -INNER JOIN users AS u ON p.user_id = u.users.id +SELECT + u.id, u.name, u.age, + p.id, p.user_id +FROM + posts AS p + INNER JOIN users AS u ON p.user_id = u.users.id ` type JoinRow struct { @@ -57,7 +65,10 @@ func (q *Queries) Join(ctx context.Context) (JoinRow, error) { } const only = `-- name: Only :one -SELECT users.id, users.name, users.age FROM users +SELECT + users.id, users.name, users.age +FROM + users ` type OnlyRow struct { @@ -72,7 +83,10 @@ func (q *Queries) Only(ctx context.Context) (OnlyRow, error) { } const withAlias = `-- name: WithAlias :one -SELECT u.id, u.name, u.age FROM users AS u +SELECT + u.id, u.name, u.age +FROM + users AS u ` type WithAliasRow struct { @@ -87,7 +101,11 @@ func (q *Queries) WithAlias(ctx context.Context) (WithAliasRow, error) { } const withAsterisk = `-- name: WithAsterisk :one -SELECT users.id, users.name, users.age, id, name, age FROM users +SELECT + users.id, users.name, users.age, + id, name, age +FROM + users ` type WithAsteriskRow struct { @@ -112,8 +130,12 @@ func (q *Queries) WithAsterisk(ctx context.Context) (WithAsteriskRow, error) { } const withCrossSchema = `-- name: WithCrossSchema :many -SELECT u.id, u.name, u.age, bu.id, bu.name FROM users AS u -INNER JOIN baz.users bu ON u.id = bu.id +SELECT + u.id, u.name, u.age, + bu.id, bu.name +FROM + users AS u + INNER JOIN baz.users bu ON u.id = bu.id ` type WithCrossSchemaRow struct { @@ -151,7 +173,10 @@ func (q *Queries) WithCrossSchema(ctx context.Context) ([]WithCrossSchemaRow, er } const withSchema = `-- name: WithSchema :one -SELECT bu.id, bu.name FROM baz.users AS bu +SELECT + bu.id, bu.name +FROM + baz.users AS bu ` type WithSchemaRow struct { @@ -165,8 +190,35 @@ func (q *Queries) WithSchema(ctx context.Context) (WithSchemaRow, error) { return i, err } +const withSpaceBeforeParen = `-- name: WithSpaceBeforeParen :one +SELECT + users.id, users.name, users.age +FROM + users +` + +type WithSpaceBeforeParenRow struct { + User User +} + +func (q *Queries) WithSpaceBeforeParen(ctx context.Context) (WithSpaceBeforeParenRow, error) { + row := q.db.QueryRowContext(ctx, withSpaceBeforeParen) + var i WithSpaceBeforeParenRow + err := row.Scan(&i.User.ID, &i.User.Name, &i.User.Age) + return i, err +} + const withSubquery = `-- name: WithSubquery :many -SELECT users.id, users.name, users.age, (SELECT count(*) FROM users) AS total_count FROM users +SELECT + users.id, users.name, users.age, + ( + SELECT + count(*) + FROM + users + ) AS total_count +FROM + users ` type WithSubqueryRow struct { diff --git a/internal/endtoend/testdata/sqlc_embed/sqlite/query.sql b/internal/endtoend/testdata/sqlc_embed/sqlite/query.sql index 4b999b5629..64c27f0bd9 100644 --- a/internal/endtoend/testdata/sqlc_embed/sqlite/query.sql +++ b/internal/endtoend/testdata/sqlc_embed/sqlite/query.sql @@ -1,25 +1,65 @@ -- name: Only :one -SELECT sqlc.embed(users) FROM users; +SELECT + sqlc.embed (users) +FROM + users; -- name: WithAlias :one -SELECT sqlc.embed(u) FROM users AS u; +SELECT + sqlc.embed (u) +FROM + users AS u; -- name: WithSubquery :many -SELECT sqlc.embed(users), (SELECT count(*) FROM users) AS total_count FROM users; +SELECT + sqlc.embed (users), + ( + SELECT + count(*) + FROM + users + ) AS total_count +FROM + users; -- name: WithAsterisk :one -SELECT sqlc.embed(users), * FROM users; +SELECT + sqlc.embed (users), + * +FROM + users; -- name: Duplicate :one -SELECT sqlc.embed(users), sqlc.embed(users) FROM users; +SELECT + sqlc.embed (users), + sqlc.embed (users) +FROM + users; -- name: Join :one -SELECT sqlc.embed(u), sqlc.embed(p) FROM posts AS p -INNER JOIN users AS u ON p.user_id = u.users.id; +SELECT + sqlc.embed (u), + sqlc.embed (p) +FROM + posts AS p + INNER JOIN users AS u ON p.user_id = u.users.id; -- name: WithSchema :one -SELECT sqlc.embed(bu) FROM baz.users AS bu; +SELECT + sqlc.embed (bu) +FROM + baz.users AS bu; -- name: WithCrossSchema :many -SELECT sqlc.embed(u), sqlc.embed(bu) FROM users AS u -INNER JOIN baz.users bu ON u.id = bu.id; +SELECT + sqlc.embed (u), + sqlc.embed (bu) +FROM + users AS u + INNER JOIN baz.users bu ON u.id = bu.id; + +-- name: WithSpaceBeforeParen :one +SELECT + sqlc.embed (users) +FROM + users; diff --git a/internal/sql/rewrite/embeds.go b/internal/sql/rewrite/embeds.go index 596c03be89..b60e000470 100644 --- a/internal/sql/rewrite/embeds.go +++ b/internal/sql/rewrite/embeds.go @@ -2,6 +2,7 @@ package rewrite import ( "fmt" + "strings" "github.com/sqlc-dev/sqlc/internal/sql/ast" "github.com/sqlc-dev/sqlc/internal/sql/astutils" @@ -9,14 +10,15 @@ import ( // Embed is an instance of `sqlc.embed(param)` type Embed struct { - Table *ast.TableName - param string - Node *ast.ColumnRef + Table *ast.TableName + param string + Node *ast.ColumnRef + spaces string } // Orig string to replace func (e Embed) Orig() string { - return fmt.Sprintf("sqlc.embed(%s)", e.param) + return fmt.Sprintf("sqlc.embed%s(%s)", e.spaces, e.param) } // EmbedSet is a set of Embed instances @@ -51,6 +53,15 @@ func Embeds(raw *ast.RawStmt) (*ast.RawStmt, EmbedSet) { param, _ := flatten(fun.Args) + // Calculate spaces between function name and opening parenthesis + // to handle formatters that insert spaces (e.g., pgFormatter) + funcName := "sqlc.embed" + spaces := "" + if fun.Args != nil && len(fun.Args.Items) > 0 { + leftParen := fun.Args.Items[0].Pos() - 1 + spaces = strings.Repeat(" ", leftParen-fun.Location-len(funcName)) + } + node := &ast.ColumnRef{ Fields: &ast.List{ Items: []ast.Node{ @@ -61,9 +72,10 @@ func Embeds(raw *ast.RawStmt) (*ast.RawStmt, EmbedSet) { } embeds = append(embeds, &Embed{ - Table: &ast.TableName{Name: param}, - param: param, - Node: node, + Table: &ast.TableName{Name: param}, + param: param, + Node: node, + spaces: spaces, }) cr.Replace(node) From 0be2ea3c5ffb0e89902fb62feb23f8b10fc874d0 Mon Sep 17 00:00:00 2001 From: Tim Millard Date: Wed, 1 Oct 2025 17:03:56 +1000 Subject: [PATCH 3/3] fix for nick --- .../sqlc_embed/postgresql/pgx/go/query.sql.go | 59 ++++--------------- 1 file changed, 11 insertions(+), 48 deletions(-) diff --git a/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go b/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go index c84a283d59..2fab1e54f9 100644 --- a/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go +++ b/internal/endtoend/testdata/sqlc_embed/postgresql/pgx/go/query.sql.go @@ -11,11 +11,7 @@ import ( ) const duplicate = `-- name: Duplicate :one -SELECT - users.id, users.name, users.age, - users.id, users.name, users.age -FROM - users +SELECT users.id, users.name, users.age, users.id, users.name, users.age FROM users ` type DuplicateRow struct { @@ -38,12 +34,8 @@ func (q *Queries) Duplicate(ctx context.Context) (DuplicateRow, error) { } const join = `-- name: Join :one -SELECT - users.id, users.name, users.age, - posts.id, posts.user_id -FROM - posts - INNER JOIN users ON posts.user_id = users.id +SELECT users.id, users.name, users.age, posts.id, posts.user_id FROM posts +INNER JOIN users ON posts.user_id = users.id ` type JoinRow struct { @@ -65,10 +57,7 @@ func (q *Queries) Join(ctx context.Context) (JoinRow, error) { } const only = `-- name: Only :one -SELECT - users.id, users.name, users.age -FROM - users +SELECT users.id, users.name, users.age FROM users ` type OnlyRow struct { @@ -83,10 +72,7 @@ func (q *Queries) Only(ctx context.Context) (OnlyRow, error) { } const withAlias = `-- name: WithAlias :one -SELECT - u.id, u.name, u.age -FROM - users u +SELECT u.id, u.name, u.age FROM users u ` type WithAliasRow struct { @@ -101,11 +87,7 @@ func (q *Queries) WithAlias(ctx context.Context) (WithAliasRow, error) { } const withAsterisk = `-- name: WithAsterisk :one -SELECT - users.id, users.name, users.age, - id, name, age -FROM - users +SELECT users.id, users.name, users.age, id, name, age FROM users ` type WithAsteriskRow struct { @@ -130,12 +112,8 @@ func (q *Queries) WithAsterisk(ctx context.Context) (WithAsteriskRow, error) { } const withCrossSchema = `-- name: WithCrossSchema :many -SELECT - users.id, users.name, users.age, - bu.id, bu.name -FROM - users - INNER JOIN baz.users bu ON users.id = bu.id +SELECT users.id, users.name, users.age, bu.id, bu.name FROM users +INNER JOIN baz.users bu ON users.id = bu.id ` type WithCrossSchemaRow struct { @@ -170,10 +148,7 @@ func (q *Queries) WithCrossSchema(ctx context.Context) ([]WithCrossSchemaRow, er } const withSchema = `-- name: WithSchema :one -SELECT - bu.id, bu.name -FROM - baz.users bu +SELECT bu.id, bu.name FROM baz.users bu ` type WithSchemaRow struct { @@ -188,10 +163,7 @@ func (q *Queries) WithSchema(ctx context.Context) (WithSchemaRow, error) { } const withSpaceBeforeParen = `-- name: WithSpaceBeforeParen :one -SELECT - users.id, users.name, users.age -FROM - users +SELECT users.id, users.name, users.age FROM users ` type WithSpaceBeforeParenRow struct { @@ -206,16 +178,7 @@ func (q *Queries) WithSpaceBeforeParen(ctx context.Context) (WithSpaceBeforePare } const withSubquery = `-- name: WithSubquery :many -SELECT - users.id, users.name, users.age, - ( - SELECT - count(*) - FROM - users - ) AS total_count -FROM - users +SELECT users.id, users.name, users.age, (SELECT count(*) FROM users) AS total_count FROM users ` type WithSubqueryRow struct {