Documentation ¶
Index ¶
- Constants
- Variables
- func Cond() *condExpr
- type AndConditions
- type Assignment
- type Builder
- type Clause
- type ClauseBuilder
- type Column
- type Delete
- type EOp
- type Eq
- type Expr
- type Expression
- type From
- type GroupBy
- type Gt
- type Gte
- type IN
- type Insert
- type Interface
- type Join
- type JoinType
- type Like
- type Limit
- type Locking
- type Lt
- type Lte
- type NamedExpr
- type NegationExpressionBuilder
- type Neq
- type NotConditions
- type OnConflict
- type OrConditions
- type OrderBy
- type OrderByColumn
- type Returning
- type Select
- type Set
- type Table
- type Update
- type Values
- type Where
- type Writer
Constants ¶
const ( PrimaryKey string = "@@@py@@@" // primary key CurrentTable string = "@@@ct@@@" // current table Associations string = "@@@as@@@" // associations )
Variables ¶
var (
PrimaryColumn = Column{Table: CurrentTable, Name: PrimaryKey}
)
Functions ¶
Types ¶
type AndConditions ¶
type AndConditions struct {
Exprs []Expression
}
func (AndConditions) Build ¶
func (and AndConditions) Build(builder Builder)
type Assignment ¶
type Assignment struct { Column Column Value interface{} }
type Clause ¶
type Clause struct { Name string // WHERE BeforeExpression Expression AfterNameExpression Expression AfterExpression Expression Expression Expression Builder ClauseBuilder }
type ClauseBuilder ¶
ClauseBuilder clause builder, allows to customize how to build clause
type Eq ¶
type Eq struct { Column interface{} Value interface{} }
Eq equal to for where
func (Eq) NegationBuild ¶
type Expression ¶
type Expression interface {
Build(builder Builder)
}
Expression expression interface
func And ¶
func And(exprs ...Expression) Expression
func Not ¶
func Not(exprs ...Expression) Expression
func Or ¶
func Or(exprs ...Expression) Expression
type GroupBy ¶
type GroupBy struct { Columns []Column Having []Expression }
GroupBy group by clause
func (GroupBy) MergeClause ¶
MergeClause merge group by clause
type IN ¶
type IN struct { Column interface{} Values []interface{} }
IN Whether a value is within a set of values
func (IN) NegationBuild ¶
type Insert ¶
func (Insert) MergeClause ¶
MergeClause merge insert clause
type Join ¶
type Join struct { Type JoinType Table Table ON Where Using []string Expression Expression }
Join join clause for from
type Locking ¶
func (Locking) MergeClause ¶
MergeClause merge order by clauses
type NamedExpr ¶
type NamedExpr struct { SQL string Vars []interface{} }
NamedExpr raw expression for named expr
type NegationExpressionBuilder ¶
type NegationExpressionBuilder interface {
NegationBuild(builder Builder)
}
NegationExpressionBuilder negation expression builder
type NotConditions ¶
type NotConditions struct {
Exprs []Expression
}
func (NotConditions) Build ¶
func (not NotConditions) Build(builder Builder)
type OnConflict ¶
type OnConflict struct { Columns []Column Where Where OnConstraint string DoNothing bool DoUpdates Set UpdateAll bool }
func (OnConflict) Build ¶
func (onConflict OnConflict) Build(builder Builder)
Build build onConflict clause
func (OnConflict) MergeClause ¶
func (onConflict OnConflict) MergeClause(clause *Clause)
MergeClause merge onConflict clauses
func (OnConflict) Name ¶
func (OnConflict) Name() string
type OrConditions ¶
type OrConditions struct {
Exprs []Expression
}
func (OrConditions) Build ¶
func (or OrConditions) Build(builder Builder)
type OrderBy ¶
type OrderBy struct { Columns []OrderByColumn Expression Expression }
func (OrderBy) MergeClause ¶
MergeClause merge order by clauses
type OrderByColumn ¶
type Returning ¶
type Returning struct {
Columns []Column
}
func (Returning) MergeClause ¶
MergeClause merge order by clauses
type Select ¶
type Select struct { Distinct bool Columns []Column Expression Expression }
Select select attrs when querying, updating, creating
func (Select) MergeClause ¶
type Set ¶
type Set []Assignment
func AssignmentColumns ¶
func Assignments ¶
func (Set) MergeClause ¶
MergeClause merge assignment clauses
type Update ¶
func (Update) MergeClause ¶
MergeClause merge update clause
type Values ¶
type Values struct { Columns []Column Values [][]interface{} }
func (Values) MergeClause ¶
MergeClause merge values clauses
type Where ¶
type Where struct {
Exprs []Expression
}
Where where clause
func (Where) MergeClause ¶
MergeClause merge where clauses