Documentation ¶
Overview ¶
Package sqlbuilder contains functionality for building SQL from the ast.
Index ¶
- func BaseOps() map[string]string
- type BaseFragmentBuilder
- func (fb *BaseFragmentBuilder) Distinct(n *ast.UniqueNode) (string, error)
- func (fb *BaseFragmentBuilder) Expr(expr *ast.ExprNode) (string, error)
- func (fb *BaseFragmentBuilder) FromTable(tblSel *ast.TblSelectorNode) (string, error)
- func (fb *BaseFragmentBuilder) Function(fn *ast.FuncNode) (string, error)
- func (fb *BaseFragmentBuilder) GroupBy(gb *ast.GroupByNode) (string, error)
- func (fb *BaseFragmentBuilder) Join(fnJoin *ast.JoinNode) (string, error)
- func (fb *BaseFragmentBuilder) Operator(op *ast.OperatorNode) (string, error)
- func (fb *BaseFragmentBuilder) OrderBy(ob *ast.OrderByNode) (string, error)
- func (fb *BaseFragmentBuilder) Range(rr *ast.RowRangeNode) (string, error)
- func (fb *BaseFragmentBuilder) SelectCols(cols []ast.ResultColumn) (string, error)
- func (fb *BaseFragmentBuilder) Where(where *ast.WhereNode) (string, error)
- type BaseQueryBuilder
- func (qb *BaseQueryBuilder) Render() (string, error)
- func (qb *BaseQueryBuilder) SetColumns(cols string)
- func (qb *BaseQueryBuilder) SetDistinct(d string)
- func (qb *BaseQueryBuilder) SetFrom(from string)
- func (qb *BaseQueryBuilder) SetGroupBy(gb string)
- func (qb *BaseQueryBuilder) SetOrderBy(ob string)
- func (qb *BaseQueryBuilder) SetRange(rng string)
- func (qb *BaseQueryBuilder) SetWhere(where string)
- 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 // QuoteFn quotes an identifier. QuoteFn func(string) string Ops map[string]string }
BaseFragmentBuilder is a default implementation of sqlbuilder.FragmentBuilder.
func (*BaseFragmentBuilder) Distinct ¶ added in v0.30.0
func (fb *BaseFragmentBuilder) Distinct(n *ast.UniqueNode) (string, error)
Distinct implements FragmentBuilder.
func (*BaseFragmentBuilder) Expr ¶
func (fb *BaseFragmentBuilder) Expr(expr *ast.ExprNode) (string, error)
Expr implements FragmentBuilder.
func (*BaseFragmentBuilder) FromTable ¶
func (fb *BaseFragmentBuilder) FromTable(tblSel *ast.TblSelectorNode) (string, error)
FromTable implements FragmentBuilder.
func (*BaseFragmentBuilder) Function ¶
func (fb *BaseFragmentBuilder) Function(fn *ast.FuncNode) (string, error)
Function implements FragmentBuilder.
func (*BaseFragmentBuilder) GroupBy ¶ added in v0.28.0
func (fb *BaseFragmentBuilder) GroupBy(gb *ast.GroupByNode) (string, error)
GroupBy implements FragmentBuilder.
func (*BaseFragmentBuilder) Join ¶
func (fb *BaseFragmentBuilder) Join(fnJoin *ast.JoinNode) (string, error)
Join implements FragmentBuilder.
func (*BaseFragmentBuilder) Operator ¶
func (fb *BaseFragmentBuilder) Operator(op *ast.OperatorNode) (string, error)
Operator implements FragmentBuilder.
func (*BaseFragmentBuilder) OrderBy ¶ added in v0.27.0
func (fb *BaseFragmentBuilder) OrderBy(ob *ast.OrderByNode) (string, error)
OrderBy implements FragmentBuilder.
func (*BaseFragmentBuilder) Range ¶
func (fb *BaseFragmentBuilder) Range(rr *ast.RowRangeNode) (string, error)
Range implements FragmentBuilder.
func (*BaseFragmentBuilder) SelectCols ¶
func (fb *BaseFragmentBuilder) SelectCols(cols []ast.ResultColumn) (string, error)
SelectCols implements FragmentBuilder.
type BaseQueryBuilder ¶
type BaseQueryBuilder struct { Distinct string Columns string From string Where string GroupBy string OrderBy string Range string }
BaseQueryBuilder is a default implementation of sqlbuilder.QueryBuilder.
func (*BaseQueryBuilder) Render ¶ added in v0.30.0
func (qb *BaseQueryBuilder) Render() (string, error)
Render implements QueryBuilder.
func (*BaseQueryBuilder) SetColumns ¶ added in v0.30.0
func (qb *BaseQueryBuilder) SetColumns(cols string)
SetColumns implements QueryBuilder.
func (*BaseQueryBuilder) SetDistinct ¶ added in v0.30.0
func (qb *BaseQueryBuilder) SetDistinct(d string)
SetDistinct implements QueryBuilder.
func (*BaseQueryBuilder) SetFrom ¶
func (qb *BaseQueryBuilder) SetFrom(from string)
SetFrom implements QueryBuilder.
func (*BaseQueryBuilder) SetGroupBy ¶ added in v0.28.0
func (qb *BaseQueryBuilder) SetGroupBy(gb string)
SetGroupBy implements QueryBuilder.
func (*BaseQueryBuilder) SetOrderBy ¶ added in v0.27.0
func (qb *BaseQueryBuilder) SetOrderBy(ob string)
SetOrderBy implements QueryBuilder.
func (*BaseQueryBuilder) SetRange ¶
func (qb *BaseQueryBuilder) SetRange(rng string)
SetRange 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.TblSelectorNode) (string, error) // SelectCols renders a column names/expression fragment. // It shouldn't render the actual SELECT keyword. Example: // // "first_name", "last name" AS given_name SelectCols(cols []ast.ResultColumn) (string, error) // Range renders a row range fragment. Range(rr *ast.RowRangeNode) (string, error) // OrderBy renders the ORDER BY fragment. OrderBy(ob *ast.OrderByNode) (string, error) // GroupBy renders the GROUP BY fragment. GroupBy(gb *ast.GroupByNode) (string, error) // Join renders a join fragment. Join(fnJoin *ast.JoinNode) (string, error) // Function renders a function fragment. Function(fn *ast.FuncNode) (string, error) // Where renders a WHERE fragment. Where(where *ast.WhereNode) (string, error) // Expr renders an expression fragment. Expr(expr *ast.ExprNode) (string, error) // Operator renders an operator fragment. Operator(op *ast.OperatorNode) (string, error) // Distinct renders the DISTINCT fragment. Returns an // empty string if n is nil. Distinct(n *ast.UniqueNode) (string, error) }
FragmentBuilder renders driver-specific SQL fragments.
type QueryBuilder ¶
type QueryBuilder interface { // SetColumns sets the columns to select. SetColumns(cols string) // SetFrom sets the FROM clause. SetFrom(from string) // SetWhere sets the WHERE clause. SetWhere(where string) // SetRange sets the LIMIT ... OFFSET clause. SetRange(rng string) // SetOrderBy sets the ORDER BY clause. SetOrderBy(ob string) // SetGroupBy sets the GROUP BY clause. SetGroupBy(gb string) // SetDistinct sets the DISTINCT clause. SetDistinct(d string) // Render renders the SQL query. Render() (string, error) }
QueryBuilder provides an abstraction for building a SQL query.