query

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2023 License: Apache-2.0 Imports: 5 Imported by: 8

Documentation

Index

Constants

View Source
const (
	UnknownData = iota
	BigIntData
	BinaryData
	BitData
	BlobData
	BooleanData
	CharData
	CharacterData
	ClobData
	DateData
	DecimalData
	DoubleData
	FloatData
	IntData
	IntegerData
	LongBlobData
	LongTextData
	MediumBlobData
	MediumIntData
	MediumTextData
	NumericData
	RealData
	SetData
	SmallIntData
	TextData
	TimeData
	TimeStampData
	TinyBlobData
	TinyIntData
	TinyTextData
	VarBinaryData
	VarCharData
	VarCharacterData
	YearData
)
View Source
const (
	BoolObjectId            = 16
	ByteaObjectId           = 17
	CharObjectId            = 18
	NameObjectId            = 19
	Int8ObjectId            = 20
	Int2ObjectId            = 21
	Int2VectorObjectId      = 22
	Int4ObjectId            = 23
	RegProcObjectId         = 24
	TextObjectId            = 25
	OidObjectId             = 26
	TidObjectId             = 27
	XidObjectId             = 28
	CidObjectId             = 29
	XmlObjectId             = 142
	PointObjectId           = 600
	LsegObjectId            = 601
	PathObjectId            = 602
	BoxObjectId             = 603
	PolygonObjectId         = 604
	LineObjectId            = 628
	LineArrayObjectId       = 629
	CircleObjectId          = 718
	CircleArrayObjectId     = 719
	MacaddrObjectId         = 829
	Macaddr8ObjectId        = 774
	InetObjectId            = 869
	InetArrayObjectId       = 1040
	CidrObjectId            = 650
	CidrArrayObjectId       = 651
	Float4ObjectId          = 700
	Float8ObjectId          = 701
	UnknownObjectId         = 705
	AbstimeObjectId         = 702
	ReltimeObjectId         = 703
	TintervalObjectId       = 704
	PolygonArrayObjectId    = 628
	OidvectorObjectId       = 30
	BpcharObjectId          = 1042
	VarcharObjectId         = 1043
	DateObjectId            = 1082
	TimeObjectId            = 1083
	TimestampObjectId       = 1114
	TimestampTzObjectId     = 1184
	IntervalObjectId        = 1186
	TimeTzObjectId          = 1266
	BitObjectId             = 1560
	VarbitObjectId          = 1562
	NumericObjectId         = 1700
	RefcursorObjectId       = 1790
	RegprocedureObjectId    = 2202
	RegoperObjectId         = 2203
	RegoperatorObjectId     = 2204
	RegclassObjectId        = 2205
	RegtypeObjectId         = 2206
	RecordObjectId          = 2249
	CstringObjectId         = 2275
	AnyObjectId             = 2276
	AnyarrayObjectId        = 2277
	VoidObjectId            = 2278
	TriggerObjectId         = 2279
	LanguageHandlerObjectId = 2280
	InternalObjectId        = 2281
	OpaqueObjectId          = 2282
	AnyelementObjectId      = 2283
	AnynonarrayObjectId     = 2776
	GeometryObjectId        = 3614
	GeograpyObjectId        = 4326
)
View Source
const (
	UnknownLiteral = iota
	StringLiteral
)
View Source
const (
	CreateDatabaseStatement = iota
	CreateTableStatement
	CreateIndexStatement
	InsertStatement
	SelectStatement
	UpdateStatement
	DeleteStatement
	DropDatabaseStatement
	DropTableStatement
	DropIndexStatement
	AlterDatabaseStatement
	AlterTableStatement
	AlterIndexStatement
)
View Source
const (
	// Asterisk is a asterisk string.
	Asterisk = "*"
)

Variables

View Source
var ErrInvalidDataType = errors.New("invalid data type")

ErrInvalidDataType is returned when the data type is invalid.

View Source
var ErrNotFound = errors.New("not found")

ErrNotFound is returned when the data type is invalid.

View Source
var NullLiteral = NewLiteralWith(nil)

NullLiteral represents a null value.

Functions

func WithColumnData added in v0.9.1

func WithColumnData(data *DataDef) func(*Column)

WithColumnData sets a column data.

func WithColumnLiteral added in v0.9.1

func WithColumnLiteral(l *Literal) func(*Column)

WithColumnLiteral sets a column data.

func WithColumnName added in v0.9.1

func WithColumnName(name string) func(*Column)

WithColumnName sets a column name.

func WithLiteralType added in v0.9.1

func WithLiteralType(t LiteralType) func(*Literal)

WithSchemaColumns returns a schema option to set the columns.

func WithSchemaColumns added in v0.9.1

func WithSchemaColumns(columns ColumnList) func(*Schema)

WithSchemaColumns returns a schema option to set the columns.

func WithSchemaIndexes added in v0.9.1

func WithSchemaIndexes(idxes IndexList) func(*Schema)

WithSchemaIndexes returns a schema option to set the indexes.

Types

type AlterDatabase

type AlterDatabase struct {
	*Database
}

AlterDatabase is a "ALTER DATABASE" statement.

func NewAlterDatabaseWith

func NewAlterDatabaseWith(name string) *AlterDatabase

NewAlterDatabaseWith returns a new AlterDatabase statement instance with the specified options.

func (*AlterDatabase) StatementType

func (stmt *AlterDatabase) StatementType() StatementType

StatementType returns the statement type.

func (*AlterDatabase) String

func (stmt *AlterDatabase) String() string

String returns the statement string representation.

type AlterTable

type AlterTable struct {
	*Schema
	*Table
}

AlterTable is a "ALTER TABLE" statement.

func NewAlterTableWith

func NewAlterTableWith(schemaName string, tblName string) *AlterTable

NewAlterTableWith returns a new AlterTable statement instance with the specified options.

func (*AlterTable) StatementType

func (stmt *AlterTable) StatementType() StatementType

StatementType returns the statement type.

func (*AlterTable) String

func (stmt *AlterTable) String() string

String returns the statement string representation.

type AndExpr

type AndExpr struct {
	Left  Expr
	Right Expr
}

AndExpr represents an AND expression.

type BindParam added in v0.9.1

type BindParam struct {
	// contains filtered or unexported fields
}

BindParam represents a bind param.

func NewBindParamWith added in v0.9.1

func NewBindParamWith(name string) *BindParam

NewBindParam returns a bind param instance.

func (*BindParam) Name added in v0.9.1

func (param *BindParam) Name() string

Name returns the bind param name.

func (*BindParam) String added in v0.9.1

func (param *BindParam) String() string

String returns the string representation.

type BindParams added in v0.9.1

type BindParams []*BindParam

BindParams represens a bind param array.

func NewBindParams added in v0.9.1

func NewBindParams() BindParams

NewBindParams returns a bind param array instance.

type CmpExpr added in v0.9.1

type CmpExpr struct {
	// contains filtered or unexported fields
}

CmpExpr represents an comparsion expression.

func NewCmpExpr added in v0.9.1

func NewCmpExpr(op CmpExprOperator, left *Column, right *Literal) *CmpExpr

NewCmpExpr returns a new CompExpr instance with the specified parameters.

func (*CmpExpr) Left added in v0.9.1

func (expr *CmpExpr) Left() *Column

Left returns the left column.

func (*CmpExpr) Operator added in v0.9.1

func (expr *CmpExpr) Operator() CmpExprOperator

Operator returns the operator.

func (*CmpExpr) Right added in v0.9.1

func (expr *CmpExpr) Right() *Literal

Right returns the right literal.

func (*CmpExpr) String added in v0.9.1

func (expr *CmpExpr) String() string

String returns the index string representation.

type CmpExprOperator added in v0.9.1

type CmpExprOperator uint8

CmpExprOperator is an enum for CompExpr.Operator

const (
	EQ CmpExprOperator = iota
	NEQ
	LT
	GT
	LE
	GE
	IN
	NIN
)

Constants for Enum Type - CompExprOperator

func (CmpExprOperator) String added in v0.9.1

func (t CmpExprOperator) String() string

String returns the string representation.

type Column

type Column struct {
	*DataDef
	*Literal
	*BindParam
	// contains filtered or unexported fields
}

Column represents a column.

func NewColumnWithName

func NewColumnWithName(name string) *Column

NewColumn returns a column instance.

func NewColumnWithOptions added in v0.9.1

func NewColumnWithOptions(opts ...ColumnOption) *Column

NewColumn returns a column instance.

func (*Column) DefString

func (col *Column) DefString() string

String returns the string representation.

func (*Column) IsName added in v0.9.1

func (col *Column) IsName(name string) bool

IsName returns true whether the column name is the specified one.

func (*Column) Name

func (col *Column) Name() string

Name returns the column name.

func (*Column) SetDef added in v0.9.1

func (col *Column) SetDef(data *DataDef) error

SetDef sets the column definition to update the column value.

func (*Column) String

func (col *Column) String() string

String returns the string representation.

type ColumnList added in v0.9.1

type ColumnList []*Column

ColumnList represens a column array.

func NewColumns

func NewColumns() ColumnList

NewColumns returns a column array instance.

func NewColumnsWith

func NewColumnsWith(columns ...*Column) ColumnList

NewColumnsWith returns a column array instance with the specified columns.

func (ColumnList) ColumnByName added in v0.9.1

func (columns ColumnList) ColumnByName(name string) (*Column, error)

ColumnByName returns a column by the specified name.

func (ColumnList) Columns added in v0.9.1

func (columns ColumnList) Columns() ColumnList

Column returns a column array.

func (ColumnList) DefString added in v0.9.1

func (columns ColumnList) DefString() string

DefString returns a string representation of the the colum definitions.

func (ColumnList) IsSelectAll added in v0.9.1

func (columns ColumnList) IsSelectAll() bool

IsSelectAll returns true if the column list is "*".

func (ColumnList) NameString added in v0.9.1

func (columns ColumnList) NameString() string

NameString returns a string representation of the the colum names.

func (ColumnList) Names added in v0.9.1

func (columns ColumnList) Names() []string

Names returns a column name array.

func (ColumnList) SetSchema added in v0.9.1

func (columns ColumnList) SetSchema(schema *Schema) error

SetSchema sets a schema to update column values.

func (ColumnList) ValueString added in v0.9.1

func (columns ColumnList) ValueString() string

ValueString returns a string representation of the the colum values.

type ColumnOption added in v0.9.1

type ColumnOption = func(*Column)

ColumnOption represents a column option function.

type Condition added in v0.9.1

type Condition struct {
	// contains filtered or unexported fields
}

Condition represents a where condition.

func NewConditionWith added in v0.9.1

func NewConditionWith(expr Expr) *Condition

NewConditionWith returns a new where condition instance with the specified parameters.

func (*Condition) Expr added in v0.9.1

func (w *Condition) Expr() Expr

Expr returns the top expression.

func (*Condition) IsEmpty added in v0.9.1

func (w *Condition) IsEmpty() bool

IsEmpty returns true if the where condition is empty.

func (*Condition) String added in v0.9.1

func (w *Condition) String() string

String returns the string representation.

func (*Condition) Where added in v0.9.1

func (w *Condition) Where() *Condition

Where returns the table.

type CreateDatabase

type CreateDatabase struct {
	*Database
	*IfNotExistsOpt
}

CreateDatabase is a "CREATE DATABASE" statement.

func NewCreateDatabaseWith

func NewCreateDatabaseWith(name string, ifne *IfNotExistsOpt) *CreateDatabase

NewCreateDatabaseWith returns a new CreateDatabase statement instance with the specified options.

func (*CreateDatabase) StatementType

func (stmt *CreateDatabase) StatementType() StatementType

StatementType returns the statement type.

func (*CreateDatabase) String

func (stmt *CreateDatabase) String() string

String returns the statement string representation.

type CreateIndex

type CreateIndex struct {
	*Schema
	*IfNotExistsOpt
}

CreateIndex is a "CREATE INDEX" statement.

func NewCreateIndexWith

func NewCreateIndexWith(schema *Schema, ifne *IfNotExistsOpt) *CreateIndex

NewCreateIndexWith returns a new CreateIndex statement instance with the specified parameters.

func (*CreateIndex) StatementType

func (stmt *CreateIndex) StatementType() StatementType

StatementType returns the statement type.

func (*CreateIndex) String

func (stmt *CreateIndex) String() string

String returns the statement string representation.

type CreateTable

type CreateTable struct {
	*IfNotExistsOpt
	// contains filtered or unexported fields
}

CreateTable is a "CREATE TABLE" statement.

func NewCreateTableWith

func NewCreateTableWith(schema *Schema, ifne *IfNotExistsOpt) *CreateTable

NewCreateTableWith returns a new CreateTable statement instance with the specified options.

func (*CreateTable) Schema added in v0.9.1

func (stmt *CreateTable) Schema() *Schema

Schema returns the schema.

func (*CreateTable) StatementType

func (stmt *CreateTable) StatementType() StatementType

StatementType returns the statement type.

func (*CreateTable) String

func (stmt *CreateTable) String() string

String returns the statement string representation.

func (*CreateTable) TableName added in v0.9.1

func (stmt *CreateTable) TableName() string

TableName returns the table name.

type DataDef added in v0.9.1

type DataDef struct {
	Type   DataType
	Length int
}

DataDef represents a data definition.

func NewDataFrom

func NewDataFrom(s string, l int) (*DataDef, error)

NewDataFrom returns the data type of the specified string.

func NewDataWith

func NewDataWith(t DataType, l int) *DataDef

NewDataWith returns a new DataType instance with the specified type and length.

func (*DataDef) DataLength added in v0.9.1

func (da *DataDef) DataLength() int

DataLength returns the column data length.

func (*DataDef) DataType added in v0.9.1

func (da *DataDef) DataType() DataType

DataType returns the column data type.

func (*DataDef) String added in v0.9.1

func (da *DataDef) String() string

String returns the string representation.

type DataType

type DataType uint8

DataType represents a data type.

func (DataType) String

func (t DataType) String() string

String returns the string representation.

type Database

type Database struct {
	// contains filtered or unexported fields
}

Database represents a database.

func NewDatabaseWith

func NewDatabaseWith(name string) *Database

NewDatabaseWith returns a new Database instance with the specified name.

func (*Database) Database

func (db *Database) Database() *Database

Database returns the database.

func (*Database) DatabaseName added in v0.9.1

func (db *Database) DatabaseName() string

DatabaseName returns the database name.

func (*Database) String

func (db *Database) String() string

String returns the string representation.

type Delete

type Delete struct {
	*Table
	*Condition
}

Delete is a "DELETE" statement.

func NewDeleteWith

func NewDeleteWith(tbl *Table, w *Condition) *Delete

NewDeleteWith returns a new Delete statement instance with the specified parameters.

func (*Delete) StatementType

func (stmt *Delete) StatementType() StatementType

StatementType returns the statement type.

func (*Delete) String

func (stmt *Delete) String() string

String returns the statement string representation.

type DropDatabase

type DropDatabase struct {
	*Database
	*IfExistsOpt
}

DropDatabase is a "DROP DATABASE" statement.

func NewDropDatabaseWith

func NewDropDatabaseWith(name string, ife *IfExistsOpt) *DropDatabase

NewDropDatabaseWith returns a new DropDatabase statement instance with the specified parameters.

func (*DropDatabase) StatementType

func (stmt *DropDatabase) StatementType() StatementType

StatementType returns the statement type.

func (*DropDatabase) String

func (stmt *DropDatabase) String() string

String returns the statement string representation.

type DropIndex

type DropIndex struct {
	*Index
	*Schema
	*IfExistsOpt
}

DropIndex is a "DROP INDEX" statement.

func NewDropIndexWith

func NewDropIndexWith(schemaName string, idxName string, ife *IfExistsOpt) *DropIndex

NewDropIndexWith returns a new DropIndex statement instance with the specified parameters.

func (*DropIndex) StatementType

func (stmt *DropIndex) StatementType() StatementType

StatementType returns the statement type.

func (*DropIndex) String

func (stmt *DropIndex) String() string

String returns the statement string representation.

type DropTable

type DropTable struct {
	*Schema
	*Table
	*IfExistsOpt
}

DropTable is a "DROP TABLE" statement.

func NewDropTableWith

func NewDropTableWith(schemaName string, tblName string, ife *IfExistsOpt) *DropTable

NewDropTableWith returns a new DropTable statement instance with the specified parameters.

func (*DropTable) StatementType

func (stmt *DropTable) StatementType() StatementType

StatementType returns the statement type.

func (*DropTable) String

func (stmt *DropTable) String() string

String returns the statement string representation.

type Expr

type Expr interface {
	// String returns the index string representation.
	String() string
}

Expr represents an expression.

type IfExistsOpt added in v0.9.1

type IfExistsOpt struct {
	// contains filtered or unexported fields
}

IfExistsOpt represents a IF EXISTS option.

func NewIfExistsWith

func NewIfExistsWith(v bool) *IfExistsOpt

NewIfExistsWith returns a new IfExists option instance.

func (*IfExistsOpt) IfExists added in v0.9.1

func (opt *IfExistsOpt) IfExists() bool

IfExists returns the IF EXISTS option.

func (*IfExistsOpt) String added in v0.9.1

func (opt *IfExistsOpt) String() string

String returns the string representation.

type IfNotExistsOpt added in v0.9.1

type IfNotExistsOpt struct {
	// contains filtered or unexported fields
}

IfNotExistsOpt represents a IF NOT EXISTS option.

func NewIfNotExistsWith

func NewIfNotExistsWith(v bool) *IfNotExistsOpt

NewIfNotExistsWith returns a new IfNotExists option instance.

func (*IfNotExistsOpt) IfNotExists added in v0.9.1

func (opt *IfNotExistsOpt) IfNotExists() bool

IfNotExists returns the IF NOT EXISTS option.

func (*IfNotExistsOpt) String added in v0.9.1

func (opt *IfNotExistsOpt) String() string

String returns the string representation.

type Index

type Index struct {
	ColumnList
	// contains filtered or unexported fields
}

Index represents a index.

func NewIndexWith

func NewIndexWith(name string, t IndexType, columns ColumnList) *Index

NewIndexWith returns a new index instance.

func NewPrimaryIndexWith

func NewPrimaryIndexWith(columns ColumnList) *Index

NewPrimaryIndexWith returns a new primary index instance.

func NewSecondaryIndexWith

func NewSecondaryIndexWith(name string, columns ColumnList) *Index

NewSecondaryIndexWith returns a new secondary index instance.

func (*Index) DefString

func (idx *Index) DefString() string

DefString returns the index definition string representation.

func (*Index) Name

func (idx *Index) Name() string

Name returns the index name.

func (*Index) String

func (idx *Index) String() string

String returns the index string representation.

func (*Index) Type

func (idx *Index) Type() IndexType

Type returns the index type.

type IndexList added in v0.9.1

type IndexList []*Index

IndexList represents an index array.

func NewIndexes

func NewIndexes() IndexList

NewIndexes returns a new Indexes instance.

func (IndexList) DefString added in v0.9.1

func (indexes IndexList) DefString() string

DefString returns the index definition string representation.

func (IndexList) Indexes added in v0.9.1

func (indexes IndexList) Indexes() IndexList

Indexes returns an index array.

type IndexType

type IndexType uint8

IndexType represents a index type.

const (
	UnknownIndex   IndexType = 0
	PrimaryIndex   IndexType = 1
	SecondaryIndex IndexType = 2
)

func (IndexType) String

func (t IndexType) String() string

String returns the string representation.

type Insert

type Insert struct {
	*Table
	ColumnList
}

Insert is a "INSERT" statement.

func NewInsertWith

func NewInsertWith(tbl *Table, columns ColumnList) *Insert

NewInsertWith returns a new Insert statement instance with the specified parameters.

func (*Insert) StatementType

func (stmt *Insert) StatementType() StatementType

StatementType returns the statement type.

func (*Insert) String

func (stmt *Insert) String() string

String returns the statement string representation.

type Literal

type Literal struct {
	// contains filtered or unexported fields
}

Literal represents a constant value.

func NewLiteralWith

func NewLiteralWith(v any, opts ...LiteralOption) *Literal

NewLiteralWith returns a new Literal instance with the specified value.

func (*Literal) SetType added in v0.9.1

func (lit *Literal) SetType(t LiteralType) *Literal

SetType sets a type.

func (*Literal) SetValue added in v0.9.1

func (lit *Literal) SetValue(v any) *Literal

SetValue sets a value.

func (*Literal) String

func (lit *Literal) String() string

String returns the string representation.

func (*Literal) Value

func (lit *Literal) Value() any

Value returns the literal value.

func (*Literal) ValueString added in v0.9.1

func (lit *Literal) ValueString() string

ValueString returns the string representation.

func (*Literal) ValueType added in v0.9.1

func (lit *Literal) ValueType() LiteralType

ValueType returns the literal type.

type LiteralOption added in v0.9.1

type LiteralOption = func(*Literal)

LiteralOption represents a literal option function.

type LiteralType added in v0.9.1

type LiteralType uint8

LiteralType represents a literal type.

type OrExpr

type OrExpr struct {
	Left  Expr
	Right Expr
}

OrExpr represents an OR expression.

type OrderType

type OrderType uint8

OrderType represents an ordertype.

const (
	// OrderTypeNone represents none order.
	OrderTypeNone OrderType = iota
	// OrderTypeAsc represents asc order.
	OrderTypeAsc
	// OrderTypeDesc represents desc order.
	OrderTypeDesc
)

func (OrderType) String

func (t OrderType) String() string

String returns the string representation.

type Schema

type Schema struct {
	*Table
	ColumnList
	IndexList
}

Schema represents a table schema.

func NewSchemaWith

func NewSchemaWith(name string, opts ...SchemaOption) *Schema

NewSchemaWith returns a new schema statement instance with the parameters.

func (*Schema) SchemaName added in v0.9.1

func (schema *Schema) SchemaName() string

SchemaName returns the table name.

type SchemaOption added in v0.9.1

type SchemaOption = func(*Schema)

SchemaOption represents a schema option function.

type Select

type Select struct {
	TableList
	ColumnList
	*Condition
}

Select is a "SELECT" statement.

func NewSelectWith

func NewSelectWith(columns ColumnList, tbls TableList, w *Condition) *Select

NewSelectWith returns a new Select statement instance with the specified parameters.

func (*Select) StatementType

func (stmt *Select) StatementType() StatementType

StatementType returns the statement type.

func (*Select) String

func (stmt *Select) String() string

String returns the statement string representation.

type Statement

type Statement interface {
	// StatementType returns the statement type.
	StatementType() StatementType
	// String returns the statement string representation.
	String() string
}

Statement represents a statement interface.

type StatementList

type StatementList = []Statement

StatementList represents a statement list.

func NewStatementList

func NewStatementList() StatementList

NewStatementList returns a new statement list.

type StatementType

type StatementType uint8

StatementType is a statement type.

type Table

type Table struct {
	// contains filtered or unexported fields
}

Table represents a table.

func NewTableWith

func NewTableWith(name string) *Table

NewTableWith returns a new Table instance with the specified name.

func (*Table) String

func (tbl *Table) String() string

String returns the string representation.

func (*Table) Table

func (tbl *Table) Table() *Table

Table returns the table.

func (*Table) TableName added in v0.9.1

func (tbl *Table) TableName() string

TableName returns the table name.

type TableList added in v0.9.1

type TableList []*Table

TableList represens a column array.

func NewTables

func NewTables() TableList

NewTables returns a column array instance.

func NewTablesWith

func NewTablesWith(columns ...*Table) TableList

NewTablesWith returns a column array instance with the specified columns.

func (TableList) String added in v0.9.1

func (tbls TableList) String() string

String returns a string representation.

func (TableList) Tables added in v0.9.1

func (tbls TableList) Tables() TableList

Table returns a column array.

type Update

type Update struct {
	*Table
	ColumnList
	*Condition
}

Update is a "UPDATE" statement.

func NewUpdateWith

func NewUpdateWith(tbl *Table, columns ColumnList, w *Condition) *Update

NewUpdateWith returns a new Update statement instance with the specified parameters.

func (*Update) StatementType

func (stmt *Update) StatementType() StatementType

StatementType returns the statement type.

func (*Update) String

func (stmt *Update) String() string

String returns the statement string representation.

Jump to

Keyboard shortcuts

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