From 4e927f31146b465edfb1122dcd9bdbc450e2c59f Mon Sep 17 00:00:00 2001 From: Thomas Rabaix Date: Thu, 4 Dec 2014 23:21:47 +0100 Subject: [PATCH] add support for slice to the Expr --- expr.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/expr.go b/expr.go index 950bc33..520e665 100644 --- a/expr.go +++ b/expr.go @@ -20,6 +20,27 @@ func Expr(sql string, args ...interface{}) expr { return expr{sql: sql, args: args} } +func ExprSlice(sql string, size int, args ...interface{}) expr { + if len(args) != 1 { + return expr{sql: sql, args: args} + } + + b := make([]interface{}, size) + + switch t := args[0].(type) { + case []string: + for i := range t { + b[i] = t[i] + } + case []int: + for i := range t { + b[i] = t[i] + } + } + + return expr{sql: sql, args: b} +} + func (e expr) ToSql() (sql string, args []interface{}, err error) { return e.sql, e.args, nil }