Documentation ¶
Index ¶
- Variables
- func GetConversion(fieldValue reflect.Value, requiredField bool, val *interface{}) (isAppend bool, isContinue bool, err error)
- func IsIDConditionWithNoTableErr(err error) bool
- type ErrIDConditionWithNoTable
- type ErrUnsupportedExprType
- type Statement
- func (statement *Statement) Alias(alias string) *Statement
- func (statement *Statement) AllCols() *Statement
- func (statement *Statement) And(query interface{}, args ...interface{}) *Statement
- func (statement *Statement) Asc(colNames ...string) *Statement
- func (statement *Statement) BuildConds(table *schemas.Table, bean interface{}, includeVersion bool, ...) (builder.Cond, error)
- func (statement *Statement) BuildUpdates(tableValue reflect.Value, ...) ([]string, []interface{}, error)
- func (statement *Statement) Cols(columns ...string) *Statement
- func (statement *Statement) ColumnStr() string
- func (statement *Statement) CondDeleted(col *schemas.Column) builder.Cond
- func (statement *Statement) Conds() builder.Cond
- func (statement *Statement) ConvertIDSQL(sqlStr string) string
- func (statement *Statement) ConvertSQLOrArgs(sqlOrArgs ...interface{}) (string, []interface{}, error)
- func (statement *Statement) ConvertUpdateSQL(sqlStr string) (string, string)
- func (statement *Statement) Decr(column string, arg ...interface{}) *Statement
- func (statement *Statement) Desc(colNames ...string) *Statement
- func (statement *Statement) Distinct(columns ...string) *Statement
- func (statement *Statement) ForUpdate() *Statement
- func (statement *Statement) GenCondSQL(condOrBuilder interface{}) (string, []interface{}, error)
- func (statement *Statement) GenConds(bean interface{}) (string, []interface{}, error)
- func (statement *Statement) GenCountSQL(beans ...interface{}) (string, []interface{}, error)
- func (statement *Statement) GenCreateTableSQL() []string
- func (statement *Statement) GenDelIndexSQL() []string
- func (statement *Statement) GenExistSQL(bean ...interface{}) (string, []interface{}, error)
- func (statement *Statement) GenFindSQL(autoCond builder.Cond) (string, []interface{}, error)
- func (statement *Statement) GenGetSQL(bean interface{}) (string, []interface{}, error)
- func (statement *Statement) GenIndexSQL() []string
- func (statement *Statement) GenInsertMapSQL(columns []string, args []interface{}) (string, []interface{}, error)
- func (statement *Statement) GenInsertSQL(colNames []string, args []interface{}) (string, []interface{}, error)
- func (statement *Statement) GenQuerySQL(sqlOrArgs ...interface{}) (string, []interface{}, error)
- func (statement *Statement) GenRawSQL() string
- func (statement *Statement) GenSumSQL(bean interface{}, columns ...string) (string, []interface{}, error)
- func (statement *Statement) GenUniqueSQL() []string
- func (statement *Statement) GetUnscoped() bool
- func (statement *Statement) GroupBy(keys string) *Statement
- func (statement *Statement) Having(conditions string) *Statement
- func (statement *Statement) ID(id interface{}) *Statement
- func (statement *Statement) In(column string, args ...interface{}) *Statement
- func (statement *Statement) Incr(column string, arg ...interface{}) *Statement
- func (statement *Statement) Join(joinOP string, tablename interface{}, condition string, args ...interface{}) *Statement
- func (statement *Statement) Limit(limit int, start ...int) *Statement
- func (statement *Statement) MustCols(columns ...string) *Statement
- func (statement *Statement) NotIn(column string, args ...interface{}) *Statement
- func (statement *Statement) Nullable(columns ...string)
- func (statement *Statement) Omit(columns ...string)
- func (statement *Statement) Or(query interface{}, args ...interface{}) *Statement
- func (statement *Statement) OrderBy(order string) *Statement
- func (statement *Statement) ProcessIDParam() error
- func (statement *Statement) ReplaceQuote(sql string) string
- func (statement *Statement) Reset()
- func (statement *Statement) SQL(query interface{}, args ...interface{}) *Statement
- func (statement *Statement) Select(str string) *Statement
- func (statement *Statement) SetContextCache(ctxCache contexts.ContextCache)
- func (statement *Statement) SetExpr(column string, expression interface{}) *Statement
- func (statement *Statement) SetNoAutoCondition(no ...bool) *Statement
- func (statement *Statement) SetRefBean(bean interface{}) error
- func (statement *Statement) SetRefValue(v reflect.Value) error
- func (statement *Statement) SetTable(tableNameOrBean interface{}) error
- func (statement *Statement) SetTableName(tableName string)
- func (statement *Statement) SetUnscoped() *Statement
- func (statement *Statement) TableName() string
- func (statement *Statement) Top(limit int) *Statement
- func (statement *Statement) UseBool(columns ...string) *Statement
- func (statement *Statement) Value2Interface(col *schemas.Column, fieldValue reflect.Value) (interface{}, error)
- func (statement *Statement) Where(query interface{}, args ...interface{}) *Statement
- func (statement *Statement) WriteArg(w *builder.BytesWriter, arg interface{}) error
- func (statement *Statement) WriteArgs(w *builder.BytesWriter, args []interface{}) error
Constants ¶
This section is empty.
Variables ¶
var ( // ErrConditionType condition type unsupported ErrConditionType = errors.New("Unsupported condition type") // ErrUnSupportedSQLType parameter of SQL is not supported ErrUnSupportedSQLType = errors.New("Unsupported sql type") // ErrUnSupportedType unsupported error ErrUnSupportedType = errors.New("Unsupported type error") // ErrTableNotFound table not found error ErrTableNotFound = errors.New("Table not found") )
Functions ¶
func GetConversion ¶
func GetConversion(fieldValue reflect.Value, requiredField bool, val *interface{}) (isAppend bool, isContinue bool, err error)
GetConversion is a function to assign val from the convert.To interface to extract the data. The data then consumed for the database's input and processing. This function also handles the reduplication of extracting the data from the statement and the update.
func IsIDConditionWithNoTableErr ¶
IsIDConditionWithNoTableErr return true if the err is ErrIDConditionWithNoTable
Types ¶
type ErrIDConditionWithNoTable ¶
ErrIDConditionWithNoTable represents an error there is no reference table with an ID condition
func (ErrIDConditionWithNoTable) Error ¶
func (err ErrIDConditionWithNoTable) Error() string
type ErrUnsupportedExprType ¶
type ErrUnsupportedExprType struct {
// contains filtered or unexported fields
}
func (ErrUnsupportedExprType) Error ¶
func (err ErrUnsupportedExprType) Error() string
type Statement ¶
type Statement struct { RefTable *schemas.Table Start int LimitN *int OrderStr string JoinStr string GroupByStr string HavingStr string SelectStr string AltTableName string RawSQL string RawParams []interface{} UseCascade bool UseAutoJoin bool StoreEngine string Charset string UseCache bool UseAutoTime bool NoAutoCondition bool IsDistinct bool IsForUpdate bool TableAlias string CheckVersion bool ColumnMap columnMap OmitColumnMap columnMap MustColumnMap map[string]bool NullableMap map[string]bool IncrColumns exprParams DecrColumns exprParams ExprColumns exprParams BufferSize int Context contexts.ContextCache LastError error // contains filtered or unexported fields }
Statement save all the sql info for executing SQL
func NewStatement ¶
func NewStatement(dialect dialects.Dialect, tagParser *tags.Parser, defaultTimeZone *time.Location) *Statement
NewStatement creates a new statement
func (*Statement) BuildConds ¶
func (*Statement) BuildUpdates ¶
func (statement *Statement) BuildUpdates(tableValue reflect.Value, includeVersion, includeUpdated, includeNil, includeAutoIncr, update bool) ([]string, []interface{}, error)
BuildUpdates auto generating update columnes and values according a struct
func (*Statement) CondDeleted ¶
CondDeleted returns the conditions whether a record is soft deleted.
func (*Statement) ConvertIDSQL ¶
func (*Statement) ConvertSQLOrArgs ¶
func (*Statement) ConvertUpdateSQL ¶
func (*Statement) GenCondSQL ¶
func (*Statement) GenCountSQL ¶
GenCountSQL generates the SQL for counting
func (*Statement) GenCreateTableSQL ¶
func (*Statement) GenDelIndexSQL ¶
func (*Statement) GenExistSQL ¶
func (*Statement) GenFindSQL ¶
func (*Statement) GenIndexSQL ¶
func (*Statement) GenInsertMapSQL ¶
func (statement *Statement) GenInsertMapSQL(columns []string, args []interface{}) (string, []interface{}, error)
GenInsertMapSQL generates insert map SQL
func (*Statement) GenInsertSQL ¶
func (statement *Statement) GenInsertSQL(colNames []string, args []interface{}) (string, []interface{}, error)
GenInsertSQL generates insert beans SQL
func (*Statement) GenQuerySQL ¶
func (*Statement) GenUniqueSQL ¶
func (*Statement) GetUnscoped ¶
func (*Statement) ID ¶
ID generate "where id = ? " statement or for composite key "where key1 = ? and key2 = ?"
func (*Statement) Join ¶
func (statement *Statement) Join(joinOP string, tablename interface{}, condition string, args ...interface{}) *Statement
Join The joinOP should be one of INNER, LEFT OUTER, CROSS etc - this will be prepended to JOIN
func (*Statement) Nullable ¶
Nullable Update use only: update columns to null when value is nullable and zero-value
func (*Statement) ProcessIDParam ¶
ProcessIDParam handles the process of id condition
func (*Statement) ReplaceQuote ¶
func (*Statement) SetContextCache ¶
func (statement *Statement) SetContextCache(ctxCache contexts.ContextCache)
func (*Statement) SetNoAutoCondition ¶
NoAutoCondition if you do not want convert bean's field as query condition, then use this function
func (*Statement) SetRefBean ¶
func (*Statement) SetTable ¶
Table tempororily set table name, the parameter could be a string or a pointer of struct
func (*Statement) SetTableName ¶
func (*Statement) SetUnscoped ¶
Unscoped always disable struct tag "deleted"
func (*Statement) UseBool ¶
UseBool indicates that use bool fields as update contents and query contiditions
func (*Statement) Value2Interface ¶
func (statement *Statement) Value2Interface(col *schemas.Column, fieldValue reflect.Value) (interface{}, error)
Value2Interface convert a field value of a struct to interface for puting into database