statements

package
v1.0.3-imp-1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 14, 2020 License: BSD-3-Clause Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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

func IsIDConditionWithNoTableErr(err error) bool

IsIDConditionWithNoTableErr return true if the err is ErrIDConditionWithNoTable

Types

type ErrIDConditionWithNoTable

type ErrIDConditionWithNoTable struct {
	ID schemas.PK
}

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) Alias

func (statement *Statement) Alias(alias string) *Statement

Alias set the table alias

func (*Statement) AllCols

func (statement *Statement) AllCols() *Statement

AllCols update use only: update all columns

func (*Statement) And

func (statement *Statement) And(query interface{}, args ...interface{}) *Statement

And add Where & and statement

func (*Statement) Asc

func (statement *Statement) Asc(colNames ...string) *Statement

Asc provide asc order by query condition, the input parameters are columns.

func (*Statement) BuildConds

func (statement *Statement) BuildConds(table *schemas.Table, bean interface{}, includeVersion bool, includeUpdated bool, includeNil bool, includeAutoIncr bool, addedTableName bool) (builder.Cond, error)

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) Cols

func (statement *Statement) Cols(columns ...string) *Statement

Cols generate "col1, col2" statement

func (*Statement) ColumnStr

func (statement *Statement) ColumnStr() string

func (*Statement) CondDeleted

func (statement *Statement) CondDeleted(col *schemas.Column) builder.Cond

CondDeleted returns the conditions whether a record is soft deleted.

func (*Statement) Conds

func (statement *Statement) Conds() builder.Cond

func (*Statement) ConvertIDSQL

func (statement *Statement) ConvertIDSQL(sqlStr string) string

func (*Statement) ConvertSQLOrArgs

func (statement *Statement) ConvertSQLOrArgs(sqlOrArgs ...interface{}) (string, []interface{}, error)

func (*Statement) ConvertUpdateSQL

func (statement *Statement) ConvertUpdateSQL(sqlStr string) (string, string)

func (*Statement) Decr

func (statement *Statement) Decr(column string, arg ...interface{}) *Statement

Decr Generate "Update ... Set column = column - arg" statement

func (*Statement) Desc

func (statement *Statement) Desc(colNames ...string) *Statement

Desc generate `ORDER BY xx DESC`

func (*Statement) Distinct

func (statement *Statement) Distinct(columns ...string) *Statement

Distinct generates "DISTINCT col1, col2 " statement

func (*Statement) ForUpdate

func (statement *Statement) ForUpdate() *Statement

ForUpdate generates "SELECT ... FOR UPDATE" statement

func (*Statement) GenCondSQL

func (statement *Statement) GenCondSQL(condOrBuilder interface{}) (string, []interface{}, error)

func (*Statement) GenConds

func (statement *Statement) GenConds(bean interface{}) (string, []interface{}, error)

func (*Statement) GenCountSQL

func (statement *Statement) GenCountSQL(beans ...interface{}) (string, []interface{}, error)

GenCountSQL generates the SQL for counting

func (*Statement) GenCreateTableSQL

func (statement *Statement) GenCreateTableSQL() []string

func (*Statement) GenDelIndexSQL

func (statement *Statement) GenDelIndexSQL() []string

func (*Statement) GenExistSQL

func (statement *Statement) GenExistSQL(bean ...interface{}) (string, []interface{}, error)

func (*Statement) GenFindSQL

func (statement *Statement) GenFindSQL(autoCond builder.Cond) (string, []interface{}, error)

func (*Statement) GenGetSQL

func (statement *Statement) GenGetSQL(bean interface{}) (string, []interface{}, error)

func (*Statement) GenIndexSQL

func (statement *Statement) GenIndexSQL() []string

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 *Statement) GenQuerySQL(sqlOrArgs ...interface{}) (string, []interface{}, error)

func (*Statement) GenRawSQL

func (statement *Statement) GenRawSQL() string

GenRawSQL generates correct raw sql

func (*Statement) GenSumSQL

func (statement *Statement) GenSumSQL(bean interface{}, columns ...string) (string, []interface{}, error)

func (*Statement) GenUniqueSQL

func (statement *Statement) GenUniqueSQL() []string

func (*Statement) GetUnscoped

func (statement *Statement) GetUnscoped() bool

func (*Statement) GroupBy

func (statement *Statement) GroupBy(keys string) *Statement

GroupBy generate "Group By keys" statement

func (*Statement) Having

func (statement *Statement) Having(conditions string) *Statement

Having generate "Having conditions" statement

func (*Statement) ID

func (statement *Statement) ID(id interface{}) *Statement

ID generate "where id = ? " statement or for composite key "where key1 = ? and key2 = ?"

func (*Statement) In

func (statement *Statement) In(column string, args ...interface{}) *Statement

In generate "Where column IN (?) " statement

func (*Statement) Incr

func (statement *Statement) Incr(column string, arg ...interface{}) *Statement

Incr Generate "Update ... Set column = column + arg" statement

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) Limit

func (statement *Statement) Limit(limit int, start ...int) *Statement

Limit generate LIMIT start, limit statement

func (*Statement) MustCols

func (statement *Statement) MustCols(columns ...string) *Statement

MustCols update use only: must update columns

func (*Statement) NotIn

func (statement *Statement) NotIn(column string, args ...interface{}) *Statement

NotIn generate "Where column NOT IN (?) " statement

func (*Statement) Nullable

func (statement *Statement) Nullable(columns ...string)

Nullable Update use only: update columns to null when value is nullable and zero-value

func (*Statement) Omit

func (statement *Statement) Omit(columns ...string)

Omit do not use the columns

func (*Statement) Or

func (statement *Statement) Or(query interface{}, args ...interface{}) *Statement

Or add Where & Or statement

func (*Statement) OrderBy

func (statement *Statement) OrderBy(order string) *Statement

OrderBy generate "Order By order" statement

func (*Statement) ProcessIDParam

func (statement *Statement) ProcessIDParam() error

ProcessIDParam handles the process of id condition

func (*Statement) ReplaceQuote

func (statement *Statement) ReplaceQuote(sql string) string

func (*Statement) Reset

func (statement *Statement) Reset()

Init reset all the statement's fields

func (*Statement) SQL

func (statement *Statement) SQL(query interface{}, args ...interface{}) *Statement

SQL adds raw sql statement

func (*Statement) Select

func (statement *Statement) Select(str string) *Statement

Select replace select

func (*Statement) SetContextCache

func (statement *Statement) SetContextCache(ctxCache contexts.ContextCache)

func (*Statement) SetExpr

func (statement *Statement) SetExpr(column string, expression interface{}) *Statement

SetExpr Generate "Update ... Set column = {expression}" statement

func (*Statement) SetNoAutoCondition

func (statement *Statement) SetNoAutoCondition(no ...bool) *Statement

NoAutoCondition if you do not want convert bean's field as query condition, then use this function

func (*Statement) SetRefBean

func (statement *Statement) SetRefBean(bean interface{}) error

func (*Statement) SetRefValue

func (statement *Statement) SetRefValue(v reflect.Value) error

func (*Statement) SetTable

func (statement *Statement) SetTable(tableNameOrBean interface{}) error

Table tempororily set table name, the parameter could be a string or a pointer of struct

func (*Statement) SetTableName

func (statement *Statement) SetTableName(tableName string)

func (*Statement) SetUnscoped

func (statement *Statement) SetUnscoped() *Statement

Unscoped always disable struct tag "deleted"

func (*Statement) TableName

func (statement *Statement) TableName() string

TableName return current tableName

func (*Statement) Top

func (statement *Statement) Top(limit int) *Statement

Top generate LIMIT limit statement

func (*Statement) UseBool

func (statement *Statement) UseBool(columns ...string) *Statement

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

func (*Statement) Where

func (statement *Statement) Where(query interface{}, args ...interface{}) *Statement

Where add Where statement

func (*Statement) WriteArg

func (statement *Statement) WriteArg(w *builder.BytesWriter, arg interface{}) error

func (*Statement) WriteArgs

func (statement *Statement) WriteArgs(w *builder.BytesWriter, args []interface{}) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL