jerry:add postgre data_type array (#1589)

fix err,add postgres column ARRAY

fix err,add postgres column ARRAY

Co-authored-by: Jerry <85411418@qq.com>
Reviewed-on: https://gitea.com/xorm/xorm/pulls/1589
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
Jerry 2020-03-10 06:11:42 +00:00 committed by Lunny Xiao
parent 9d4594632f
commit 2f95c750c3
2 changed files with 11 additions and 0 deletions

View File

@ -1099,6 +1099,8 @@ WHERE c.relkind = 'r'::char AND c.relname = $1%s AND f.attnum > 0 ORDER BY f.att
col.SQLType = schemas.SQLType{Name: schemas.Binary, DefaultLength: 0, DefaultLength2: 0} col.SQLType = schemas.SQLType{Name: schemas.Binary, DefaultLength: 0, DefaultLength2: 0}
case "oid": case "oid":
col.SQLType = schemas.SQLType{Name: schemas.BigInt, DefaultLength: 0, DefaultLength2: 0} col.SQLType = schemas.SQLType{Name: schemas.BigInt, DefaultLength: 0, DefaultLength2: 0}
case "array":
col.SQLType = schemas.SQLType{Name: schemas.Array, DefaultLength: 0, DefaultLength2: 0}
default: default:
startIdx := strings.Index(strings.ToLower(dataType), "string(") startIdx := strings.Index(strings.ToLower(dataType), "string(")
if startIdx != -1 && strings.HasSuffix(dataType, ")") { if startIdx != -1 && strings.HasSuffix(dataType, ")") {

View File

@ -34,6 +34,7 @@ const (
BLOB_TYPE BLOB_TYPE
TIME_TYPE TIME_TYPE
NUMERIC_TYPE NUMERIC_TYPE
ARRAY_TYPE
) )
func (s *SQLType) IsType(st int) bool { func (s *SQLType) IsType(st int) bool {
@ -59,6 +60,10 @@ func (s *SQLType) IsNumeric() bool {
return s.IsType(NUMERIC_TYPE) return s.IsType(NUMERIC_TYPE)
} }
func (s *SQLType) IsArray() bool {
return s.IsType(ARRAY_TYPE)
}
func (s *SQLType) IsJson() bool { func (s *SQLType) IsJson() bool {
return s.Name == Json || s.Name == Jsonb return s.Name == Json || s.Name == Jsonb
} }
@ -123,6 +128,8 @@ var (
Json = "JSON" Json = "JSON"
Jsonb = "JSONB" Jsonb = "JSONB"
Array = "ARRAY"
SqlTypes = map[string]int{ SqlTypes = map[string]int{
Bit: NUMERIC_TYPE, Bit: NUMERIC_TYPE,
TinyInt: NUMERIC_TYPE, TinyInt: NUMERIC_TYPE,
@ -180,6 +187,8 @@ var (
Serial: NUMERIC_TYPE, Serial: NUMERIC_TYPE,
BigSerial: NUMERIC_TYPE, BigSerial: NUMERIC_TYPE,
Array: ARRAY_TYPE,
} }
intTypes = sort.StringSlice{"*int", "*int16", "*int32", "*int8"} intTypes = sort.StringSlice{"*int", "*int16", "*int32", "*int8"}