Remove const insertSelectPlaceholder and associated dead code (#2151)
`insertSelectPlaceholder` is an unexported const set at true. No code changes this nor can any build environment change it. Therefore we should remove it and the associated dead code. Close #2146 Signed-off-by: Andrew Thornton <art27@cantab.net> Reviewed-on: https://gitea.com/xorm/xorm/pulls/2151 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: Andrew Thornton <art27@cantab.net> Co-committed-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
26d291bbc3
commit
60540cbabe
|
@ -5,78 +5,10 @@
|
||||||
package statements
|
package statements
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"reflect"
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"xorm.io/builder"
|
"xorm.io/builder"
|
||||||
"xorm.io/xorm/schemas"
|
"xorm.io/xorm/schemas"
|
||||||
)
|
)
|
||||||
|
|
||||||
func quoteNeeded(a interface{}) bool {
|
|
||||||
switch a.(type) {
|
|
||||||
case int, int8, int16, int32, int64:
|
|
||||||
return false
|
|
||||||
case uint, uint8, uint16, uint32, uint64:
|
|
||||||
return false
|
|
||||||
case float32, float64:
|
|
||||||
return false
|
|
||||||
case bool:
|
|
||||||
return false
|
|
||||||
case string:
|
|
||||||
return true
|
|
||||||
case time.Time, *time.Time:
|
|
||||||
return true
|
|
||||||
case builder.Builder, *builder.Builder:
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
t := reflect.TypeOf(a)
|
|
||||||
switch t.Kind() {
|
|
||||||
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
|
|
||||||
return false
|
|
||||||
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
|
|
||||||
return false
|
|
||||||
case reflect.Float32, reflect.Float64:
|
|
||||||
return false
|
|
||||||
case reflect.Bool:
|
|
||||||
return false
|
|
||||||
case reflect.String:
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func convertStringSingleQuote(arg string) string {
|
|
||||||
return "'" + strings.Replace(arg, "'", "''", -1) + "'"
|
|
||||||
}
|
|
||||||
|
|
||||||
func convertString(arg string) string {
|
|
||||||
var buf strings.Builder
|
|
||||||
buf.WriteRune('\'')
|
|
||||||
for _, c := range arg {
|
|
||||||
if c == '\\' || c == '\'' {
|
|
||||||
buf.WriteRune('\\')
|
|
||||||
}
|
|
||||||
buf.WriteRune(c)
|
|
||||||
}
|
|
||||||
buf.WriteRune('\'')
|
|
||||||
return buf.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
func convertArg(arg interface{}, convertFunc func(string) string) string {
|
|
||||||
if quoteNeeded(arg) {
|
|
||||||
argv := fmt.Sprintf("%v", arg)
|
|
||||||
return convertFunc(argv)
|
|
||||||
}
|
|
||||||
|
|
||||||
return fmt.Sprintf("%v", arg)
|
|
||||||
}
|
|
||||||
|
|
||||||
const insertSelectPlaceHolder = true
|
|
||||||
|
|
||||||
// WriteArg writes an arg
|
// WriteArg writes an arg
|
||||||
func (statement *Statement) WriteArg(w *builder.BytesWriter, arg interface{}) error {
|
func (statement *Statement) WriteArg(w *builder.BytesWriter, arg interface{}) error {
|
||||||
switch argv := arg.(type) {
|
switch argv := arg.(type) {
|
||||||
|
@ -91,7 +23,6 @@ func (statement *Statement) WriteArg(w *builder.BytesWriter, arg interface{}) er
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
if insertSelectPlaceHolder {
|
|
||||||
if err := w.WriteByte('?'); err != nil {
|
if err := w.WriteByte('?'); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -104,15 +35,6 @@ func (statement *Statement) WriteArg(w *builder.BytesWriter, arg interface{}) er
|
||||||
} else {
|
} else {
|
||||||
w.Append(arg)
|
w.Append(arg)
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
var convertFunc = convertStringSingleQuote
|
|
||||||
if statement.dialect.URI().DBType == schemas.MYSQL {
|
|
||||||
convertFunc = convertString
|
|
||||||
}
|
|
||||||
if _, err := w.WriteString(convertArg(arg, convertFunc)); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue