Documentation
¶
Overview ¶
Package sqlbuilder contains functionality for building SQL from the AST.
Index ¶
- func BaseOps() map[string]string
- type BaseFragmentBuilder
- func (fb *BaseFragmentBuilder) Expr(expr *ast.Expr) (string, error)
- func (fb *BaseFragmentBuilder) FromTable(tblSel *ast.TblSelector) (string, error)
- func (fb *BaseFragmentBuilder) Function(fn *ast.Func) (string, error)
- func (fb *BaseFragmentBuilder) Join(fnJoin *ast.Join) (string, error)
- func (fb *BaseFragmentBuilder) Operator(op *ast.Operator) (string, error)
- func (fb *BaseFragmentBuilder) Range(rr *ast.RowRange) (string, error)
- func (fb *BaseFragmentBuilder) SelectAll(tblSel *ast.TblSelector) (string, error)
- func (fb *BaseFragmentBuilder) SelectCols(cols []ast.ColExpr) (string, error)
- func (fb *BaseFragmentBuilder) Where(where *ast.Where) (string, error)
- type BaseQueryBuilder
- type FragmentBuilder
- type QueryBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BaseFragmentBuilder ¶
type BaseFragmentBuilder struct {
Log lg.Log
// Quote is the driver-specific quote rune, e.g. " or `
Quote string
ColQuote string
Ops map[string]string
}
BaseFragmentBuilder is a default implementation of sqlbuilder.FragmentBuilder.
func (*BaseFragmentBuilder) Expr ¶
func (fb *BaseFragmentBuilder) Expr(expr *ast.Expr) (string, error)
Expr implements FragmentBuilder.
func (*BaseFragmentBuilder) FromTable ¶
func (fb *BaseFragmentBuilder) FromTable(tblSel *ast.TblSelector) (string, error)
FromTable implements FragmentBuilder.
func (*BaseFragmentBuilder) Function ¶
func (fb *BaseFragmentBuilder) Function(fn *ast.Func) (string, error)
Function implements FragmentBuilder.
func (*BaseFragmentBuilder) Join ¶
func (fb *BaseFragmentBuilder) Join(fnJoin *ast.Join) (string, error)
Join implements FragmentBuilder.
func (*BaseFragmentBuilder) Operator ¶
func (fb *BaseFragmentBuilder) Operator(op *ast.Operator) (string, error)
Operator implements FragmentBuilder.
func (*BaseFragmentBuilder) Range ¶
func (fb *BaseFragmentBuilder) Range(rr *ast.RowRange) (string, error)
Range implements FragmentBuilder.
func (*BaseFragmentBuilder) SelectAll ¶
func (fb *BaseFragmentBuilder) SelectAll(tblSel *ast.TblSelector) (string, error)
SelectAll implements FragmentBuilder.
func (*BaseFragmentBuilder) SelectCols ¶
func (fb *BaseFragmentBuilder) SelectCols(cols []ast.ColExpr) (string, error)
SelectCols implements FragmentBuilder.
type BaseQueryBuilder ¶
type BaseQueryBuilder struct {
SelectClause string
FromClause string
WhereClause string
RangeClause string
OrderByClause string
}
BaseQueryBuilder is a default implementation of sqlbuilder.QueryBuilder.
func (*BaseQueryBuilder) SQL ¶
func (qb *BaseQueryBuilder) SQL() (string, error)
SQL implements QueryBuilder.
func (*BaseQueryBuilder) SetFrom ¶
func (qb *BaseQueryBuilder) SetFrom(from string)
SetFrom implements QueryBuilder.
func (*BaseQueryBuilder) SetRange ¶
func (qb *BaseQueryBuilder) SetRange(rng string)
SetRange implements QueryBuilder.
func (*BaseQueryBuilder) SetSelect ¶
func (qb *BaseQueryBuilder) SetSelect(cols string)
SetSelect implements QueryBuilder.
func (*BaseQueryBuilder) SetWhere ¶
func (qb *BaseQueryBuilder) SetWhere(where string)
SetWhere implements QueryBuilder.
type FragmentBuilder ¶
type FragmentBuilder interface {
// FromTable renders a FROM table fragment.
FromTable(tblSel *ast.TblSelector) (string, error)
// SelectCols renders a column names/expression fragment.
SelectCols(cols []ast.ColExpr) (string, error)
// SelectAll renders a SELECT * fragment.
SelectAll(tblSel *ast.TblSelector) (string, error)
// Range renders a row range fragment.
Range(rr *ast.RowRange) (string, error)
// Join renders a join fragment.
Join(fnJoin *ast.Join) (string, error)
// Function renders a function fragment.
Function(fn *ast.Func) (string, error)
// Where renders a WHERE fragment.
Where(where *ast.Where) (string, error)
// Expr renders an expression fragment.
Expr(expr *ast.Expr) (string, error)
// Operator renders an operator fragment.
Operator(op *ast.Operator) (string, error)
}
FragmentBuilder renders driver-specific SQL fragments.
type QueryBuilder ¶
type QueryBuilder interface {
// SetSelect sets the columns to select.
SetSelect(cols string)
// SetFrom sets the FROM clause.
SetFrom(from string)
// SetWhere sets the WHERE clause.
SetWhere(where string)
// SetRange sets the range clause.
SetRange(rng string)
// SQL renders the SQL query.
SQL() (string, error)
}
QueryBuilder provides an abstraction for building a SQL query.