Documentation
¶
Index ¶
- Constants
- func Append(fmter Formatter, b []byte, v interface{}) []byte
- func AppendBoolValue(fmter Formatter, b []byte, v reflect.Value) []byte
- func AppendFloat32Value(fmter Formatter, b []byte, v reflect.Value) []byte
- func AppendFloat64Value(fmter Formatter, b []byte, v reflect.Value) []byte
- func AppendIntValue(fmter Formatter, b []byte, v reflect.Value) []byte
- func AppendQueryAppender(fmter Formatter, b []byte, app QueryAppender) []byte
- func AppendUintValue(fmter Formatter, b []byte, v reflect.Value) []byte
- func DiscoverSQLType(typ reflect.Type) string
- func SetTableNameInflector(fn func(string) string)
- type AfterScanHook
- type AppenderFunc
- type ArgAppender
- type BaseModel
- type BeforeScanHook
- type ColumnsAppender
- type Dialect
- type Field
- func (f *Field) AppendValue(fmter Formatter, b []byte, strct reflect.Value) []byte
- func (f *Field) Clone() *Field
- func (f *Field) HasZeroValue(v reflect.Value) bool
- func (f *Field) ScanValue(strct reflect.Value, src interface{}) error
- func (f *Field) ScanWithCheck(fv reflect.Value, src interface{}) error
- func (f *Field) String() string
- func (f *Field) Value(strct reflect.Value) reflect.Value
- type Formatter
- func (f Formatter) AppendIdent(b []byte, ident string) []byte
- func (f Formatter) AppendQuery(dst []byte, query string, args ...interface{}) []byte
- func (f Formatter) AppendValue(b []byte, v reflect.Value) []byte
- func (f Formatter) Arg(name string) interface{}
- func (f Formatter) Dialect() Dialect
- func (f Formatter) FormatQuery(query string, args ...interface{}) string
- func (f Formatter) HasFeature(feature feature.Feature) bool
- func (f Formatter) IdentQuote() byte
- func (f Formatter) IsNop() bool
- func (f Formatter) String() string
- func (f Formatter) WithArg(name string, value interface{}) Formatter
- func (f Formatter) WithModel(model ArgAppender) Formatter
- type Ident
- type IsZeroerFunc
- type NullTime
- type QueryAppender
- type QueryWithArgs
- type QueryWithSep
- type Relation
- type Safe
- type ScannerFunc
- type Table
- type Tables
Constants ¶
View Source
const ( InvalidRelation = iota HasOneRelation BelongsToRelation HasManyRelation ManyToManyRelation )
Variables ¶
This section is empty.
Functions ¶
func AppendBoolValue ¶ added in v0.1.6
func AppendFloat32Value ¶ added in v0.1.6
func AppendFloat64Value ¶ added in v0.1.6
func AppendQueryAppender ¶
func AppendQueryAppender(fmter Formatter, b []byte, app QueryAppender) []byte
func DiscoverSQLType ¶ added in v0.1.17
func SetTableNameInflector ¶
SetTableNameInflector overrides the default func that pluralizes model name to get table name, e.g. my_article becomes my_articles.
Types ¶
type AfterScanHook ¶
type AppenderFunc ¶
func Appender ¶
func Appender(typ reflect.Type) AppenderFunc
func FieldAppender ¶
func FieldAppender(dialect Dialect, field *Field) AppenderFunc
type ArgAppender ¶
type BeforeScanHook ¶
type ColumnsAppender ¶
type Field ¶
type Field struct {
StructField reflect.StructField
Tag tagparser.Tag
IndirectType reflect.Type
Index []int
Name string // SQL name, .e.g. id
SQLName Safe // escaped SQL name, e.g. "id"
GoName string // struct field name, e.g. Id
DiscoveredSQLType string
UserSQLType string
CreateTableSQLType string
SQLDefault string
OnDelete string
OnUpdate string
IsPK bool
NotNull bool
NullZero bool
AutoIncrement bool
Append AppenderFunc
Scan ScannerFunc
IsZero IsZeroerFunc
}
func (*Field) AppendValue ¶
func (*Field) ScanWithCheck ¶
type Formatter ¶
type Formatter struct {
// contains filtered or unexported fields
}
func NewFormatter ¶
func NewNopFormatter ¶
func NewNopFormatter() Formatter
func (Formatter) AppendQuery ¶
func (Formatter) FormatQuery ¶
func (Formatter) IdentQuote ¶
func (Formatter) WithModel ¶
func (f Formatter) WithModel(model ArgAppender) Formatter
type Ident ¶
type Ident string
Ident represents a SQL identifier, for example, table or column name.
type IsZeroerFunc ¶
func FieldZeroChecker ¶
func FieldZeroChecker(field *Field) IsZeroerFunc
type NullTime ¶ added in v0.1.17
NullTime is a time.Time wrapper that marshals zero time as JSON null and SQL NULL.
func (NullTime) AppendQuery ¶ added in v0.1.17
func (NullTime) MarshalJSON ¶ added in v0.1.17
func (*NullTime) UnmarshalJSON ¶ added in v0.1.17
type QueryAppender ¶
type QueryWithArgs ¶
type QueryWithArgs struct {
Query string
Args []interface{}
}
func SafeQuery ¶
func SafeQuery(query string, args []interface{}) QueryWithArgs
func UnsafeIdent ¶
func UnsafeIdent(ident string) QueryWithArgs
func (QueryWithArgs) AppendQuery ¶
func (q QueryWithArgs) AppendQuery(fmter Formatter, b []byte) ([]byte, error)
func (QueryWithArgs) IsZero ¶
func (q QueryWithArgs) IsZero() bool
type QueryWithSep ¶
type QueryWithSep struct {
QueryWithArgs
Sep string
}
func SafeQueryWithSep ¶
func SafeQueryWithSep(query string, args []interface{}, sep string) QueryWithSep
type Relation ¶
type ScannerFunc ¶
func FieldScanner ¶
func FieldScanner(dialect Dialect, field *Field) ScannerFunc
func Scanner ¶
func Scanner(typ reflect.Type) ScannerFunc
type Table ¶
type Table struct {
Type reflect.Type
ZeroValue reflect.Value // reflect.Struct
ZeroIface interface{} // struct pointer
TypeName string
ModelName string
Name string
SQLName Safe
SQLNameForSelects Safe
Alias string
SQLAlias Safe
Fields []*Field // PKs + DataFields
PKs []*Field
DataFields []*Field
FieldMap map[string]*Field
Relations map[string]*Relation
Unique map[string][]*Field
SoftDeleteField *Field
UpdateSoftDeleteField func(fv reflect.Value) error
// contains filtered or unexported fields
}
Table represents a SQL table created from Go struct.
func (*Table) HasAfterScanHook ¶
func (*Table) HasBeforeScanHook ¶
Click to show internal directories.
Click to hide internal directories.