Documentation
¶
Index ¶
- Variables
- type Buffer
- type BufferFactory
- type ColumnMapper
- type Delete
- type Filter
- func (f Filter) BuildComparison(buffer *Buffer, table string, filter rel.FilterQuery, queryWriter QueryWriter)
- func (f Filter) BuildInclusion(buffer *Buffer, table string, filter rel.FilterQuery, queryWriter QueryWriter)
- func (f Filter) BuildLogical(buffer *Buffer, table, op string, inner []rel.FilterQuery, ...)
- func (f Filter) Write(buffer *Buffer, table string, filter rel.FilterQuery, queryWriter QueryWriter)
- type Index
- type Insert
- type InsertAll
- type Query
- func (q Query) Build(query rel.Query) (string, []interface{})
- func (q Query) Write(buffer *Buffer, query rel.Query)
- func (q Query) WriteFrom(buffer *Buffer, table string)
- func (q Query) WriteGroupBy(buffer *Buffer, table string, fields []string)
- func (q Query) WriteHaving(buffer *Buffer, table string, filter rel.FilterQuery)
- func (q Query) WriteJoin(buffer *Buffer, table string, joins []rel.JoinQuery)
- func (q Query) WriteLimitOffet(buffer *Buffer, limit rel.Limit, offset rel.Offset)
- func (q Query) WriteOrderBy(buffer *Buffer, table string, orders []rel.SortQuery)
- func (q Query) WriteQuery(buffer *Buffer, query rel.Query)
- func (q Query) WriteSelect(buffer *Buffer, table string, selectQuery rel.SelectQuery)
- func (q Query) WriteWhere(buffer *Buffer, table string, filter rel.FilterQuery)
- type QueryWriter
- type Quote
- type Quoter
- type Table
- func (t Table) Build(table rel.Table) string
- func (t Table) WriteAlterTable(buffer *Buffer, table rel.Table)
- func (t Table) WriteColumn(buffer *Buffer, column rel.Column)
- func (t Table) WriteCreateTable(buffer *Buffer, table rel.Table)
- func (t Table) WriteDropTable(buffer *Buffer, table rel.Table)
- func (t Table) WriteKey(buffer *Buffer, key rel.Key)
- func (t Table) WriteOptions(buffer *Buffer, options string)
- func (t Table) WriteRenameTable(buffer *Buffer, table rel.Table)
- type Update
Constants ¶
This section is empty.
Variables ¶
var UnescapeCharacter byte = '^'
UnescapeCharacter disable field escaping when it starts with this character.
Functions ¶
This section is empty.
Types ¶
type Buffer ¶
type Buffer struct {
strings.Builder
Quoter Quoter
ValueConverter driver.ValueConverter
ArgumentPlaceholder string
ArgumentOrdinal bool
InlineValues bool
BoolTrueValue string
BoolFalseValue string
// contains filtered or unexported fields
}
Buffer is used to build query string.
func (*Buffer) AddArguments ¶
func (b *Buffer) AddArguments(args ...interface{})
AddArguments appends multiple arguments without writing placeholder query..
func (*Buffer) WriteField ¶ added in v0.3.0
WriteField writes table and field name.
func (*Buffer) WritePlaceholder ¶
func (b *Buffer) WritePlaceholder()
WritePlaceholder without adding argument. argument can be added later using AddArguments function.
func (*Buffer) WriteValue ¶
func (b *Buffer) WriteValue(value interface{})
WriteValue query placeholder and append value to argument.
type BufferFactory ¶
type BufferFactory struct {
Quoter Quoter
ValueConverter driver.ValueConverter
ArgumentPlaceholder string
ArgumentOrdinal bool
InlineValues bool
BoolTrueValue string
BoolFalseValue string
}
BufferFactory is used to create buffer based on shared settings.
func (BufferFactory) Create ¶
func (bf BufferFactory) Create() Buffer
type Delete ¶
type Delete struct {
BufferFactory BufferFactory
Query QueryWriter
Filter Filter
}
Delete builder.
type Filter ¶
type Filter struct{}
Filter builder.
func (Filter) BuildComparison ¶
func (f Filter) BuildComparison(buffer *Buffer, table string, filter rel.FilterQuery, queryWriter QueryWriter)
BuildComparison SQL to buffer.
func (Filter) BuildInclusion ¶
func (f Filter) BuildInclusion(buffer *Buffer, table string, filter rel.FilterQuery, queryWriter QueryWriter)
BuildInclusion SQL to buffer.
func (Filter) BuildLogical ¶
func (f Filter) BuildLogical(buffer *Buffer, table, op string, inner []rel.FilterQuery, queryWriter QueryWriter)
BuildLogical SQL to buffer.
func (Filter) Write ¶
func (f Filter) Write(buffer *Buffer, table string, filter rel.FilterQuery, queryWriter QueryWriter)
Write SQL to buffer.
type Index ¶
type Index struct {
BufferFactory BufferFactory
Query QueryWriter
Filter Filter
DropIndexOnTable bool
SupportFilter bool
}
Index builder.
func (Index) WriteCreateIndex ¶
WriteCreateIndex to buffer
func (Index) WriteDropIndex ¶
WriteDropIndex to buffer
func (Index) WriteOptions ¶
WriteOptions sql to buffer.
type Insert ¶
type Insert struct {
BufferFactory BufferFactory
ReturningPrimaryValue bool
InsertDefaultValues bool
}
Insert builder.
type InsertAll ¶
type InsertAll struct {
BufferFactory BufferFactory
ReturningPrimaryValue bool
}
InsertAll builder.
type Query ¶
type Query struct {
BufferFactory BufferFactory
Filter Filter
}
Query builder.
func (Query) WriteGroupBy ¶
WriteGroupBy SQL to buffer.
func (Query) WriteHaving ¶
func (q Query) WriteHaving(buffer *Buffer, table string, filter rel.FilterQuery)
WriteHaving SQL to buffer.
func (Query) WriteLimitOffet ¶
WriteLimitOffet SQL to buffer.
func (Query) WriteOrderBy ¶
WriteOrderBy SQL to buffer.
func (Query) WriteQuery ¶
WriteQuery SQL to buffer.
func (Query) WriteSelect ¶
func (q Query) WriteSelect(buffer *Buffer, table string, selectQuery rel.SelectQuery)
WriteSelect SQL to buffer.
func (Query) WriteWhere ¶
func (q Query) WriteWhere(buffer *Buffer, table string, filter rel.FilterQuery)
WriteWhere SQL to buffer.
type QueryWriter ¶
type Quote ¶ added in v0.2.0
type Quote struct {
IDPrefix string
IDSuffix string
IDSuffixEscapeChar string
ValueQuote string
ValueQuoteEscapeChar string
}
Quote is default implementation of Quoter interface.
type Quoter ¶ added in v0.2.0
type Quoter interface {
// ID quotes identifiers such as schema, table, or column names.
// ID does not operate on multipart identifiers such as "public.Table",
// it only operates on single identifiers such as "public" and "Table".
ID(name string) string
// Value quotes database values such as string or []byte types as strings
// that are suitable and safe to embed in SQL text. The returned value
// of a string will include all surrounding quotes.
//
// If a value type is not supported it must panic.
Value(v interface{}) string
}
Quoter returns safe and valid SQL strings to use when building a SQL text.
type Table ¶
type Table struct {
BufferFactory BufferFactory
ColumnMapper ColumnMapper
}
Table builder.
func (Table) WriteAlterTable ¶
WriteAlterTable query to buffer.
func (Table) WriteColumn ¶
WriteColumn definition to buffer.
func (Table) WriteCreateTable ¶
WriteCreateTable query to buffer.
func (Table) WriteDropTable ¶
WriteDropTable query to buffer.
func (Table) WriteOptions ¶
WriteOptions sql to buffer.
type Update ¶
type Update struct {
BufferFactory BufferFactory
Query QueryWriter
Filter Filter
}
Update builder.