aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/go-xorm/xorm/helpers.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-xorm/xorm/helpers.go')
-rw-r--r--vendor/github.com/go-xorm/xorm/helpers.go162
1 files changed, 0 insertions, 162 deletions
diff --git a/vendor/github.com/go-xorm/xorm/helpers.go b/vendor/github.com/go-xorm/xorm/helpers.go
index f39ed472..f1705782 100644
--- a/vendor/github.com/go-xorm/xorm/helpers.go
+++ b/vendor/github.com/go-xorm/xorm/helpers.go
@@ -11,7 +11,6 @@ import (
"sort"
"strconv"
"strings"
- "time"
"github.com/go-xorm/core"
)
@@ -293,19 +292,6 @@ func structName(v reflect.Type) string {
return v.Name()
}
-func col2NewCols(columns ...string) []string {
- newColumns := make([]string, 0, len(columns))
- for _, col := range columns {
- col = strings.Replace(col, "`", "", -1)
- col = strings.Replace(col, `"`, "", -1)
- ccols := strings.Split(col, ",")
- for _, c := range ccols {
- newColumns = append(newColumns, strings.TrimSpace(c))
- }
- }
- return newColumns
-}
-
func sliceEq(left, right []string) bool {
if len(left) != len(right) {
return false
@@ -320,154 +306,6 @@ func sliceEq(left, right []string) bool {
return true
}
-func setColumnInt(bean interface{}, col *core.Column, t int64) {
- v, err := col.ValueOf(bean)
- if err != nil {
- return
- }
- if v.CanSet() {
- switch v.Type().Kind() {
- case reflect.Int, reflect.Int64, reflect.Int32:
- v.SetInt(t)
- case reflect.Uint, reflect.Uint64, reflect.Uint32:
- v.SetUint(uint64(t))
- }
- }
-}
-
-func setColumnTime(bean interface{}, col *core.Column, t time.Time) {
- v, err := col.ValueOf(bean)
- if err != nil {
- return
- }
- if v.CanSet() {
- switch v.Type().Kind() {
- case reflect.Struct:
- v.Set(reflect.ValueOf(t).Convert(v.Type()))
- case reflect.Int, reflect.Int64, reflect.Int32:
- v.SetInt(t.Unix())
- case reflect.Uint, reflect.Uint64, reflect.Uint32:
- v.SetUint(uint64(t.Unix()))
- }
- }
-}
-
-func genCols(table *core.Table, session *Session, bean interface{}, useCol bool, includeQuote bool) ([]string, []interface{}, error) {
- colNames := make([]string, 0, len(table.ColumnsSeq()))
- args := make([]interface{}, 0, len(table.ColumnsSeq()))
-
- for _, col := range table.Columns() {
- if useCol && !col.IsVersion && !col.IsCreated && !col.IsUpdated {
- if _, ok := getFlagForColumn(session.statement.columnMap, col); !ok {
- continue
- }
- }
- if col.MapType == core.ONLYFROMDB {
- continue
- }
-
- fieldValuePtr, err := col.ValueOf(bean)
- if err != nil {
- return nil, nil, err
- }
- fieldValue := *fieldValuePtr
-
- if col.IsAutoIncrement {
- switch fieldValue.Type().Kind() {
- case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int, reflect.Int64:
- if fieldValue.Int() == 0 {
- continue
- }
- case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint, reflect.Uint64:
- if fieldValue.Uint() == 0 {
- continue
- }
- case reflect.String:
- if len(fieldValue.String()) == 0 {
- continue
- }
- case reflect.Ptr:
- if fieldValue.Pointer() == 0 {
- continue
- }
- }
- }
-
- if col.IsDeleted {
- continue
- }
-
- if session.statement.ColumnStr != "" {
- if _, ok := getFlagForColumn(session.statement.columnMap, col); !ok {
- continue
- } else if _, ok := session.statement.incrColumns[col.Name]; ok {
- continue
- } else if _, ok := session.statement.decrColumns[col.Name]; ok {
- continue
- }
- }
- if session.statement.OmitStr != "" {
- if _, ok := getFlagForColumn(session.statement.columnMap, col); ok {
- continue
- }
- }
-
- // !evalphobia! set fieldValue as nil when column is nullable and zero-value
- if _, ok := getFlagForColumn(session.statement.nullableMap, col); ok {
- if col.Nullable && isZero(fieldValue.Interface()) {
- var nilValue *int
- fieldValue = reflect.ValueOf(nilValue)
- }
- }
-
- if (col.IsCreated || col.IsUpdated) && session.statement.UseAutoTime /*&& isZero(fieldValue.Interface())*/ {
- // if time is non-empty, then set to auto time
- val, t := session.engine.nowTime(col)
- args = append(args, val)
-
- var colName = col.Name
- session.afterClosures = append(session.afterClosures, func(bean interface{}) {
- col := table.GetColumn(colName)
- setColumnTime(bean, col, t)
- })
- } else if col.IsVersion && session.statement.checkVersion {
- args = append(args, 1)
- } else {
- arg, err := session.value2Interface(col, fieldValue)
- if err != nil {
- return colNames, args, err
- }
- args = append(args, arg)
- }
-
- if includeQuote {
- colNames = append(colNames, session.engine.Quote(col.Name)+" = ?")
- } else {
- colNames = append(colNames, col.Name)
- }
- }
- return colNames, args, nil
-}
-
func indexName(tableName, idxName string) string {
return fmt.Sprintf("IDX_%v_%v", tableName, idxName)
}
-
-func getFlagForColumn(m map[string]bool, col *core.Column) (val bool, has bool) {
- if len(m) == 0 {
- return false, false
- }
-
- n := len(col.Name)
-
- for mk := range m {
- if len(mk) != n {
- continue
- }
- if strings.EqualFold(mk, col.Name) {
- return m[mk], true
- }
- }
-
- return false, false
-}