dialects

package
v0.24.0 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Index

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

func Register

func Register(driver string, factory func() Dialect)

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 ColumnDefinition struct {
	Name               string
	Datatype           DataType
	Nullable           bool
	Primary            bool
	AutoIncrement      bool
	DefaultValue       any
	Unique             bool
	DefaultCurrentTime bool
}

type Condition

type Condition struct {
	Column   Column
	Operator string
	Value    any
	Or       bool
}

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 DataType

type DataType struct {
	Name string
	Size int
}

func (DataType) IsValid

func (d DataType) IsValid() bool

type DataTyper

type DataTyper interface {
	DataType() DataType
}

DataTyper must not be implemented on an interface

type DeleteQuery

type DeleteQuery struct {
	Table  string
	Wheres []Condition
}

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
}

func New

func New(driverName string) (Dialect, error)

type DropTableQuery

type DropTableQuery struct {
	Table    string
	IfExists bool
}

type DropTableQueryBuilder

type DropTableQueryBuilder interface {
	DropTableQuery() *DropTableQuery
}

type Features

type Features struct {
	Returning bool
}

type ForUpdate

type ForUpdate string

type ForeignKey

type ForeignKey struct {
	Name           string
	Columns        []string
	ForeignTable   string
	ForeignColumns []string
}

type FunctionCall

type FunctionCall struct {
	Name      string
	Arguments string
}

type Index

type Index struct {
	Name    string
	Table   string
	Columns []string
	Unique  bool
}

type InsertQuery

type InsertQuery struct {
	Table     string
	Values    []map[string]any
	Returning []string
}

type InsertQueryBuilder

type InsertQueryBuilder interface {
	InsertQuery() *InsertQuery
}

type Join

type Join struct {
	Direction  string
	Table      string
	Conditions []Condition
}

type Limit

type Limit struct {
	Limit  int
	Offset int
}

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 (*MultiQueryBuilderImpl) AddDropTableQuery

func (*MultiQueryBuilderImpl) AddInsertQuery

func (*MultiQueryBuilderImpl) AddSelectQuery

func (*MultiQueryBuilderImpl) AddUpdateQuery

func (*MultiQueryBuilderImpl) MultiQuery

func (b *MultiQueryBuilderImpl) MultiQuery(q *UpdateQuery) []MultiQuery

type OrderColumn

type OrderColumn struct {
	Column     string
	Descending bool
}

type QueryBuilder

type QueryBuilder interface {
	Query() *SelectQuery
}

type RawQuery

type RawQuery struct {
	SQL      string
	Bindings []any
}

func EncodeMultiQuery

func EncodeMultiQuery(d Dialect, queries []MultiQuery) (RawQuery, error)

func JoinQueries

func JoinQueries(results []RawQuery) RawQuery

func Raw

func Raw(sql string, bindings ...any) RawQuery

type RawString

type RawString string

type Select

type Select struct {
	Distinct bool
	Columns  []Column
}

func NewSelect

func NewSelect() Select

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 UpdateQuery struct {
	Table     string
	Values    map[string]any
	Returning []Column
	Wheres    []Condition
}

type UpdateQueryBuilder

type UpdateQueryBuilder interface {
	UpdateQuery() *UpdateQuery
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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