Documentation
¶
Index ¶
- Constants
- Variables
- func Register(driver string, factory func() Dialect)
- type AlterTableQuery
- type AlterTableQueryBuilder
- type Column
- type ColumnDefinition
- type Condition
- type CreateTableQuery
- type CreateTableQueryBuilder
- type DataType
- type DataTyper
- type DeleteQuery
- type DeleteQueryBuilder
- type Dialect
- type DropTableQuery
- type DropTableQueryBuilder
- type Features
- type ForUpdate
- type ForeignKey
- type FunctionCall
- type Index
- type InsertQuery
- type InsertQueryBuilder
- type Join
- type Limit
- type MultiQuery
- type MultiQueryBuilder
- type MultiQueryBuilderImpl
- func (b *MultiQueryBuilderImpl) AddAlterTableQuery(q *AlterTableQuery) *MultiQueryBuilderImpl
- func (b *MultiQueryBuilderImpl) AddCreateTableQuery(q *CreateTableQuery) *MultiQueryBuilderImpl
- func (b *MultiQueryBuilderImpl) AddDeleteQuery(q *DeleteQuery) *MultiQueryBuilderImpl
- func (b *MultiQueryBuilderImpl) AddDropTableQuery(q *DropTableQuery) *MultiQueryBuilderImpl
- func (b *MultiQueryBuilderImpl) AddInsertQuery(q *InsertQuery) *MultiQueryBuilderImpl
- func (b *MultiQueryBuilderImpl) AddSelectQuery(q *SelectQuery) *MultiQueryBuilderImpl
- func (b *MultiQueryBuilderImpl) AddUpdateQuery(q *UpdateQuery) *MultiQueryBuilderImpl
- func (b *MultiQueryBuilderImpl) MultiQuery(q *UpdateQuery) []MultiQuery
- type OrderColumn
- type QueryBuilder
- type RawQuery
- type RawString
- type Select
- type SelectQuery
- type UpdateQuery
- type UpdateQueryBuilder
Constants ¶
View Source
const ( ForUpdateDefault = ForUpdate("default") ForUpdateSkipLocked = ForUpdate("skip-locked") )
Variables ¶
View Source
var ( DataTypeBlob = DataType{Name: "blob"} DataTypeString = DataType{Name: "string"} DataTypeText = DataType{Name: "text"} DataTypeEnum = DataType{Name: "enum"} DataTypeBoolean = DataType{Name: "bool"} DataTypeDate = DataType{Name: "date"} DataTypeDateTime = DataType{Name: "date-time"} DataTypeFloat32 = DataType{Name: "float32"} DataTypeFloat64 = DataType{Name: "float64"} DataTypeInt8 = DataType{Name: "int8"} DataTypeInt16 = DataType{Name: "int16"} DataTypeInt32 = DataType{Name: "int32"} DataTypeInt64 = DataType{Name: "int64"} DataTypeUInt8 = DataType{Name: "uint8"} DataTypeUInt16 = DataType{Name: "uint16"} DataTypeUInt32 = DataType{Name: "uint32"} DataTypeUInt64 = DataType{Name: "uint64"} DataTypeJSON = DataType{Name: "json"} )
View Source
var ErrNotRegistered = errors.New("no dialect registered")
Functions ¶
Types ¶
type AlterTableQuery ¶
type AlterTableQuery struct {
Table string
DropColumns []string
ModifyColumns []ColumnDefinition
AddColumns []ColumnDefinition
ForeignKeys []ForeignKey
Indexes []Index
}
type AlterTableQueryBuilder ¶
type AlterTableQueryBuilder interface {
AlterTableQuery() *AlterTableQuery
}
type Column ¶
type Column struct {
Column string
Function *FunctionCall
SubQuery QueryBuilder
As string
}
type ColumnDefinition ¶
type CreateTableQuery ¶
type CreateTableQuery struct {
IfNotExists bool
Temporary bool
Table string
Columns []ColumnDefinition
PrimaryKeys []string
ForeignKeys []ForeignKey
Indexes []Index
}
type CreateTableQueryBuilder ¶
type CreateTableQueryBuilder interface {
CreateTableQuery() *CreateTableQuery
}
type DataTyper ¶
type DataTyper interface {
DataType() DataType
}
DataTyper must not be implemented on an interface
type DeleteQuery ¶
type DeleteQueryBuilder ¶
type DeleteQueryBuilder interface {
DeleteQuery() *DeleteQuery
}
type Dialect ¶
type Dialect interface {
EncodeSelectQuery(q *SelectQuery) (RawQuery, error)
EncodeInsertQuery(q *InsertQuery) (RawQuery, error)
EncodeUpdateQuery(q *UpdateQuery) (RawQuery, error)
EncodeDeleteQuery(q *DeleteQuery) (RawQuery, error)
EncodeCreateTableQuery(q *CreateTableQuery) (RawQuery, error)
EncodeDropTableQuery(q *DropTableQuery) (RawQuery, error)
EncodeAlterTableQuery(q *AlterTableQuery) (RawQuery, error)
Features() Features
}
type DropTableQuery ¶
type DropTableQueryBuilder ¶
type DropTableQueryBuilder interface {
DropTableQuery() *DropTableQuery
}
type ForeignKey ¶
type FunctionCall ¶
type InsertQuery ¶
type InsertQueryBuilder ¶
type InsertQueryBuilder interface {
InsertQuery() *InsertQuery
}
type MultiQuery ¶
type MultiQuery struct {
// contains filtered or unexported fields
}
type MultiQueryBuilder ¶
type MultiQueryBuilder interface {
MultiQuery() []MultiQuery
}
type MultiQueryBuilderImpl ¶
type MultiQueryBuilderImpl struct {
// contains filtered or unexported fields
}
func NewMultiQueryBuilder ¶
func NewMultiQueryBuilder() *MultiQueryBuilderImpl
func (*MultiQueryBuilderImpl) AddAlterTableQuery ¶
func (b *MultiQueryBuilderImpl) AddAlterTableQuery(q *AlterTableQuery) *MultiQueryBuilderImpl
func (*MultiQueryBuilderImpl) AddCreateTableQuery ¶
func (b *MultiQueryBuilderImpl) AddCreateTableQuery(q *CreateTableQuery) *MultiQueryBuilderImpl
func (*MultiQueryBuilderImpl) AddDeleteQuery ¶
func (b *MultiQueryBuilderImpl) AddDeleteQuery(q *DeleteQuery) *MultiQueryBuilderImpl
func (*MultiQueryBuilderImpl) AddDropTableQuery ¶
func (b *MultiQueryBuilderImpl) AddDropTableQuery(q *DropTableQuery) *MultiQueryBuilderImpl
func (*MultiQueryBuilderImpl) AddInsertQuery ¶
func (b *MultiQueryBuilderImpl) AddInsertQuery(q *InsertQuery) *MultiQueryBuilderImpl
func (*MultiQueryBuilderImpl) AddSelectQuery ¶
func (b *MultiQueryBuilderImpl) AddSelectQuery(q *SelectQuery) *MultiQueryBuilderImpl
func (*MultiQueryBuilderImpl) AddUpdateQuery ¶
func (b *MultiQueryBuilderImpl) AddUpdateQuery(q *UpdateQuery) *MultiQueryBuilderImpl
func (*MultiQueryBuilderImpl) MultiQuery ¶
func (b *MultiQueryBuilderImpl) MultiQuery(q *UpdateQuery) []MultiQuery
type OrderColumn ¶
type QueryBuilder ¶
type QueryBuilder interface {
Query() *SelectQuery
}
type RawQuery ¶
func EncodeMultiQuery ¶
func EncodeMultiQuery(d Dialect, queries []MultiQuery) (RawQuery, error)
func JoinQueries ¶
type SelectQuery ¶
type SelectQuery struct {
Select Select
From string
Joins []Join
Wheres []Condition
Havings []Condition
GroupBys []string
OrderBys []OrderColumn
Limit Limit
ForUpdate ForUpdate
}
func NewSelectQuery ¶
func NewSelectQuery() SelectQuery
type UpdateQuery ¶
type UpdateQueryBuilder ¶
type UpdateQueryBuilder interface {
UpdateQuery() *UpdateQuery
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.