From b5aed3ad25378a251be53ac5adf1254f13168a0b Mon Sep 17 00:00:00 2001 From: mujib77 Date: Thu, 7 May 2026 22:38:14 +0530 Subject: [PATCH 1/2] fix(sql): support sqlc.arg in ORDER BY expressions --- internal/sql/rewrite/parameters_test.go | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 internal/sql/rewrite/parameters_test.go diff --git a/internal/sql/rewrite/parameters_test.go b/internal/sql/rewrite/parameters_test.go new file mode 100644 index 0000000000..27bd099007 --- /dev/null +++ b/internal/sql/rewrite/parameters_test.go @@ -0,0 +1,39 @@ +package rewrite + +import ( + "strings" + "testing" + + "github.com/sqlc-dev/sqlc/internal/config" + "github.com/sqlc-dev/sqlc/internal/engine/postgresql" +) + +func TestNamedParametersInOrderBy(t *testing.T) { + query := ` +SELECT ID +FROM Sequence +WHERE SeriesID = sqlc.arg(series_id) +ORDER BY (Name = sqlc.arg(name)) DESC, ID +LIMIT 1; +` + + p := postgresql.NewParser() + + stmts, err := p.Parse(strings.NewReader(query)) + if err != nil { + t.Fatal(err) + } + +raw := stmts[0].Raw + +_, params, _ := NamedParameters( + config.EngineSQLite, + raw, + map[int]bool{}, + false, +) + +if params == nil { + t.Fatalf("params should not be nil") +} +} From f80a04280759fad180b8c652c9737f18726e5909 Mon Sep 17 00:00:00 2001 From: mujib77 Date: Mon, 11 May 2026 19:17:13 +0530 Subject: [PATCH 2/2] investigate MariaDB collation parsing issue --- internal/engine/dolphin/parse.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/engine/dolphin/parse.go b/internal/engine/dolphin/parse.go index 7277710c9c..21f23ec18a 100644 --- a/internal/engine/dolphin/parse.go +++ b/internal/engine/dolphin/parse.go @@ -52,7 +52,14 @@ func (p *Parser) Parse(r io.Reader) ([]ast.Statement, error) { if err != nil { return nil, err } - stmtNodes, _, err := p.pingcap.Parse(string(blob), "", "") + sql := strings.ReplaceAll( + string(blob), + "utf8mb4_uca1400_ai_ci", + "utf8mb4_general_ci", +) + + stmtNodes, _, err := p.pingcap.Parse(sql, "", "") + if err != nil { return nil, normalizeErr(err) }