From f0d8606d44833d0109b99fa58930c1392916a077 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 8 Mar 2020 19:52:10 +0800 Subject: [PATCH] improve code --- internal/statements/query.go | 2 +- internal/statements/statement.go | 10 +++++++++- session_raw.go | 3 +-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/internal/statements/query.go b/internal/statements/query.go index 2cb8458a..2531c34c 100644 --- a/internal/statements/query.go +++ b/internal/statements/query.go @@ -16,7 +16,7 @@ import ( func (statement *Statement) GenQuerySQL(sqlOrArgs ...interface{}) (string, []interface{}, error) { if len(sqlOrArgs) > 0 { - return ConvertSQLOrArgs(sqlOrArgs...) + return statement.ConvertSQLOrArgs(sqlOrArgs...) } if statement.RawSQL != "" { diff --git a/internal/statements/statement.go b/internal/statements/statement.go index a9bd6ade..bb863623 100644 --- a/internal/statements/statement.go +++ b/internal/statements/statement.go @@ -959,7 +959,15 @@ func (statement *Statement) quoteColumnStr(columnStr string) string { return statement.dialect.Quoter().Join(columns, ",") } -func ConvertSQLOrArgs(sqlOrArgs ...interface{}) (string, []interface{}, error) { +func (statement *Statement) ConvertSQLOrArgs(sqlOrArgs ...interface{}) (string, []interface{}, error) { + sql, args, err := convertSQLOrArgs(sqlOrArgs...) + if err != nil { + return "", nil, err + } + return statement.ReplaceQuote(sql), args, nil +} + +func convertSQLOrArgs(sqlOrArgs ...interface{}) (string, []interface{}, error) { switch sqlOrArgs[0].(type) { case string: return sqlOrArgs[0].(string), sqlOrArgs[1:], nil diff --git a/session_raw.go b/session_raw.go index 0cea60b7..4cfe297a 100644 --- a/session_raw.go +++ b/session_raw.go @@ -9,7 +9,6 @@ import ( "reflect" "xorm.io/xorm/core" - "xorm.io/xorm/internal/statements" ) func (session *Session) queryPreprocess(sqlStr *string, paramStr ...interface{}) { @@ -172,7 +171,7 @@ func (session *Session) Exec(sqlOrArgs ...interface{}) (sql.Result, error) { return nil, ErrUnSupportedType } - sqlStr, args, err := statements.ConvertSQLOrArgs(sqlOrArgs...) + sqlStr, args, err := session.statement.ConvertSQLOrArgs(sqlOrArgs...) if err != nil { return nil, err }