Documentation
¶
Overview ¶
Package expr proviedes a simple SQL expression parser and builder. It wraps the rqlite/sql package and provides a more convenient API that contains only what's needed for the go-spacemesh codebase.
Index ¶
- Constants
- func Asc(expr Expr) *rsql.OrderingTerm
- func Desc(expr Expr) *rsql.OrderingTerm
- func Ident(name string) *rsql.Ident
- func MustParse(s string) rsql.Expr
- func MustParseStatement(s string) rsql.Statement
- func Number(value string) *rsql.NumberLit
- func TableSource(name string) rsql.Source
- type Expr
- type SelectBuilder
- func (sb SelectBuilder) Columns(columns ...any) SelectBuilder
- func (sb SelectBuilder) From(s rsql.Source) SelectBuilder
- func (sb SelectBuilder) Get() *rsql.SelectStatement
- func (sb SelectBuilder) Limit(limit Expr) SelectBuilder
- func (sb SelectBuilder) OrderBy(terms ...*rsql.OrderingTerm) SelectBuilder
- func (sb SelectBuilder) String() string
- func (sb SelectBuilder) Where(s Expr) SelectBuilder
- type Statement
Constants ¶
const ( NE = rsql.NE // != EQ = rsql.EQ // = LE = rsql.LE // <= LT = rsql.LT // < GT = rsql.GT // > GE = rsql.GE // >= BITAND = rsql.BITAND // & BITOR = rsql.BITOR // | BITNOT = rsql.BITNOT // ! LSHIFT = rsql.LSHIFT // << RSHIFT = rsql.RSHIFT // >> PLUS = rsql.PLUS // + MINUS = rsql.MINUS // - STAR = rsql.STAR // * SLASH = rsql.SLASH // / REM = rsql.REM // % CONCAT = rsql.CONCAT // || DOT = rsql.DOT // . AND = rsql.AND OR = rsql.OR NOT = rsql.NOT )
SQL operations.
Variables ¶
This section is empty.
Functions ¶
func MustParseStatement ¶
MustParseStatement parses an SQL statement and panics if there's an error.
func TableSource ¶
TableSource constructs a Source clause for SELECT statement that corresponds to selecting from a single table with the specified name.
Types ¶
type Expr ¶
Expr represents a parsed SQL expression.
func ColumnExpr ¶
ColumnExpr returns nth column expression from the SELECT statement.
func MaybeAnd ¶
MaybeAnd joins together several SQL expressions with AND, ignoring any nil exprs. If no non-nil expressions are passed, nil is returned. If a single non-nil expression is passed, that single expression is returned. Otherwise, the expressions are joined together with ANDs: a AND b AND c AND d.
type SelectBuilder ¶
type SelectBuilder struct {
// contains filtered or unexported fields
}
SelectBuilder is used to construct a SELECT statement.
func SelectBasedOn ¶
func SelectBasedOn(st Statement) SelectBuilder
SelectBasedOn returns a SELECT statement builder based on the specified SELECT statement. The statement must be parseable, otherwise SelectBasedOn panics. The builder methods can be used to alter the statement.
func (SelectBuilder) Columns ¶
func (sb SelectBuilder) Columns(columns ...any) SelectBuilder
Columns sets columns in the SELECT statement.
func (SelectBuilder) From ¶
func (sb SelectBuilder) From(s rsql.Source) SelectBuilder
From adds FROM clause to the SELECT statement.
func (SelectBuilder) Get ¶
func (sb SelectBuilder) Get() *rsql.SelectStatement
Get returns the underlying SELECT statement.
func (SelectBuilder) Limit ¶
func (sb SelectBuilder) Limit(limit Expr) SelectBuilder
From adds LIMIT clause to the SELECT statement.
func (SelectBuilder) OrderBy ¶
func (sb SelectBuilder) OrderBy(terms ...*rsql.OrderingTerm) SelectBuilder
From adds ORDER BY clause to the SELECT statement.
func (SelectBuilder) String ¶
func (sb SelectBuilder) String() string
String returns the underlying SELECT statement as a string.
func (SelectBuilder) Where ¶
func (sb SelectBuilder) Where(s Expr) SelectBuilder
From adds WHERE clause to the SELECT statement.