summaryrefslogtreecommitdiffstats
path: root/vendor/xorm.io/xorm/schemas
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/xorm.io/xorm/schemas')
-rw-r--r--vendor/xorm.io/xorm/schemas/column.go1
-rw-r--r--vendor/xorm.io/xorm/schemas/index.go6
-rw-r--r--vendor/xorm.io/xorm/schemas/pk.go5
-rw-r--r--vendor/xorm.io/xorm/schemas/quote.go8
-rw-r--r--vendor/xorm.io/xorm/schemas/table.go5
-rw-r--r--vendor/xorm.io/xorm/schemas/type.go142
6 files changed, 103 insertions, 64 deletions
diff --git a/vendor/xorm.io/xorm/schemas/column.go b/vendor/xorm.io/xorm/schemas/column.go
index 4f32afab07..5808b84d2b 100644
--- a/vendor/xorm.io/xorm/schemas/column.go
+++ b/vendor/xorm.io/xorm/schemas/column.go
@@ -13,6 +13,7 @@ import (
"time"
)
+// enumerates all database mapping way
const (
TWOSIDES = iota + 1
ONLYTODB
diff --git a/vendor/xorm.io/xorm/schemas/index.go b/vendor/xorm.io/xorm/schemas/index.go
index 9541250f55..8f31af52e1 100644
--- a/vendor/xorm.io/xorm/schemas/index.go
+++ b/vendor/xorm.io/xorm/schemas/index.go
@@ -28,6 +28,7 @@ func NewIndex(name string, indexType int) *Index {
return &Index{true, name, indexType, make([]string, 0)}
}
+// XName returns the special index name for the table
func (index *Index) XName(tableName string) string {
if !strings.HasPrefix(index.Name, "UQE_") &&
!strings.HasPrefix(index.Name, "IDX_") {
@@ -43,11 +44,10 @@ func (index *Index) XName(tableName string) string {
// AddColumn add columns which will be composite index
func (index *Index) AddColumn(cols ...string) {
- for _, col := range cols {
- index.Cols = append(index.Cols, col)
- }
+ index.Cols = append(index.Cols, cols...)
}
+// Equal return true if the two Index is equal
func (index *Index) Equal(dst *Index) bool {
if index.Type != dst.Type {
return false
diff --git a/vendor/xorm.io/xorm/schemas/pk.go b/vendor/xorm.io/xorm/schemas/pk.go
index 03916b44fd..da3c7899b3 100644
--- a/vendor/xorm.io/xorm/schemas/pk.go
+++ b/vendor/xorm.io/xorm/schemas/pk.go
@@ -11,13 +11,16 @@ import (
"xorm.io/xorm/internal/utils"
)
+// PK represents primary key values
type PK []interface{}
+// NewPK creates primay keys
func NewPK(pks ...interface{}) *PK {
p := PK(pks)
return &p
}
+// IsZero return true if primay keys are zero
func (p *PK) IsZero() bool {
for _, k := range *p {
if utils.IsZero(k) {
@@ -27,6 +30,7 @@ func (p *PK) IsZero() bool {
return false
}
+// ToString convert to SQL string
func (p *PK) ToString() (string, error) {
buf := new(bytes.Buffer)
enc := gob.NewEncoder(buf)
@@ -34,6 +38,7 @@ func (p *PK) ToString() (string, error) {
return buf.String(), err
}
+// FromString reads content to load primary keys
func (p *PK) FromString(content string) error {
dec := gob.NewDecoder(bytes.NewBufferString(content))
err := dec.Decode(p)
diff --git a/vendor/xorm.io/xorm/schemas/quote.go b/vendor/xorm.io/xorm/schemas/quote.go
index a0070048a0..71040ad9c7 100644
--- a/vendor/xorm.io/xorm/schemas/quote.go
+++ b/vendor/xorm.io/xorm/schemas/quote.go
@@ -16,10 +16,10 @@ type Quoter struct {
}
var (
- // AlwaysFalseReverse always think it's not a reverse word
+ // AlwaysNoReserve always think it's not a reverse word
AlwaysNoReserve = func(string) bool { return false }
- // AlwaysReverse always reverse the word
+ // AlwaysReserve always reverse the word
AlwaysReserve = func(string) bool { return true }
// CommanQuoteMark represnets the common quote mark
@@ -29,10 +29,12 @@ var (
CommonQuoter = Quoter{CommanQuoteMark, CommanQuoteMark, AlwaysReserve}
)
+// IsEmpty return true if no prefix and suffix
func (q Quoter) IsEmpty() bool {
return q.Prefix == 0 && q.Suffix == 0
}
+// Quote quote a string
func (q Quoter) Quote(s string) string {
var buf strings.Builder
q.QuoteTo(&buf, s)
@@ -59,12 +61,14 @@ func (q Quoter) Trim(s string) string {
return buf.String()
}
+// Join joins a slice with quoters
func (q Quoter) Join(a []string, sep string) string {
var b strings.Builder
q.JoinWrite(&b, a, sep)
return b.String()
}
+// JoinWrite writes quoted content to a builder
func (q Quoter) JoinWrite(b *strings.Builder, a []string, sep string) error {
if len(a) == 0 {
return nil
diff --git a/vendor/xorm.io/xorm/schemas/table.go b/vendor/xorm.io/xorm/schemas/table.go
index 7ca9531f74..bfa517aa2f 100644
--- a/vendor/xorm.io/xorm/schemas/table.go
+++ b/vendor/xorm.io/xorm/schemas/table.go
@@ -90,23 +90,28 @@ func (table *Table) PKColumns() []*Column {
return columns
}
+// ColumnType returns a column's type
func (table *Table) ColumnType(name string) reflect.Type {
t, _ := table.Type.FieldByName(name)
return t.Type
}
+// AutoIncrColumn returns autoincrement column
func (table *Table) AutoIncrColumn() *Column {
return table.GetColumn(table.AutoIncrement)
}
+// VersionColumn returns version column's information
func (table *Table) VersionColumn() *Column {
return table.GetColumn(table.Version)
}
+// UpdatedColumn returns updated column's information
func (table *Table) UpdatedColumn() *Column {
return table.GetColumn(table.Updated)
}
+// DeletedColumn returns deleted column's information
func (table *Table) DeletedColumn() *Column {
return table.GetColumn(table.Deleted)
}
diff --git a/vendor/xorm.io/xorm/schemas/type.go b/vendor/xorm.io/xorm/schemas/type.go
index f0ede296c7..fc02f015eb 100644
--- a/vendor/xorm.io/xorm/schemas/type.go
+++ b/vendor/xorm.io/xorm/schemas/type.go
@@ -11,8 +11,10 @@ import (
"time"
)
+// DBType represents a database type
type DBType string
+// enumerates all database types
const (
POSTGRES DBType = "postgres"
SQLITE DBType = "sqlite3"
@@ -28,6 +30,7 @@ type SQLType struct {
DefaultLength2 int
}
+// enumerates all columns types
const (
UNKNOW_TYPE = iota
TEXT_TYPE
@@ -37,6 +40,7 @@ const (
ARRAY_TYPE
)
+// IsType reutrns ture if the column type is the same as the parameter
func (s *SQLType) IsType(st int) bool {
if t, ok := SqlTypes[s.Name]; ok && t == st {
return true
@@ -44,42 +48,53 @@ func (s *SQLType) IsType(st int) bool {
return false
}
+// IsText returns true if column is a text type
func (s *SQLType) IsText() bool {
return s.IsType(TEXT_TYPE)
}
+// IsBlob returns true if column is a binary type
func (s *SQLType) IsBlob() bool {
return s.IsType(BLOB_TYPE)
}
+// IsTime returns true if column is a time type
func (s *SQLType) IsTime() bool {
return s.IsType(TIME_TYPE)
}
+// IsNumeric returns true if column is a numeric type
func (s *SQLType) IsNumeric() bool {
return s.IsType(NUMERIC_TYPE)
}
+// IsArray returns true if column is an array type
func (s *SQLType) IsArray() bool {
return s.IsType(ARRAY_TYPE)
}
+// IsJson returns true if column is an array type
func (s *SQLType) IsJson() bool {
return s.Name == Json || s.Name == Jsonb
}
+// IsXML returns true if column is an xml type
func (s *SQLType) IsXML() bool {
return s.Name == XML
}
+// enumerates all the database column types
var (
- Bit = "BIT"
- TinyInt = "TINYINT"
- SmallInt = "SMALLINT"
- MediumInt = "MEDIUMINT"
- Int = "INT"
- Integer = "INTEGER"
- BigInt = "BIGINT"
+ Bit = "BIT"
+ UnsignedBit = "UNSIGNED BIT"
+ TinyInt = "TINYINT"
+ SmallInt = "SMALLINT"
+ MediumInt = "MEDIUMINT"
+ Int = "INT"
+ UnsignedInt = "UNSIGNED INT"
+ Integer = "INTEGER"
+ BigInt = "BIGINT"
+ UnsignedBigInt = "UNSIGNED BIGINT"
Enum = "ENUM"
Set = "SET"
@@ -136,13 +151,16 @@ var (
Array = "ARRAY"
SqlTypes = map[string]int{
- Bit: NUMERIC_TYPE,
- TinyInt: NUMERIC_TYPE,
- SmallInt: NUMERIC_TYPE,
- MediumInt: NUMERIC_TYPE,
- Int: NUMERIC_TYPE,
- Integer: NUMERIC_TYPE,
- BigInt: NUMERIC_TYPE,
+ Bit: NUMERIC_TYPE,
+ UnsignedBit: NUMERIC_TYPE,
+ TinyInt: NUMERIC_TYPE,
+ SmallInt: NUMERIC_TYPE,
+ MediumInt: NUMERIC_TYPE,
+ Int: NUMERIC_TYPE,
+ UnsignedInt: NUMERIC_TYPE,
+ Integer: NUMERIC_TYPE,
+ BigInt: NUMERIC_TYPE,
+ UnsignedBigInt: NUMERIC_TYPE,
Enum: TEXT_TYPE,
Set: TEXT_TYPE,
@@ -204,53 +222,55 @@ var (
// !nashtsai! treat following var as interal const values, these are used for reflect.TypeOf comparison
var (
- c_EMPTY_STRING string
- c_BOOL_DEFAULT bool
- c_BYTE_DEFAULT byte
- c_COMPLEX64_DEFAULT complex64
- c_COMPLEX128_DEFAULT complex128
- c_FLOAT32_DEFAULT float32
- c_FLOAT64_DEFAULT float64
- c_INT64_DEFAULT int64
- c_UINT64_DEFAULT uint64
- c_INT32_DEFAULT int32
- c_UINT32_DEFAULT uint32
- c_INT16_DEFAULT int16
- c_UINT16_DEFAULT uint16
- c_INT8_DEFAULT int8
- c_UINT8_DEFAULT uint8
- c_INT_DEFAULT int
- c_UINT_DEFAULT uint
- c_TIME_DEFAULT time.Time
+ emptyString string
+ boolDefault bool
+ byteDefault byte
+ complex64Default complex64
+ complex128Default complex128
+ float32Default float32
+ float64Default float64
+ int64Default int64
+ uint64Default uint64
+ int32Default int32
+ uint32Default uint32
+ int16Default int16
+ uint16Default uint16
+ int8Default int8
+ uint8Default uint8
+ intDefault int
+ uintDefault uint
+ timeDefault time.Time
)
+// enumerates all types
var (
- IntType = reflect.TypeOf(c_INT_DEFAULT)
- Int8Type = reflect.TypeOf(c_INT8_DEFAULT)
- Int16Type = reflect.TypeOf(c_INT16_DEFAULT)
- Int32Type = reflect.TypeOf(c_INT32_DEFAULT)
- Int64Type = reflect.TypeOf(c_INT64_DEFAULT)
-
- UintType = reflect.TypeOf(c_UINT_DEFAULT)
- Uint8Type = reflect.TypeOf(c_UINT8_DEFAULT)
- Uint16Type = reflect.TypeOf(c_UINT16_DEFAULT)
- Uint32Type = reflect.TypeOf(c_UINT32_DEFAULT)
- Uint64Type = reflect.TypeOf(c_UINT64_DEFAULT)
-
- Float32Type = reflect.TypeOf(c_FLOAT32_DEFAULT)
- Float64Type = reflect.TypeOf(c_FLOAT64_DEFAULT)
-
- Complex64Type = reflect.TypeOf(c_COMPLEX64_DEFAULT)
- Complex128Type = reflect.TypeOf(c_COMPLEX128_DEFAULT)
-
- StringType = reflect.TypeOf(c_EMPTY_STRING)
- BoolType = reflect.TypeOf(c_BOOL_DEFAULT)
- ByteType = reflect.TypeOf(c_BYTE_DEFAULT)
+ IntType = reflect.TypeOf(intDefault)
+ Int8Type = reflect.TypeOf(int8Default)
+ Int16Type = reflect.TypeOf(int16Default)
+ Int32Type = reflect.TypeOf(int32Default)
+ Int64Type = reflect.TypeOf(int64Default)
+
+ UintType = reflect.TypeOf(uintDefault)
+ Uint8Type = reflect.TypeOf(uint8Default)
+ Uint16Type = reflect.TypeOf(uint16Default)
+ Uint32Type = reflect.TypeOf(uint32Default)
+ Uint64Type = reflect.TypeOf(uint64Default)
+
+ Float32Type = reflect.TypeOf(float32Default)
+ Float64Type = reflect.TypeOf(float64Default)
+
+ Complex64Type = reflect.TypeOf(complex64Default)
+ Complex128Type = reflect.TypeOf(complex128Default)
+
+ StringType = reflect.TypeOf(emptyString)
+ BoolType = reflect.TypeOf(boolDefault)
+ ByteType = reflect.TypeOf(byteDefault)
BytesType = reflect.SliceOf(ByteType)
- TimeType = reflect.TypeOf(c_TIME_DEFAULT)
+ TimeType = reflect.TypeOf(timeDefault)
)
+// enumerates all types
var (
PtrIntType = reflect.PtrTo(IntType)
PtrInt8Type = reflect.PtrTo(Int8Type)
@@ -280,10 +300,14 @@ var (
// Type2SQLType generate SQLType acorrding Go's type
func Type2SQLType(t reflect.Type) (st SQLType) {
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:
st = SQLType{Int, 0, 0}
- case reflect.Int64, reflect.Uint64:
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32:
+ st = SQLType{UnsignedInt, 0, 0}
+ case reflect.Int64:
st = SQLType{BigInt, 0, 0}
+ case reflect.Uint64:
+ st = SQLType{UnsignedBigInt, 0, 0}
case reflect.Float32:
st = SQLType{Float, 0, 0}
case reflect.Float64:
@@ -291,7 +315,7 @@ func Type2SQLType(t reflect.Type) (st SQLType) {
case reflect.Complex64, reflect.Complex128:
st = SQLType{Varchar, 64, 0}
case reflect.Array, reflect.Slice, reflect.Map:
- if t.Elem() == reflect.TypeOf(c_BYTE_DEFAULT) {
+ if t.Elem() == reflect.TypeOf(byteDefault) {
st = SQLType{Blob, 0, 0}
} else {
st = SQLType{Text, 0, 0}
@@ -315,7 +339,7 @@ func Type2SQLType(t reflect.Type) (st SQLType) {
return
}
-// default sql type change to go types
+// SQLType2Type convert default sql type change to go types
func SQLType2Type(st SQLType) reflect.Type {
name := strings.ToUpper(st.Name)
switch name {
@@ -334,7 +358,7 @@ func SQLType2Type(st SQLType) reflect.Type {
case Bool:
return reflect.TypeOf(true)
case DateTime, Date, Time, TimeStamp, TimeStampz, SmallDateTime, Year:
- return reflect.TypeOf(c_TIME_DEFAULT)
+ return reflect.TypeOf(timeDefault)
case Decimal, Numeric, Money, SmallMoney:
return reflect.TypeOf("")
default: