From 3f75ffabd83eabdec856222106937f33d60118a3 Mon Sep 17 00:00:00 2001 From: Ariel Mashraki Date: Mon, 11 Jan 2021 16:57:29 +0200 Subject: [PATCH] dialect/sql: add expr querier --- dialect/sql/builder.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dialect/sql/builder.go b/dialect/sql/builder.go index b5c065a97..115c35cc7 100644 --- a/dialect/sql/builder.go +++ b/dialect/sql/builder.go @@ -1952,13 +1952,23 @@ func (w *Wrapper) SetTotal(total int) { } } -// Raw returns a raw sql Querier that is placed as-is in the query. +// Raw returns a raw SQL query that is placed as-is in the query. func Raw(s string) Querier { return &raw{s} } type raw struct{ s string } func (r *raw) Query() (string, []interface{}) { return r.s, nil } +// Expr returns an SQL expression that implements the Querier interface. +func Expr(exr string, args ...interface{}) Querier { return &expr{s: exr, args: args} } + +type expr struct { + s string + args []interface{} +} + +func (e *expr) Query() (string, []interface{}) { return e.s, e.args } + // Queries are list of queries join with space between them. type Queries []Querier