Browse Source

Support pointers to type aliases

xormplus 9 years ago
parent
commit
4ac392a842
1 changed files with 2 additions and 28 deletions
  1. 2 28
      type.go

+ 2 - 28
type.go

@@ -237,6 +237,7 @@ var (
 	PtrTimeType = reflect.PtrTo(TimeType)
 	PtrTimeType = reflect.PtrTo(TimeType)
 )
 )
 
 
+// Type2SQLType generate SQLType acorrding Go's type
 func Type2SQLType(t reflect.Type) (st SQLType) {
 func Type2SQLType(t reflect.Type) (st SQLType) {
 	switch k := t.Kind(); k {
 	switch k := t.Kind(); k {
 	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32:
 	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32:
@@ -267,40 +268,13 @@ func Type2SQLType(t reflect.Type) (st SQLType) {
 			st = SQLType{Text, 0, 0}
 			st = SQLType{Text, 0, 0}
 		}
 		}
 	case reflect.Ptr:
 	case reflect.Ptr:
-		st, _ = ptrType2SQLType(t)
+		st = Type2SQLType(t.Elem())
 	default:
 	default:
 		st = SQLType{Text, 0, 0}
 		st = SQLType{Text, 0, 0}
 	}
 	}
 	return
 	return
 }
 }
 
 
-func ptrType2SQLType(t reflect.Type) (st SQLType, has bool) {
-	has = true
-
-	switch t {
-	case reflect.TypeOf(&c_EMPTY_STRING):
-		st = SQLType{Varchar, 255, 0}
-		return
-	case reflect.TypeOf(&c_BOOL_DEFAULT):
-		st = SQLType{Bool, 0, 0}
-	case reflect.TypeOf(&c_COMPLEX64_DEFAULT), reflect.TypeOf(&c_COMPLEX128_DEFAULT):
-		st = SQLType{Varchar, 64, 0}
-	case reflect.TypeOf(&c_FLOAT32_DEFAULT):
-		st = SQLType{Float, 0, 0}
-	case reflect.TypeOf(&c_FLOAT64_DEFAULT):
-		st = SQLType{Double, 0, 0}
-	case reflect.TypeOf(&c_INT64_DEFAULT), reflect.TypeOf(&c_UINT64_DEFAULT):
-		st = SQLType{BigInt, 0, 0}
-	case reflect.TypeOf(&c_TIME_DEFAULT):
-		st = SQLType{DateTime, 0, 0}
-	case reflect.TypeOf(&c_INT_DEFAULT), reflect.TypeOf(&c_INT32_DEFAULT), reflect.TypeOf(&c_INT8_DEFAULT), reflect.TypeOf(&c_INT16_DEFAULT), reflect.TypeOf(&c_UINT_DEFAULT), reflect.TypeOf(&c_UINT32_DEFAULT), reflect.TypeOf(&c_UINT8_DEFAULT), reflect.TypeOf(&c_UINT16_DEFAULT):
-		st = SQLType{Int, 0, 0}
-	default:
-		has = false
-	}
-	return
-}
-
 // default sql type change to go types
 // default sql type change to go types
 func SQLType2Type(st SQLType) reflect.Type {
 func SQLType2Type(st SQLType) reflect.Type {
 	name := strings.ToUpper(st.Name)
 	name := strings.ToUpper(st.Name)