-
-
Couldn't load subscription status.
- Fork 7
Description
I have found the following issues around aliases.
Example 1
Query:
rel.Select("c.id", "c.name").From("contacts c")
Expected:
SELECT "c"."id","c"."name" FROM "contacts" "c";
Actual:
SELECT "c"."id","c"."name" FROM "contacts c";
Example 2
Query:
rel.Select("c.id", "c.name").From("contacts as c")
Expected:
SELECT "c"."id","c"."name" FROM "contacts" as "c";
Actual:
SELECT "contacts" AS "c","contacts" AS "c" FROM "contacts" AS "c";
Playground
Please find more advanced test query with aliases using the playground: https://go.dev/play/p/u9LoFRsSh2h
package main
import (
"fmt"
"github.com/go-rel/rel"
"github.com/go-rel/rel/where"
"github.com/go-rel/sql/builder"
)
func main() {
var query = rel.
Select("a.id", "a.name", "^COUNT(b.id) as books_count", "^AVG(b.score) as books_score").
From("authors a").
JoinWith("LEFT JOIN", "books b", "b.author_id", "a.id").
Where(where.Or(where.Nil("b.archived"), where.Eq("b.archived", false))).
Group("a.id", "a.name").
Sort("a.name")
var sql, params = queryBuilder.Build(query)
fmt.Println("Query: ", sql, params)
}
var queryBuilder = builder.Query{
BufferFactory: builder.BufferFactory{ArgumentPlaceholder: "?", Quoter: builder.Quote{IDPrefix: "`", IDSuffix: "`", IDSuffixEscapeChar: "`", ValueQuote: "'", ValueQuoteEscapeChar: "'"}},
Filter: builder.Filter{},
}Metadata
Metadata
Assignees
Labels
No labels