README ¶
The query package contains the following:
- An AST (Abstract Syntax Tree) for filter expressions
- An Antlr listener/AST visitor which can transform ZitiQL into the filter AST
The general pattern is that when it hits leaf nodes it processes them into filter AST nodes and pushes the results onto a stack. Non-leaf nodes then pop the nodes they need off the stack, create their corresponding filter node and push that onto the stack, and so on up the tree.
Ex: foo = 2
The following get pushed onto the stack
- UntypedSymbolNode(foo)
- BinaryOpEq
- Int64ConstNode(2)
Then a BinaryExprNode is created by popping those three items off the stack.
Typing is done in a second pass, where UntypedSymbolNode is converted to a typed symbol node, hoping an Int64SymbolNode and the BinaryExprNode is converted to an Int64BinaryExprNode.
If you're curious as to what kind of elements make up the AST, take a look at visitor.go. There's a Visit(node ) for every leaf node type and VisitStart/Visit*End for every non-leaf node type.
There are a few node types which are used as place holders until we can apply type information to the AST, such as
- BinaryExprNode
- InArrayExprNode
- BetweenExprNode
- UntypedSymbolNode
- SetFunctionNode
These are replaced by more specific typed nodes during the typing pass.
Type information is expressed via a Symbols interface, which allows retrieving symbol types as well as evaluating symbols. The filter AST provides for the following types:
- Bool
- String
- Int64
- Float64
- Datetime
- Nil
The underlying datastore may convert other types to these types (for example int32 -> int64). Providing more types would provide more flexability and better performance at the cost of more complexity and larger permutations of supported conversions. Int64/Float64 should provide good performance and enough space. If we find we need either better perf by more using smaller types or support for bigint/bigfloat, we can add that later.
Supported automatic type conversions:
- int64 can be converted to float64.
- int64 and float64 can be converted to string
Other type conversions are certainly possible and may be added later.
The Symbols type is the interface which is to be implemented by the underlying data store. The root of a filter AST should be a BoolNode, on which you can call EvalBool(s Symbols) (bool, error)
.
Set Functions The grammer provides for a few set functions
- anyOf
- allOf
These can be used to wrap a symbol. Ex: when filtering services, anyOf(appWans.identity) = <current-user-id>
.
This gets converted to anyOf(appWans.identity = <current-user-id>)
. The elements of the set appWans.identity are inspected and if at least one matches the condition, it will return true.
This is an entity-centric kind of set algebra and is limited in a few ways. It's not a like a true join where you get a full set for each permutation of the source and joined data. Rather you just iterate a set related to the original entity. You also can't do multiple expressions within the set operation. However, it's good enough for the use cases we want to cover here.
Documentation ¶
Index ¶
- Constants
- Variables
- func NodeTypeName(nodeType NodeType) string
- func PostProcess(symbolTypes SymbolTypes, node *BoolNode) error
- type AllOfSetExprNode
- type AndExprNode
- type AnyOfSetExprNode
- type AnyTypeSymbolNode
- func (node *AnyTypeSymbolNode) Accept(visitor Visitor)
- func (node *AnyTypeSymbolNode) EvalBool(s Symbols) bool
- func (node *AnyTypeSymbolNode) EvalDatetime(s Symbols) *time.Time
- func (node *AnyTypeSymbolNode) EvalFloat64(s Symbols) *float64
- func (node *AnyTypeSymbolNode) EvalInt64(s Symbols) *int64
- func (node *AnyTypeSymbolNode) EvalString(s Symbols) *string
- func (node *AnyTypeSymbolNode) GetType() NodeType
- func (node *AnyTypeSymbolNode) IsConst() bool
- func (node *AnyTypeSymbolNode) String() string
- func (node *AnyTypeSymbolNode) Symbol() string
- func (node *AnyTypeSymbolNode) ToFloat64() Float64Node
- type AsStringArrayable
- type BetweenExprNode
- func (node *BetweenExprNode) Accept(visitor Visitor)
- func (node *BetweenExprNode) EvalBool(_ Symbols) bool
- func (*BetweenExprNode) GetType() NodeType
- func (node *BetweenExprNode) IsConst() bool
- func (node *BetweenExprNode) String() string
- func (node *BetweenExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
- type BinaryBoolExprNode
- type BinaryDatetimeExprNode
- type BinaryExprNode
- func (node *BinaryExprNode) Accept(visitor Visitor)
- func (node *BinaryExprNode) EvalBool(_ Symbols) bool
- func (node *BinaryExprNode) GetType() NodeType
- func (node *BinaryExprNode) IsConst() bool
- func (node *BinaryExprNode) String() string
- func (node *BinaryExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
- type BinaryFloat64ExprNode
- type BinaryInt64ExprNode
- type BinaryOp
- type BinaryStringExprNode
- func (node *BinaryStringExprNode) Accept(visitor Visitor)
- func (node *BinaryStringExprNode) EvalBool(s Symbols) bool
- func (node *BinaryStringExprNode) EvalBoolWithSeek(s Symbols, cursor TypeSeekableSetCursor) bool
- func (*BinaryStringExprNode) GetType() NodeType
- func (node *BinaryStringExprNode) IsConst() bool
- func (node *BinaryStringExprNode) IsSeekable() bool
- func (node *BinaryStringExprNode) String() string
- type BoolConstNode
- type BoolNode
- type BoolSymbolNode
- type BoolTypeTransformable
- type BooleanLogicExprNode
- func (node *BooleanLogicExprNode) Accept(visitor Visitor)
- func (node *BooleanLogicExprNode) EvalBool(_ Symbols) bool
- func (node *BooleanLogicExprNode) GetType() NodeType
- func (node *BooleanLogicExprNode) IsConst() bool
- func (node *BooleanLogicExprNode) String() string
- func (node *BooleanLogicExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
- type CountSetExprNode
- func (node *CountSetExprNode) Accept(visitor Visitor)
- func (node *CountSetExprNode) EvalInt64(s Symbols) *int64
- func (node *CountSetExprNode) EvalString(s Symbols) *string
- func (node *CountSetExprNode) GetType() NodeType
- func (node *CountSetExprNode) IsConst() bool
- func (node *CountSetExprNode) String() string
- func (node *CountSetExprNode) Symbol() string
- func (node *CountSetExprNode) ToFloat64() Float64Node
- type DatetimeArrayNode
- type DatetimeBetweenExprNode
- type DatetimeConstNode
- type DatetimeNode
- type DatetimeSymbolNode
- func (node *DatetimeSymbolNode) Accept(visitor Visitor)
- func (node *DatetimeSymbolNode) EvalDatetime(s Symbols) *time.Time
- func (node *DatetimeSymbolNode) GetType() NodeType
- func (node *DatetimeSymbolNode) IsConst() bool
- func (node *DatetimeSymbolNode) String() string
- func (node *DatetimeSymbolNode) Symbol() string
- type DefaultVisitor
- func (d DefaultVisitor) VisitAllOfSetExprNodeEnd(_ *AllOfSetExprNode)
- func (d DefaultVisitor) VisitAllOfSetExprNodeStart(_ *AllOfSetExprNode)
- func (d DefaultVisitor) VisitAndExprNodeEnd(_ *AndExprNode)
- func (d DefaultVisitor) VisitAndExprNodeStart(_ *AndExprNode)
- func (d DefaultVisitor) VisitAnyOfSetExprNodeEnd(_ *AnyOfSetExprNode)
- func (d DefaultVisitor) VisitAnyOfSetExprNodeStart(_ *AnyOfSetExprNode)
- func (d DefaultVisitor) VisitAnyTypeSymbolNode(_ *AnyTypeSymbolNode)
- func (d DefaultVisitor) VisitBetweenExprNodeEnd(*BetweenExprNode)
- func (d DefaultVisitor) VisitBetweenExprNodeStart(*BetweenExprNode)
- func (d DefaultVisitor) VisitBinaryBoolExprNodeEnd(_ *BinaryBoolExprNode)
- func (d DefaultVisitor) VisitBinaryBoolExprNodeStart(_ *BinaryBoolExprNode)
- func (d DefaultVisitor) VisitBinaryDatetimeExprNodeEnd(_ *BinaryDatetimeExprNode)
- func (d DefaultVisitor) VisitBinaryDatetimeExprNodeStart(_ *BinaryDatetimeExprNode)
- func (d DefaultVisitor) VisitBinaryExprNodeEnd(*BinaryExprNode)
- func (d DefaultVisitor) VisitBinaryExprNodeStart(*BinaryExprNode)
- func (d DefaultVisitor) VisitBinaryFloat64ExprNodeEnd(_ *BinaryFloat64ExprNode)
- func (d DefaultVisitor) VisitBinaryFloat64ExprNodeStart(_ *BinaryFloat64ExprNode)
- func (d DefaultVisitor) VisitBinaryInt64ExprNodeEnd(_ *BinaryInt64ExprNode)
- func (d DefaultVisitor) VisitBinaryInt64ExprNodeStart(_ *BinaryInt64ExprNode)
- func (d DefaultVisitor) VisitBinaryStringExprNodeEnd(_ *BinaryStringExprNode)
- func (d DefaultVisitor) VisitBinaryStringExprNodeStart(_ *BinaryStringExprNode)
- func (d DefaultVisitor) VisitBoolConstNode(_ *BoolConstNode)
- func (d DefaultVisitor) VisitBoolSymbolNode(_ *BoolSymbolNode)
- func (d DefaultVisitor) VisitBooleanLogicExprNodeEnd(*BooleanLogicExprNode)
- func (d DefaultVisitor) VisitBooleanLogicExprNodeStart(*BooleanLogicExprNode)
- func (d DefaultVisitor) VisitCountSetExprNodeEnd(_ *CountSetExprNode)
- func (d DefaultVisitor) VisitCountSetExprNodeStart(_ *CountSetExprNode)
- func (d DefaultVisitor) VisitDatetimeArrayNodeEnd(_ *DatetimeArrayNode)
- func (d DefaultVisitor) VisitDatetimeArrayNodeStart(_ *DatetimeArrayNode)
- func (d DefaultVisitor) VisitDatetimeBetweenExprNodeEnd(_ *DatetimeBetweenExprNode)
- func (d DefaultVisitor) VisitDatetimeBetweenExprNodeStart(_ *DatetimeBetweenExprNode)
- func (d DefaultVisitor) VisitDatetimeConstNode(_ *DatetimeConstNode)
- func (d DefaultVisitor) VisitDatetimeSymbolNode(_ *DatetimeSymbolNode)
- func (d DefaultVisitor) VisitFloat64ArrayNodeEnd(_ *Float64ArrayNode)
- func (d DefaultVisitor) VisitFloat64ArrayNodeStart(_ *Float64ArrayNode)
- func (d DefaultVisitor) VisitFloat64BetweenExprNodeEnd(_ *Float64BetweenExprNode)
- func (d DefaultVisitor) VisitFloat64BetweenExprNodeStart(_ *Float64BetweenExprNode)
- func (d DefaultVisitor) VisitFloat64ConstNode(_ *Float64ConstNode)
- func (d DefaultVisitor) VisitFloat64SymbolNode(_ *Float64SymbolNode)
- func (d DefaultVisitor) VisitInArrayExprNodeEnd(*InArrayExprNode)
- func (d DefaultVisitor) VisitInArrayExprNodeStart(*InArrayExprNode)
- func (d DefaultVisitor) VisitInDatetimeArrayExprNodeEnd(_ *InDatetimeArrayExprNode)
- func (d DefaultVisitor) VisitInDatetimeArrayExprNodeStart(_ *InDatetimeArrayExprNode)
- func (d DefaultVisitor) VisitInFloat64ArrayExprNodeEnd(_ *InFloat64ArrayExprNode)
- func (d DefaultVisitor) VisitInFloat64ArrayExprNodeStart(_ *InFloat64ArrayExprNode)
- func (d DefaultVisitor) VisitInInt64ArrayExprNodeEnd(_ *InInt64ArrayExprNode)
- func (d DefaultVisitor) VisitInInt64ArrayExprNodeStart(_ *InInt64ArrayExprNode)
- func (d DefaultVisitor) VisitInStringArrayExprNodeEnd(_ *InStringArrayExprNode)
- func (d DefaultVisitor) VisitInStringArrayExprNodeStart(_ *InStringArrayExprNode)
- func (d DefaultVisitor) VisitInt64ArrayNodeEnd(_ *Int64ArrayNode)
- func (d DefaultVisitor) VisitInt64ArrayNodeStart(_ *Int64ArrayNode)
- func (d DefaultVisitor) VisitInt64BetweenExprNodeEnd(_ *Int64BetweenExprNode)
- func (d DefaultVisitor) VisitInt64BetweenExprNodeStart(_ *Int64BetweenExprNode)
- func (d DefaultVisitor) VisitInt64ConstNode(_ *Int64ConstNode)
- func (d DefaultVisitor) VisitInt64SymbolNode(_ *Int64SymbolNode)
- func (d DefaultVisitor) VisitInt64ToFloat64NodeEnd(_ *Int64ToFloat64Node)
- func (d DefaultVisitor) VisitInt64ToFloat64NodeStart(_ *Int64ToFloat64Node)
- func (d DefaultVisitor) VisitIsEmptySetExprNodeEnd(_ *IsEmptySetExprNode)
- func (d DefaultVisitor) VisitIsEmptySetExprNodeStart(_ *IsEmptySetExprNode)
- func (d DefaultVisitor) VisitIsNilExprNodeEnd(_ *IsNilExprNode)
- func (d DefaultVisitor) VisitIsNilExprNodeStart(_ *IsNilExprNode)
- func (d DefaultVisitor) VisitLimitExprNode(_ *LimitExprNode)
- func (d DefaultVisitor) VisitNotExprNodeEnd(_ *NotExprNode)
- func (d DefaultVisitor) VisitNotExprNodeStart(_ *NotExprNode)
- func (d DefaultVisitor) VisitNullConstNode(_ NullConstNode)
- func (d DefaultVisitor) VisitOrExprNodeEnd(_ *OrExprNode)
- func (d DefaultVisitor) VisitOrExprNodeStart(_ *OrExprNode)
- func (d DefaultVisitor) VisitQueryNodeEnd(_ *queryNode)
- func (d DefaultVisitor) VisitQueryNodeStart(_ *queryNode)
- func (d DefaultVisitor) VisitSetFunctionNodeEnd(_ *SetFunctionNode)
- func (d DefaultVisitor) VisitSetFunctionNodeStart(_ *SetFunctionNode)
- func (d DefaultVisitor) VisitSkipExprNode(_ *SkipExprNode)
- func (d DefaultVisitor) VisitSortByNode(_ *SortByNode)
- func (d DefaultVisitor) VisitSortFieldNode(_ *SortFieldNode)
- func (d DefaultVisitor) VisitStringArrayNodeEnd(_ *StringArrayNode)
- func (d DefaultVisitor) VisitStringArrayNodeStart(_ *StringArrayNode)
- func (d DefaultVisitor) VisitStringConstNode(_ *StringConstNode)
- func (d DefaultVisitor) VisitStringSymbolNode(_ *StringSymbolNode)
- func (d DefaultVisitor) VisitSubQueryNodeEnd(*subQueryNode)
- func (d DefaultVisitor) VisitSubQueryNodeStart(*subQueryNode)
- func (d DefaultVisitor) VisitSymbol(_ string, _ NodeType)
- func (d DefaultVisitor) VisitUntypedNotExprEnd(*UntypedNotExprNode)
- func (d DefaultVisitor) VisitUntypedNotExprStart(*UntypedNotExprNode)
- func (d DefaultVisitor) VisitUntypedQueryNodeEnd(_ *untypedQueryNode)
- func (d DefaultVisitor) VisitUntypedQueryNodeStart(_ *untypedQueryNode)
- func (d DefaultVisitor) VisitUntypedSubQueryNodeEnd(*UntypedSubQueryNode)
- func (d DefaultVisitor) VisitUntypedSubQueryNodeStart(*UntypedSubQueryNode)
- func (d DefaultVisitor) VisitUntypedSymbolNode(*UntypedSymbolNode)
- type Float64ArrayNode
- type Float64BetweenExprNode
- type Float64ConstNode
- func (node *Float64ConstNode) Accept(visitor Visitor)
- func (node *Float64ConstNode) EvalFloat64(_ Symbols) *float64
- func (node *Float64ConstNode) EvalString(_ Symbols) *string
- func (node *Float64ConstNode) GetType() NodeType
- func (node *Float64ConstNode) IsConst() bool
- func (node *Float64ConstNode) String() string
- type Float64Node
- type Float64SymbolNode
- func (node *Float64SymbolNode) Accept(visitor Visitor)
- func (node *Float64SymbolNode) EvalFloat64(s Symbols) *float64
- func (node *Float64SymbolNode) EvalString(s Symbols) *string
- func (node *Float64SymbolNode) GetType() NodeType
- func (node *Float64SymbolNode) IsConst() bool
- func (node *Float64SymbolNode) String() string
- func (node *Float64SymbolNode) Symbol() string
- type InArrayExprNode
- func (node *InArrayExprNode) Accept(visitor Visitor)
- func (node *InArrayExprNode) EvalBool(_ Symbols) bool
- func (*InArrayExprNode) GetType() NodeType
- func (node *InArrayExprNode) IsConst() bool
- func (node *InArrayExprNode) String() string
- func (node *InArrayExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
- type InDatetimeArrayExprNode
- type InFloat64ArrayExprNode
- type InInt64ArrayExprNode
- type InStringArrayExprNode
- type Int64ArrayNode
- func (node *Int64ArrayNode) Accept(visitor Visitor)
- func (node *Int64ArrayNode) AsStringArray() *StringArrayNode
- func (node *Int64ArrayNode) GetType() NodeType
- func (node *Int64ArrayNode) IsConst() bool
- func (node *Int64ArrayNode) String() string
- func (node *Int64ArrayNode) ToFloat64ArrayNode() *Float64ArrayNode
- type Int64BetweenExprNode
- type Int64ConstNode
- func (node *Int64ConstNode) Accept(visitor Visitor)
- func (node *Int64ConstNode) EvalInt64(_ Symbols) *int64
- func (node *Int64ConstNode) EvalString(_ Symbols) *string
- func (node *Int64ConstNode) GetType() NodeType
- func (node *Int64ConstNode) IsConst() bool
- func (node *Int64ConstNode) String() string
- func (node *Int64ConstNode) ToFloat64() Float64Node
- type Int64Node
- type Int64SymbolNode
- func (node *Int64SymbolNode) Accept(visitor Visitor)
- func (node *Int64SymbolNode) EvalInt64(s Symbols) *int64
- func (node *Int64SymbolNode) EvalString(s Symbols) *string
- func (node *Int64SymbolNode) GetType() NodeType
- func (node *Int64SymbolNode) IsConst() bool
- func (node *Int64SymbolNode) String() string
- func (node *Int64SymbolNode) Symbol() string
- func (node *Int64SymbolNode) ToFloat64() Float64Node
- type Int64ToFloat64Node
- func (node *Int64ToFloat64Node) Accept(visitor Visitor)
- func (node *Int64ToFloat64Node) EvalFloat64(s Symbols) *float64
- func (node *Int64ToFloat64Node) EvalString(s Symbols) *string
- func (node *Int64ToFloat64Node) GetType() NodeType
- func (node *Int64ToFloat64Node) IsConst() bool
- func (node *Int64ToFloat64Node) String() string
- type IsEmptySetExprNode
- func (node *IsEmptySetExprNode) Accept(visitor Visitor)
- func (node *IsEmptySetExprNode) EvalBool(s Symbols) bool
- func (node *IsEmptySetExprNode) GetType() NodeType
- func (node *IsEmptySetExprNode) IsConst() bool
- func (node *IsEmptySetExprNode) String() string
- func (node *IsEmptySetExprNode) Symbol() string
- type IsNilExprNode
- type LimitExprNode
- type LoggingListener
- func (l *LoggingListener) EnterAndExpr(c *zitiql.AndExprContext)
- func (l *LoggingListener) EnterBetweenDateOp(c *zitiql.BetweenDateOpContext)
- func (l *LoggingListener) EnterBetweenNumberOp(c *zitiql.BetweenNumberOpContext)
- func (l *LoggingListener) EnterBinaryContainsOp(c *zitiql.BinaryContainsOpContext)
- func (l *LoggingListener) EnterBinaryEqualToBoolOp(c *zitiql.BinaryEqualToBoolOpContext)
- func (l *LoggingListener) EnterBinaryEqualToDatetimeOp(c *zitiql.BinaryEqualToDatetimeOpContext)
- func (l *LoggingListener) EnterBinaryEqualToNullOp(c *zitiql.BinaryEqualToNullOpContext)
- func (l *LoggingListener) EnterBinaryEqualToNumberOp(c *zitiql.BinaryEqualToNumberOpContext)
- func (l *LoggingListener) EnterBinaryEqualToStringOp(c *zitiql.BinaryEqualToStringOpContext)
- func (l *LoggingListener) EnterBinaryGreaterThanDatetimeOp(c *zitiql.BinaryGreaterThanDatetimeOpContext)
- func (l *LoggingListener) EnterBinaryGreaterThanNumberOp(c *zitiql.BinaryGreaterThanNumberOpContext)
- func (l *LoggingListener) EnterBinaryGreaterThanStringOp(c *zitiql.BinaryGreaterThanStringOpContext)
- func (l *LoggingListener) EnterBinaryLessThanDatetimeOp(c *zitiql.BinaryLessThanDatetimeOpContext)
- func (l *LoggingListener) EnterBinaryLessThanNumberOp(c *zitiql.BinaryLessThanNumberOpContext)
- func (l *LoggingListener) EnterBinaryLessThanStringOp(c *zitiql.BinaryLessThanStringOpContext)
- func (l *LoggingListener) EnterBinaryLhs(c *zitiql.BinaryLhsContext)
- func (l *LoggingListener) EnterBoolConst(c *zitiql.BoolConstContext)
- func (l *LoggingListener) EnterBoolSymbol(c *zitiql.BoolSymbolContext)
- func (l *LoggingListener) EnterDatetimeArray(c *zitiql.DatetimeArrayContext)
- func (l *LoggingListener) EnterEnd(c *zitiql.EndContext)
- func (l *LoggingListener) EnterEveryRule(ctx antlr.ParserRuleContext)
- func (l *LoggingListener) EnterGroup(c *zitiql.GroupContext)
- func (l *LoggingListener) EnterInDatetimeArrayOp(c *zitiql.InDatetimeArrayOpContext)
- func (l *LoggingListener) EnterInNumberArrayOp(c *zitiql.InNumberArrayOpContext)
- func (l *LoggingListener) EnterInStringArrayOp(c *zitiql.InStringArrayOpContext)
- func (l *LoggingListener) EnterIsEmptyFunction(c *zitiql.IsEmptyFunctionContext)
- func (l *LoggingListener) EnterLimitExpr(c *zitiql.LimitExprContext)
- func (l *LoggingListener) EnterNotExpr(c *zitiql.NotExprContext)
- func (l *LoggingListener) EnterNumberArray(c *zitiql.NumberArrayContext)
- func (l *LoggingListener) EnterOperationOp(c *zitiql.OperationOpContext)
- func (l *LoggingListener) EnterOrExpr(c *zitiql.OrExprContext)
- func (l *LoggingListener) EnterQueryStmt(c *zitiql.QueryStmtContext)
- func (l *LoggingListener) EnterSetExpr(c *zitiql.SetExprContext)
- func (l *LoggingListener) EnterSetFunctionExpr(c *zitiql.SetFunctionExprContext)
- func (l *LoggingListener) EnterSkipExpr(c *zitiql.SkipExprContext)
- func (l *LoggingListener) EnterSortByExpr(c *zitiql.SortByExprContext)
- func (l *LoggingListener) EnterSortFieldExpr(c *zitiql.SortFieldExprContext)
- func (l *LoggingListener) EnterStringArray(c *zitiql.StringArrayContext)
- func (l *LoggingListener) EnterSubQuery(c *zitiql.SubQueryContext)
- func (l *LoggingListener) ExitAndExpr(c *zitiql.AndExprContext)
- func (l *LoggingListener) ExitBetweenDateOp(c *zitiql.BetweenDateOpContext)
- func (l *LoggingListener) ExitBetweenNumberOp(c *zitiql.BetweenNumberOpContext)
- func (l *LoggingListener) ExitBinaryContainsOp(c *zitiql.BinaryContainsOpContext)
- func (l *LoggingListener) ExitBinaryEqualToBoolOp(c *zitiql.BinaryEqualToBoolOpContext)
- func (l *LoggingListener) ExitBinaryEqualToDatetimeOp(c *zitiql.BinaryEqualToDatetimeOpContext)
- func (l *LoggingListener) ExitBinaryEqualToNullOp(c *zitiql.BinaryEqualToNullOpContext)
- func (l *LoggingListener) ExitBinaryEqualToNumberOp(c *zitiql.BinaryEqualToNumberOpContext)
- func (l *LoggingListener) ExitBinaryEqualToStringOp(c *zitiql.BinaryEqualToStringOpContext)
- func (l *LoggingListener) ExitBinaryGreaterThanDatetimeOp(c *zitiql.BinaryGreaterThanDatetimeOpContext)
- func (l *LoggingListener) ExitBinaryGreaterThanNumberOp(c *zitiql.BinaryGreaterThanNumberOpContext)
- func (l *LoggingListener) ExitBinaryGreaterThanStringOp(c *zitiql.BinaryGreaterThanStringOpContext)
- func (l *LoggingListener) ExitBinaryLessThanDatetimeOp(c *zitiql.BinaryLessThanDatetimeOpContext)
- func (l *LoggingListener) ExitBinaryLessThanNumberOp(c *zitiql.BinaryLessThanNumberOpContext)
- func (l *LoggingListener) ExitBinaryLessThanStringOp(c *zitiql.BinaryLessThanStringOpContext)
- func (l *LoggingListener) ExitBinaryLhs(c *zitiql.BinaryLhsContext)
- func (l *LoggingListener) ExitBoolConst(c *zitiql.BoolConstContext)
- func (l *LoggingListener) ExitBoolSymbol(c *zitiql.BoolSymbolContext)
- func (l *LoggingListener) ExitDatetimeArray(c *zitiql.DatetimeArrayContext)
- func (l *LoggingListener) ExitEnd(c *zitiql.EndContext)
- func (l *LoggingListener) ExitEveryRule(ctx antlr.ParserRuleContext)
- func (l *LoggingListener) ExitGroup(c *zitiql.GroupContext)
- func (l *LoggingListener) ExitInDatetimeArrayOp(c *zitiql.InDatetimeArrayOpContext)
- func (l *LoggingListener) ExitInNumberArrayOp(c *zitiql.InNumberArrayOpContext)
- func (l *LoggingListener) ExitInStringArrayOp(c *zitiql.InStringArrayOpContext)
- func (l *LoggingListener) ExitIsEmptyFunction(c *zitiql.IsEmptyFunctionContext)
- func (l *LoggingListener) ExitLimitExpr(c *zitiql.LimitExprContext)
- func (l *LoggingListener) ExitNotExpr(c *zitiql.NotExprContext)
- func (l *LoggingListener) ExitNumberArray(c *zitiql.NumberArrayContext)
- func (l *LoggingListener) ExitOperationOp(c *zitiql.OperationOpContext)
- func (l *LoggingListener) ExitOrExpr(c *zitiql.OrExprContext)
- func (l *LoggingListener) ExitQueryStmt(c *zitiql.QueryStmtContext)
- func (l *LoggingListener) ExitSetExpr(c *zitiql.SetExprContext)
- func (l *LoggingListener) ExitSetFunctionExpr(c *zitiql.SetFunctionExprContext)
- func (l *LoggingListener) ExitSkipExpr(c *zitiql.SkipExprContext)
- func (l *LoggingListener) ExitSortByExpr(c *zitiql.SortByExprContext)
- func (l *LoggingListener) ExitSortFieldExpr(c *zitiql.SortFieldExprContext)
- func (l *LoggingListener) ExitStringArray(c *zitiql.StringArrayContext)
- func (l *LoggingListener) ExitSubQuery(c *zitiql.SubQueryContext)
- func (l *LoggingListener) VisitErrorNode(node antlr.ErrorNode)
- func (l *LoggingListener) VisitTerminal(node antlr.TerminalNode)
- type Node
- type NodeType
- type NotExprNode
- type NullConstNode
- type OrExprNode
- type Query
- type SeekOptimizableBoolNode
- type SeekableSetCursor
- type SetCursor
- type SetCursorProvider
- type SetFunction
- type SetFunctionNode
- func (node *SetFunctionNode) Accept(visitor Visitor)
- func (node *SetFunctionNode) GetType() NodeType
- func (node *SetFunctionNode) IsCompare() bool
- func (node *SetFunctionNode) IsConst() bool
- func (node *SetFunctionNode) MoveUpTree(boolNode BoolNode) (BoolNode, error)
- func (node *SetFunctionNode) String() string
- func (node *SetFunctionNode) TypeTransform(s SymbolTypes) (Node, error)
- type SkipExprNode
- type SortByNode
- type SortDirection
- type SortField
- type SortFieldNode
- func (node *SortFieldNode) Accept(visitor Visitor)
- func (node *SortFieldNode) GetType() NodeType
- func (node *SortFieldNode) IsAscending() bool
- func (node *SortFieldNode) IsConst() bool
- func (node *SortFieldNode) String() string
- func (node *SortFieldNode) Symbol() string
- func (node *SortFieldNode) TypeTransform(s SymbolTypes) (Node, error)
- type Stack
- type StringArrayNode
- type StringConstNode
- type StringNode
- type StringSymbolNode
- type SymbolNode
- type SymbolTypes
- type SymbolValidator
- func (visitor *SymbolValidator) VisitSetFunctionNodeEnd(node *SetFunctionNode)
- func (visitor *SymbolValidator) VisitSetFunctionNodeStart(_ *SetFunctionNode)
- func (visitor *SymbolValidator) VisitUntypedSubQueryNodeEnd(*UntypedSubQueryNode)
- func (visitor *SymbolValidator) VisitUntypedSubQueryNodeStart(node *UntypedSubQueryNode)
- func (visitor *SymbolValidator) VisitUntypedSymbolNode(node *UntypedSymbolNode)
- type Symbols
- type ToBoltListener
- func (bl *ToBoltListener) EnterDatetimeArray(c *zitiql.DatetimeArrayContext)
- func (bl *ToBoltListener) EnterNumberArray(c *zitiql.NumberArrayContext)
- func (bl *ToBoltListener) EnterSortByExpr(c *zitiql.SortByExprContext)
- func (bl *ToBoltListener) EnterStringArray(c *zitiql.StringArrayContext)
- func (bl *ToBoltListener) ExitAndExpr(c *zitiql.AndExprContext)
- func (bl *ToBoltListener) ExitBetweenDateOp(c *zitiql.BetweenDateOpContext)
- func (bl *ToBoltListener) ExitBetweenNumberOp(c *zitiql.BetweenNumberOpContext)
- func (bl *ToBoltListener) ExitBinaryContainsOp(c *zitiql.BinaryContainsOpContext)
- func (bl *ToBoltListener) ExitBinaryEqualToBoolOp(c *zitiql.BinaryEqualToBoolOpContext)
- func (bl *ToBoltListener) ExitBinaryEqualToDatetimeOp(c *zitiql.BinaryEqualToDatetimeOpContext)
- func (bl *ToBoltListener) ExitBinaryEqualToNullOp(c *zitiql.BinaryEqualToNullOpContext)
- func (bl *ToBoltListener) ExitBinaryEqualToNumberOp(c *zitiql.BinaryEqualToNumberOpContext)
- func (bl *ToBoltListener) ExitBinaryEqualToStringOp(c *zitiql.BinaryEqualToStringOpContext)
- func (bl *ToBoltListener) ExitBinaryGreaterThanDatetimeOp(c *zitiql.BinaryGreaterThanDatetimeOpContext)
- func (bl *ToBoltListener) ExitBinaryGreaterThanNumberOp(c *zitiql.BinaryGreaterThanNumberOpContext)
- func (bl *ToBoltListener) ExitBinaryGreaterThanStringOp(c *zitiql.BinaryGreaterThanStringOpContext)
- func (bl *ToBoltListener) ExitBinaryLessThanDatetimeOp(c *zitiql.BinaryLessThanDatetimeOpContext)
- func (bl *ToBoltListener) ExitBinaryLessThanNumberOp(c *zitiql.BinaryLessThanNumberOpContext)
- func (bl *ToBoltListener) ExitBinaryLessThanStringOp(c *zitiql.BinaryLessThanStringOpContext)
- func (bl *ToBoltListener) ExitBinaryOp()
- func (bl *ToBoltListener) ExitDatetimeArray(c *zitiql.DatetimeArrayContext)
- func (bl *ToBoltListener) ExitInDatetimeArrayOp(c *zitiql.InDatetimeArrayOpContext)
- func (bl *ToBoltListener) ExitInNumberArrayOp(c *zitiql.InNumberArrayOpContext)
- func (bl *ToBoltListener) ExitInStringArrayOp(c *zitiql.InStringArrayOpContext)
- func (bl *ToBoltListener) ExitIsEmptyFunction(c *zitiql.IsEmptyFunctionContext)
- func (bl *ToBoltListener) ExitLimitExpr(c *zitiql.LimitExprContext)
- func (bl *ToBoltListener) ExitNotExpr(c *zitiql.NotExprContext)
- func (bl *ToBoltListener) ExitNumberArray(c *zitiql.NumberArrayContext)
- func (bl *ToBoltListener) ExitOrExpr(c *zitiql.OrExprContext)
- func (bl *ToBoltListener) ExitQueryStmt(c *zitiql.QueryStmtContext)
- func (bl *ToBoltListener) ExitSetFunctionExpr(c *zitiql.SetFunctionExprContext)
- func (bl *ToBoltListener) ExitSkipExpr(c *zitiql.SkipExprContext)
- func (bl *ToBoltListener) ExitSortByExpr(c *zitiql.SortByExprContext)
- func (bl *ToBoltListener) ExitSortFieldExpr(c *zitiql.SortFieldExprContext)
- func (bl *ToBoltListener) ExitStringArray(c *zitiql.StringArrayContext)
- func (bl *ToBoltListener) ExitSubQuery(c *zitiql.SubQueryContext)
- func (bl *ToBoltListener) GetError() error
- func (bl *ToBoltListener) HasError() bool
- func (bl *ToBoltListener) SetError(err error)
- func (bl *ToBoltListener) VisitTerminal(node antlr.TerminalNode)
- type TreeSet
- type TypeSeekableSetCursor
- type TypeTransformable
- type UnknownSymbolError
- type UntypedNotExprNode
- func (node *UntypedNotExprNode) Accept(visitor Visitor)
- func (node *UntypedNotExprNode) EvalBool(_ Symbols) bool
- func (node *UntypedNotExprNode) GetType() NodeType
- func (node *UntypedNotExprNode) IsConst() bool
- func (node *UntypedNotExprNode) String() string
- func (node *UntypedNotExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
- type UntypedSubQueryNode
- func (node *UntypedSubQueryNode) Accept(visitor Visitor)
- func (node *UntypedSubQueryNode) GetType() NodeType
- func (node *UntypedSubQueryNode) IsConst() bool
- func (node *UntypedSubQueryNode) String() string
- func (node *UntypedSubQueryNode) Symbol() string
- func (node *UntypedSubQueryNode) TypeTransform(s SymbolTypes) (Node, error)
- type UntypedSymbolNode
- func (node *UntypedSymbolNode) Accept(visitor Visitor)
- func (node *UntypedSymbolNode) GetType() NodeType
- func (node *UntypedSymbolNode) IsConst() bool
- func (node *UntypedSymbolNode) String() string
- func (node *UntypedSymbolNode) Symbol() string
- func (node *UntypedSymbolNode) TypeTransform(s SymbolTypes) (Node, error)
- type Visitor
Constants ¶
const ( AndOp boolBinaryOp = iota OrOp )
Variables ¶
var BoolNodeTrue = NewBoolConstNode(true)
var EmptyCursor emptyCursor
var EnableQueryDebug atomic.Bool
var SetFunctionNames = map[SetFunction]string{ SetFunctionAllOf: "allOf", SetFunctionAnyOf: "anyOf", SetFunctionCount: "count", SetFunctionIsEmpty: "isEmpty", }
Functions ¶
func NodeTypeName ¶
func PostProcess ¶
func PostProcess(symbolTypes SymbolTypes, node *BoolNode) error
Types ¶
type AllOfSetExprNode ¶
type AllOfSetExprNode struct {
// contains filtered or unexported fields
}
func (*AllOfSetExprNode) Accept ¶
func (node *AllOfSetExprNode) Accept(visitor Visitor)
func (*AllOfSetExprNode) EvalBool ¶
func (node *AllOfSetExprNode) EvalBool(s Symbols) bool
func (*AllOfSetExprNode) GetType ¶
func (node *AllOfSetExprNode) GetType() NodeType
func (*AllOfSetExprNode) IsConst ¶
func (node *AllOfSetExprNode) IsConst() bool
func (*AllOfSetExprNode) String ¶
func (node *AllOfSetExprNode) String() string
func (*AllOfSetExprNode) Symbol ¶
func (node *AllOfSetExprNode) Symbol() string
type AndExprNode ¶
type AndExprNode struct {
// contains filtered or unexported fields
}
AndExprNode implements logical AND on two wrapped boolean expressions
func NewAndExprNode ¶
func NewAndExprNode(left, right BoolNode) *AndExprNode
func (*AndExprNode) Accept ¶
func (node *AndExprNode) Accept(visitor Visitor)
func (*AndExprNode) EvalBool ¶
func (node *AndExprNode) EvalBool(s Symbols) bool
func (*AndExprNode) GetType ¶
func (node *AndExprNode) GetType() NodeType
func (*AndExprNode) IsConst ¶
func (node *AndExprNode) IsConst() bool
func (*AndExprNode) String ¶
func (node *AndExprNode) String() string
func (*AndExprNode) TypeTransformBool ¶
func (node *AndExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
type AnyOfSetExprNode ¶
type AnyOfSetExprNode struct {
// contains filtered or unexported fields
}
func (*AnyOfSetExprNode) Accept ¶
func (node *AnyOfSetExprNode) Accept(visitor Visitor)
func (*AnyOfSetExprNode) EvalBool ¶
func (node *AnyOfSetExprNode) EvalBool(s Symbols) bool
func (*AnyOfSetExprNode) GetType ¶
func (node *AnyOfSetExprNode) GetType() NodeType
func (*AnyOfSetExprNode) IsConst ¶
func (node *AnyOfSetExprNode) IsConst() bool
func (*AnyOfSetExprNode) String ¶
func (node *AnyOfSetExprNode) String() string
func (*AnyOfSetExprNode) Symbol ¶
func (node *AnyOfSetExprNode) Symbol() string
type AnyTypeSymbolNode ¶
type AnyTypeSymbolNode struct {
// contains filtered or unexported fields
}
AnyTypeSymbolNode implements lookup of symbol values of any, meaning they can have any value type
func (*AnyTypeSymbolNode) Accept ¶
func (node *AnyTypeSymbolNode) Accept(visitor Visitor)
func (*AnyTypeSymbolNode) EvalBool ¶
func (node *AnyTypeSymbolNode) EvalBool(s Symbols) bool
func (*AnyTypeSymbolNode) EvalDatetime ¶
func (node *AnyTypeSymbolNode) EvalDatetime(s Symbols) *time.Time
func (*AnyTypeSymbolNode) EvalFloat64 ¶
func (node *AnyTypeSymbolNode) EvalFloat64(s Symbols) *float64
func (*AnyTypeSymbolNode) EvalInt64 ¶
func (node *AnyTypeSymbolNode) EvalInt64(s Symbols) *int64
func (*AnyTypeSymbolNode) EvalString ¶
func (node *AnyTypeSymbolNode) EvalString(s Symbols) *string
func (*AnyTypeSymbolNode) GetType ¶
func (node *AnyTypeSymbolNode) GetType() NodeType
func (*AnyTypeSymbolNode) IsConst ¶
func (node *AnyTypeSymbolNode) IsConst() bool
func (*AnyTypeSymbolNode) String ¶
func (node *AnyTypeSymbolNode) String() string
func (*AnyTypeSymbolNode) Symbol ¶
func (node *AnyTypeSymbolNode) Symbol() string
func (*AnyTypeSymbolNode) ToFloat64 ¶
func (node *AnyTypeSymbolNode) ToFloat64() Float64Node
type AsStringArrayable ¶
type AsStringArrayable interface {
AsStringArray() *StringArrayNode
}
type BetweenExprNode ¶
type BetweenExprNode struct {
// contains filtered or unexported fields
}
BetweenExprNode is transitory node that handles conversion from untyped to typed BETWEEN nodes
func (*BetweenExprNode) Accept ¶
func (node *BetweenExprNode) Accept(visitor Visitor)
func (*BetweenExprNode) EvalBool ¶
func (node *BetweenExprNode) EvalBool(_ Symbols) bool
func (*BetweenExprNode) GetType ¶
func (*BetweenExprNode) GetType() NodeType
func (*BetweenExprNode) IsConst ¶
func (node *BetweenExprNode) IsConst() bool
func (*BetweenExprNode) String ¶
func (node *BetweenExprNode) String() string
func (*BetweenExprNode) TypeTransformBool ¶
func (node *BetweenExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
type BinaryBoolExprNode ¶
type BinaryBoolExprNode struct {
// contains filtered or unexported fields
}
func (*BinaryBoolExprNode) Accept ¶
func (node *BinaryBoolExprNode) Accept(visitor Visitor)
func (*BinaryBoolExprNode) EvalBool ¶
func (node *BinaryBoolExprNode) EvalBool(s Symbols) bool
func (*BinaryBoolExprNode) GetType ¶
func (*BinaryBoolExprNode) GetType() NodeType
func (*BinaryBoolExprNode) IsConst ¶
func (node *BinaryBoolExprNode) IsConst() bool
func (*BinaryBoolExprNode) String ¶
func (node *BinaryBoolExprNode) String() string
type BinaryDatetimeExprNode ¶
type BinaryDatetimeExprNode struct {
// contains filtered or unexported fields
}
func (*BinaryDatetimeExprNode) Accept ¶
func (node *BinaryDatetimeExprNode) Accept(visitor Visitor)
func (*BinaryDatetimeExprNode) EvalBool ¶
func (node *BinaryDatetimeExprNode) EvalBool(s Symbols) bool
func (*BinaryDatetimeExprNode) GetType ¶
func (*BinaryDatetimeExprNode) GetType() NodeType
func (*BinaryDatetimeExprNode) IsConst ¶
func (node *BinaryDatetimeExprNode) IsConst() bool
func (*BinaryDatetimeExprNode) String ¶
func (node *BinaryDatetimeExprNode) String() string
type BinaryExprNode ¶
type BinaryExprNode struct {
// contains filtered or unexported fields
}
func (*BinaryExprNode) Accept ¶
func (node *BinaryExprNode) Accept(visitor Visitor)
func (*BinaryExprNode) EvalBool ¶
func (node *BinaryExprNode) EvalBool(_ Symbols) bool
func (*BinaryExprNode) GetType ¶
func (node *BinaryExprNode) GetType() NodeType
func (*BinaryExprNode) IsConst ¶
func (node *BinaryExprNode) IsConst() bool
func (*BinaryExprNode) String ¶
func (node *BinaryExprNode) String() string
func (*BinaryExprNode) TypeTransformBool ¶
func (node *BinaryExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
type BinaryFloat64ExprNode ¶
type BinaryFloat64ExprNode struct {
// contains filtered or unexported fields
}
func (*BinaryFloat64ExprNode) Accept ¶
func (node *BinaryFloat64ExprNode) Accept(visitor Visitor)
func (*BinaryFloat64ExprNode) EvalBool ¶
func (node *BinaryFloat64ExprNode) EvalBool(s Symbols) bool
func (*BinaryFloat64ExprNode) GetType ¶
func (node *BinaryFloat64ExprNode) GetType() NodeType
func (*BinaryFloat64ExprNode) IsConst ¶
func (node *BinaryFloat64ExprNode) IsConst() bool
func (*BinaryFloat64ExprNode) String ¶
func (node *BinaryFloat64ExprNode) String() string
type BinaryInt64ExprNode ¶
type BinaryInt64ExprNode struct {
// contains filtered or unexported fields
}
func (*BinaryInt64ExprNode) Accept ¶
func (node *BinaryInt64ExprNode) Accept(visitor Visitor)
func (*BinaryInt64ExprNode) EvalBool ¶
func (node *BinaryInt64ExprNode) EvalBool(s Symbols) bool
func (*BinaryInt64ExprNode) GetType ¶
func (node *BinaryInt64ExprNode) GetType() NodeType
func (*BinaryInt64ExprNode) IsConst ¶
func (node *BinaryInt64ExprNode) IsConst() bool
func (*BinaryInt64ExprNode) String ¶
func (node *BinaryInt64ExprNode) String() string
type BinaryStringExprNode ¶
type BinaryStringExprNode struct {
// contains filtered or unexported fields
}
func (*BinaryStringExprNode) Accept ¶
func (node *BinaryStringExprNode) Accept(visitor Visitor)
func (*BinaryStringExprNode) EvalBool ¶
func (node *BinaryStringExprNode) EvalBool(s Symbols) bool
func (*BinaryStringExprNode) EvalBoolWithSeek ¶
func (node *BinaryStringExprNode) EvalBoolWithSeek(s Symbols, cursor TypeSeekableSetCursor) bool
func (*BinaryStringExprNode) GetType ¶
func (*BinaryStringExprNode) GetType() NodeType
func (*BinaryStringExprNode) IsConst ¶
func (node *BinaryStringExprNode) IsConst() bool
func (*BinaryStringExprNode) IsSeekable ¶
func (node *BinaryStringExprNode) IsSeekable() bool
func (*BinaryStringExprNode) String ¶
func (node *BinaryStringExprNode) String() string
type BoolConstNode ¶
type BoolConstNode struct {
// contains filtered or unexported fields
}
BoolConstNode wraps a bool constant expression
func (*BoolConstNode) Accept ¶
func (node *BoolConstNode) Accept(visitor Visitor)
func (*BoolConstNode) EvalBool ¶
func (node *BoolConstNode) EvalBool(_ Symbols) bool
func (*BoolConstNode) GetType ¶
func (node *BoolConstNode) GetType() NodeType
func (*BoolConstNode) IsConst ¶
func (node *BoolConstNode) IsConst() bool
func (*BoolConstNode) String ¶
func (node *BoolConstNode) String() string
type BoolNode ¶
type BoolNode interface { Node // NOTE: IF we want to reintroduce error reporting on Eval* at some point in the future, probably better plan // would be to incorporate into Symbols, which we can then retrieve at the top level, rather than threading // it through here everywhere, similar to how we do it with TypedBucket EvalBool(s Symbols) bool }
func NewBoolConstNode ¶
type BoolSymbolNode ¶
type BoolSymbolNode struct {
// contains filtered or unexported fields
}
BoolSymbolNode implements lookup of symbol values of type bool
func (*BoolSymbolNode) Accept ¶
func (node *BoolSymbolNode) Accept(visitor Visitor)
func (*BoolSymbolNode) EvalBool ¶
func (node *BoolSymbolNode) EvalBool(s Symbols) bool
func (*BoolSymbolNode) GetType ¶
func (node *BoolSymbolNode) GetType() NodeType
func (*BoolSymbolNode) IsConst ¶
func (node *BoolSymbolNode) IsConst() bool
func (*BoolSymbolNode) String ¶
func (node *BoolSymbolNode) String() string
func (*BoolSymbolNode) Symbol ¶
func (node *BoolSymbolNode) Symbol() string
type BoolTypeTransformable ¶
type BoolTypeTransformable interface { BoolNode TypeTransformBool(s SymbolTypes) (BoolNode, error) }
type BooleanLogicExprNode ¶
type BooleanLogicExprNode struct {
// contains filtered or unexported fields
}
func (*BooleanLogicExprNode) Accept ¶
func (node *BooleanLogicExprNode) Accept(visitor Visitor)
func (*BooleanLogicExprNode) EvalBool ¶
func (node *BooleanLogicExprNode) EvalBool(_ Symbols) bool
func (*BooleanLogicExprNode) GetType ¶
func (node *BooleanLogicExprNode) GetType() NodeType
func (*BooleanLogicExprNode) IsConst ¶
func (node *BooleanLogicExprNode) IsConst() bool
func (*BooleanLogicExprNode) String ¶
func (node *BooleanLogicExprNode) String() string
func (*BooleanLogicExprNode) TypeTransformBool ¶
func (node *BooleanLogicExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
type CountSetExprNode ¶
type CountSetExprNode struct {
// contains filtered or unexported fields
}
func (*CountSetExprNode) Accept ¶
func (node *CountSetExprNode) Accept(visitor Visitor)
func (*CountSetExprNode) EvalInt64 ¶
func (node *CountSetExprNode) EvalInt64(s Symbols) *int64
func (*CountSetExprNode) EvalString ¶
func (node *CountSetExprNode) EvalString(s Symbols) *string
func (*CountSetExprNode) GetType ¶
func (node *CountSetExprNode) GetType() NodeType
func (*CountSetExprNode) IsConst ¶
func (node *CountSetExprNode) IsConst() bool
func (*CountSetExprNode) String ¶
func (node *CountSetExprNode) String() string
func (*CountSetExprNode) Symbol ¶
func (node *CountSetExprNode) Symbol() string
func (*CountSetExprNode) ToFloat64 ¶
func (node *CountSetExprNode) ToFloat64() Float64Node
type DatetimeArrayNode ¶
type DatetimeArrayNode struct {
// contains filtered or unexported fields
}
DatetimeArrayNode encapsulates a datetime array
func (*DatetimeArrayNode) Accept ¶
func (node *DatetimeArrayNode) Accept(visitor Visitor)
func (*DatetimeArrayNode) GetType ¶
func (node *DatetimeArrayNode) GetType() NodeType
func (*DatetimeArrayNode) IsConst ¶
func (node *DatetimeArrayNode) IsConst() bool
func (*DatetimeArrayNode) String ¶
func (node *DatetimeArrayNode) String() string
type DatetimeBetweenExprNode ¶
type DatetimeBetweenExprNode struct {
// contains filtered or unexported fields
}
func (*DatetimeBetweenExprNode) Accept ¶
func (node *DatetimeBetweenExprNode) Accept(visitor Visitor)
func (*DatetimeBetweenExprNode) EvalBool ¶
func (node *DatetimeBetweenExprNode) EvalBool(s Symbols) bool
func (*DatetimeBetweenExprNode) GetType ¶
func (*DatetimeBetweenExprNode) GetType() NodeType
func (*DatetimeBetweenExprNode) IsConst ¶
func (node *DatetimeBetweenExprNode) IsConst() bool
func (*DatetimeBetweenExprNode) String ¶
func (node *DatetimeBetweenExprNode) String() string
type DatetimeConstNode ¶
type DatetimeConstNode struct {
// contains filtered or unexported fields
}
DatetimeConstNode wraps a datetime constant expression
func (*DatetimeConstNode) Accept ¶
func (node *DatetimeConstNode) Accept(visitor Visitor)
func (*DatetimeConstNode) EvalDatetime ¶
func (node *DatetimeConstNode) EvalDatetime(_ Symbols) *time.Time
func (*DatetimeConstNode) GetType ¶
func (node *DatetimeConstNode) GetType() NodeType
func (*DatetimeConstNode) IsConst ¶
func (node *DatetimeConstNode) IsConst() bool
func (*DatetimeConstNode) String ¶
func (node *DatetimeConstNode) String() string
type DatetimeSymbolNode ¶
type DatetimeSymbolNode struct {
// contains filtered or unexported fields
}
DatetimeSymbolNode implements lookup of symbol values of type datetime
func (*DatetimeSymbolNode) Accept ¶
func (node *DatetimeSymbolNode) Accept(visitor Visitor)
func (*DatetimeSymbolNode) EvalDatetime ¶
func (node *DatetimeSymbolNode) EvalDatetime(s Symbols) *time.Time
func (*DatetimeSymbolNode) GetType ¶
func (node *DatetimeSymbolNode) GetType() NodeType
func (*DatetimeSymbolNode) IsConst ¶
func (node *DatetimeSymbolNode) IsConst() bool
func (*DatetimeSymbolNode) String ¶
func (node *DatetimeSymbolNode) String() string
func (*DatetimeSymbolNode) Symbol ¶
func (node *DatetimeSymbolNode) Symbol() string
type DefaultVisitor ¶
type DefaultVisitor struct { }
func (DefaultVisitor) VisitAllOfSetExprNodeEnd ¶
func (d DefaultVisitor) VisitAllOfSetExprNodeEnd(_ *AllOfSetExprNode)
func (DefaultVisitor) VisitAllOfSetExprNodeStart ¶
func (d DefaultVisitor) VisitAllOfSetExprNodeStart(_ *AllOfSetExprNode)
func (DefaultVisitor) VisitAndExprNodeEnd ¶
func (d DefaultVisitor) VisitAndExprNodeEnd(_ *AndExprNode)
func (DefaultVisitor) VisitAndExprNodeStart ¶
func (d DefaultVisitor) VisitAndExprNodeStart(_ *AndExprNode)
func (DefaultVisitor) VisitAnyOfSetExprNodeEnd ¶
func (d DefaultVisitor) VisitAnyOfSetExprNodeEnd(_ *AnyOfSetExprNode)
func (DefaultVisitor) VisitAnyOfSetExprNodeStart ¶
func (d DefaultVisitor) VisitAnyOfSetExprNodeStart(_ *AnyOfSetExprNode)
func (DefaultVisitor) VisitAnyTypeSymbolNode ¶
func (d DefaultVisitor) VisitAnyTypeSymbolNode(_ *AnyTypeSymbolNode)
func (DefaultVisitor) VisitBetweenExprNodeEnd ¶
func (d DefaultVisitor) VisitBetweenExprNodeEnd(*BetweenExprNode)
func (DefaultVisitor) VisitBetweenExprNodeStart ¶
func (d DefaultVisitor) VisitBetweenExprNodeStart(*BetweenExprNode)
func (DefaultVisitor) VisitBinaryBoolExprNodeEnd ¶
func (d DefaultVisitor) VisitBinaryBoolExprNodeEnd(_ *BinaryBoolExprNode)
func (DefaultVisitor) VisitBinaryBoolExprNodeStart ¶
func (d DefaultVisitor) VisitBinaryBoolExprNodeStart(_ *BinaryBoolExprNode)
func (DefaultVisitor) VisitBinaryDatetimeExprNodeEnd ¶
func (d DefaultVisitor) VisitBinaryDatetimeExprNodeEnd(_ *BinaryDatetimeExprNode)
func (DefaultVisitor) VisitBinaryDatetimeExprNodeStart ¶
func (d DefaultVisitor) VisitBinaryDatetimeExprNodeStart(_ *BinaryDatetimeExprNode)
func (DefaultVisitor) VisitBinaryExprNodeEnd ¶
func (d DefaultVisitor) VisitBinaryExprNodeEnd(*BinaryExprNode)
func (DefaultVisitor) VisitBinaryExprNodeStart ¶
func (d DefaultVisitor) VisitBinaryExprNodeStart(*BinaryExprNode)
func (DefaultVisitor) VisitBinaryFloat64ExprNodeEnd ¶
func (d DefaultVisitor) VisitBinaryFloat64ExprNodeEnd(_ *BinaryFloat64ExprNode)
func (DefaultVisitor) VisitBinaryFloat64ExprNodeStart ¶
func (d DefaultVisitor) VisitBinaryFloat64ExprNodeStart(_ *BinaryFloat64ExprNode)
func (DefaultVisitor) VisitBinaryInt64ExprNodeEnd ¶
func (d DefaultVisitor) VisitBinaryInt64ExprNodeEnd(_ *BinaryInt64ExprNode)
func (DefaultVisitor) VisitBinaryInt64ExprNodeStart ¶
func (d DefaultVisitor) VisitBinaryInt64ExprNodeStart(_ *BinaryInt64ExprNode)
func (DefaultVisitor) VisitBinaryStringExprNodeEnd ¶
func (d DefaultVisitor) VisitBinaryStringExprNodeEnd(_ *BinaryStringExprNode)
func (DefaultVisitor) VisitBinaryStringExprNodeStart ¶
func (d DefaultVisitor) VisitBinaryStringExprNodeStart(_ *BinaryStringExprNode)
func (DefaultVisitor) VisitBoolConstNode ¶
func (d DefaultVisitor) VisitBoolConstNode(_ *BoolConstNode)
func (DefaultVisitor) VisitBoolSymbolNode ¶
func (d DefaultVisitor) VisitBoolSymbolNode(_ *BoolSymbolNode)
func (DefaultVisitor) VisitBooleanLogicExprNodeEnd ¶
func (d DefaultVisitor) VisitBooleanLogicExprNodeEnd(*BooleanLogicExprNode)
func (DefaultVisitor) VisitBooleanLogicExprNodeStart ¶
func (d DefaultVisitor) VisitBooleanLogicExprNodeStart(*BooleanLogicExprNode)
func (DefaultVisitor) VisitCountSetExprNodeEnd ¶
func (d DefaultVisitor) VisitCountSetExprNodeEnd(_ *CountSetExprNode)
func (DefaultVisitor) VisitCountSetExprNodeStart ¶
func (d DefaultVisitor) VisitCountSetExprNodeStart(_ *CountSetExprNode)
func (DefaultVisitor) VisitDatetimeArrayNodeEnd ¶
func (d DefaultVisitor) VisitDatetimeArrayNodeEnd(_ *DatetimeArrayNode)
func (DefaultVisitor) VisitDatetimeArrayNodeStart ¶
func (d DefaultVisitor) VisitDatetimeArrayNodeStart(_ *DatetimeArrayNode)
func (DefaultVisitor) VisitDatetimeBetweenExprNodeEnd ¶
func (d DefaultVisitor) VisitDatetimeBetweenExprNodeEnd(_ *DatetimeBetweenExprNode)
func (DefaultVisitor) VisitDatetimeBetweenExprNodeStart ¶
func (d DefaultVisitor) VisitDatetimeBetweenExprNodeStart(_ *DatetimeBetweenExprNode)
func (DefaultVisitor) VisitDatetimeConstNode ¶
func (d DefaultVisitor) VisitDatetimeConstNode(_ *DatetimeConstNode)
func (DefaultVisitor) VisitDatetimeSymbolNode ¶
func (d DefaultVisitor) VisitDatetimeSymbolNode(_ *DatetimeSymbolNode)
func (DefaultVisitor) VisitFloat64ArrayNodeEnd ¶
func (d DefaultVisitor) VisitFloat64ArrayNodeEnd(_ *Float64ArrayNode)
func (DefaultVisitor) VisitFloat64ArrayNodeStart ¶
func (d DefaultVisitor) VisitFloat64ArrayNodeStart(_ *Float64ArrayNode)
func (DefaultVisitor) VisitFloat64BetweenExprNodeEnd ¶
func (d DefaultVisitor) VisitFloat64BetweenExprNodeEnd(_ *Float64BetweenExprNode)
func (DefaultVisitor) VisitFloat64BetweenExprNodeStart ¶
func (d DefaultVisitor) VisitFloat64BetweenExprNodeStart(_ *Float64BetweenExprNode)
func (DefaultVisitor) VisitFloat64ConstNode ¶
func (d DefaultVisitor) VisitFloat64ConstNode(_ *Float64ConstNode)
func (DefaultVisitor) VisitFloat64SymbolNode ¶
func (d DefaultVisitor) VisitFloat64SymbolNode(_ *Float64SymbolNode)
func (DefaultVisitor) VisitInArrayExprNodeEnd ¶
func (d DefaultVisitor) VisitInArrayExprNodeEnd(*InArrayExprNode)
func (DefaultVisitor) VisitInArrayExprNodeStart ¶
func (d DefaultVisitor) VisitInArrayExprNodeStart(*InArrayExprNode)
func (DefaultVisitor) VisitInDatetimeArrayExprNodeEnd ¶
func (d DefaultVisitor) VisitInDatetimeArrayExprNodeEnd(_ *InDatetimeArrayExprNode)
func (DefaultVisitor) VisitInDatetimeArrayExprNodeStart ¶
func (d DefaultVisitor) VisitInDatetimeArrayExprNodeStart(_ *InDatetimeArrayExprNode)
func (DefaultVisitor) VisitInFloat64ArrayExprNodeEnd ¶
func (d DefaultVisitor) VisitInFloat64ArrayExprNodeEnd(_ *InFloat64ArrayExprNode)
func (DefaultVisitor) VisitInFloat64ArrayExprNodeStart ¶
func (d DefaultVisitor) VisitInFloat64ArrayExprNodeStart(_ *InFloat64ArrayExprNode)
func (DefaultVisitor) VisitInInt64ArrayExprNodeEnd ¶
func (d DefaultVisitor) VisitInInt64ArrayExprNodeEnd(_ *InInt64ArrayExprNode)
func (DefaultVisitor) VisitInInt64ArrayExprNodeStart ¶
func (d DefaultVisitor) VisitInInt64ArrayExprNodeStart(_ *InInt64ArrayExprNode)
func (DefaultVisitor) VisitInStringArrayExprNodeEnd ¶
func (d DefaultVisitor) VisitInStringArrayExprNodeEnd(_ *InStringArrayExprNode)
func (DefaultVisitor) VisitInStringArrayExprNodeStart ¶
func (d DefaultVisitor) VisitInStringArrayExprNodeStart(_ *InStringArrayExprNode)
func (DefaultVisitor) VisitInt64ArrayNodeEnd ¶
func (d DefaultVisitor) VisitInt64ArrayNodeEnd(_ *Int64ArrayNode)
func (DefaultVisitor) VisitInt64ArrayNodeStart ¶
func (d DefaultVisitor) VisitInt64ArrayNodeStart(_ *Int64ArrayNode)
func (DefaultVisitor) VisitInt64BetweenExprNodeEnd ¶
func (d DefaultVisitor) VisitInt64BetweenExprNodeEnd(_ *Int64BetweenExprNode)
func (DefaultVisitor) VisitInt64BetweenExprNodeStart ¶
func (d DefaultVisitor) VisitInt64BetweenExprNodeStart(_ *Int64BetweenExprNode)
func (DefaultVisitor) VisitInt64ConstNode ¶
func (d DefaultVisitor) VisitInt64ConstNode(_ *Int64ConstNode)
func (DefaultVisitor) VisitInt64SymbolNode ¶
func (d DefaultVisitor) VisitInt64SymbolNode(_ *Int64SymbolNode)
func (DefaultVisitor) VisitInt64ToFloat64NodeEnd ¶
func (d DefaultVisitor) VisitInt64ToFloat64NodeEnd(_ *Int64ToFloat64Node)
func (DefaultVisitor) VisitInt64ToFloat64NodeStart ¶
func (d DefaultVisitor) VisitInt64ToFloat64NodeStart(_ *Int64ToFloat64Node)
func (DefaultVisitor) VisitIsEmptySetExprNodeEnd ¶
func (d DefaultVisitor) VisitIsEmptySetExprNodeEnd(_ *IsEmptySetExprNode)
func (DefaultVisitor) VisitIsEmptySetExprNodeStart ¶
func (d DefaultVisitor) VisitIsEmptySetExprNodeStart(_ *IsEmptySetExprNode)
func (DefaultVisitor) VisitIsNilExprNodeEnd ¶
func (d DefaultVisitor) VisitIsNilExprNodeEnd(_ *IsNilExprNode)
func (DefaultVisitor) VisitIsNilExprNodeStart ¶
func (d DefaultVisitor) VisitIsNilExprNodeStart(_ *IsNilExprNode)
func (DefaultVisitor) VisitLimitExprNode ¶
func (d DefaultVisitor) VisitLimitExprNode(_ *LimitExprNode)
func (DefaultVisitor) VisitNotExprNodeEnd ¶
func (d DefaultVisitor) VisitNotExprNodeEnd(_ *NotExprNode)
func (DefaultVisitor) VisitNotExprNodeStart ¶
func (d DefaultVisitor) VisitNotExprNodeStart(_ *NotExprNode)
func (DefaultVisitor) VisitNullConstNode ¶
func (d DefaultVisitor) VisitNullConstNode(_ NullConstNode)
func (DefaultVisitor) VisitOrExprNodeEnd ¶
func (d DefaultVisitor) VisitOrExprNodeEnd(_ *OrExprNode)
func (DefaultVisitor) VisitOrExprNodeStart ¶
func (d DefaultVisitor) VisitOrExprNodeStart(_ *OrExprNode)
func (DefaultVisitor) VisitQueryNodeEnd ¶
func (d DefaultVisitor) VisitQueryNodeEnd(_ *queryNode)
func (DefaultVisitor) VisitQueryNodeStart ¶
func (d DefaultVisitor) VisitQueryNodeStart(_ *queryNode)
func (DefaultVisitor) VisitSetFunctionNodeEnd ¶
func (d DefaultVisitor) VisitSetFunctionNodeEnd(_ *SetFunctionNode)
func (DefaultVisitor) VisitSetFunctionNodeStart ¶
func (d DefaultVisitor) VisitSetFunctionNodeStart(_ *SetFunctionNode)
func (DefaultVisitor) VisitSkipExprNode ¶
func (d DefaultVisitor) VisitSkipExprNode(_ *SkipExprNode)
func (DefaultVisitor) VisitSortByNode ¶
func (d DefaultVisitor) VisitSortByNode(_ *SortByNode)
func (DefaultVisitor) VisitSortFieldNode ¶
func (d DefaultVisitor) VisitSortFieldNode(_ *SortFieldNode)
func (DefaultVisitor) VisitStringArrayNodeEnd ¶
func (d DefaultVisitor) VisitStringArrayNodeEnd(_ *StringArrayNode)
func (DefaultVisitor) VisitStringArrayNodeStart ¶
func (d DefaultVisitor) VisitStringArrayNodeStart(_ *StringArrayNode)
func (DefaultVisitor) VisitStringConstNode ¶
func (d DefaultVisitor) VisitStringConstNode(_ *StringConstNode)
func (DefaultVisitor) VisitStringSymbolNode ¶
func (d DefaultVisitor) VisitStringSymbolNode(_ *StringSymbolNode)
func (DefaultVisitor) VisitSubQueryNodeEnd ¶
func (d DefaultVisitor) VisitSubQueryNodeEnd(*subQueryNode)
func (DefaultVisitor) VisitSubQueryNodeStart ¶
func (d DefaultVisitor) VisitSubQueryNodeStart(*subQueryNode)
func (DefaultVisitor) VisitSymbol ¶
func (d DefaultVisitor) VisitSymbol(_ string, _ NodeType)
func (DefaultVisitor) VisitUntypedNotExprEnd ¶
func (d DefaultVisitor) VisitUntypedNotExprEnd(*UntypedNotExprNode)
func (DefaultVisitor) VisitUntypedNotExprStart ¶
func (d DefaultVisitor) VisitUntypedNotExprStart(*UntypedNotExprNode)
func (DefaultVisitor) VisitUntypedQueryNodeEnd ¶
func (d DefaultVisitor) VisitUntypedQueryNodeEnd(_ *untypedQueryNode)
func (DefaultVisitor) VisitUntypedQueryNodeStart ¶
func (d DefaultVisitor) VisitUntypedQueryNodeStart(_ *untypedQueryNode)
func (DefaultVisitor) VisitUntypedSubQueryNodeEnd ¶
func (d DefaultVisitor) VisitUntypedSubQueryNodeEnd(*UntypedSubQueryNode)
func (DefaultVisitor) VisitUntypedSubQueryNodeStart ¶
func (d DefaultVisitor) VisitUntypedSubQueryNodeStart(*UntypedSubQueryNode)
func (DefaultVisitor) VisitUntypedSymbolNode ¶
func (d DefaultVisitor) VisitUntypedSymbolNode(*UntypedSymbolNode)
type Float64ArrayNode ¶
type Float64ArrayNode struct {
// contains filtered or unexported fields
}
Float64ArrayNode encapsulates a float64 array
func (*Float64ArrayNode) Accept ¶
func (node *Float64ArrayNode) Accept(visitor Visitor)
func (*Float64ArrayNode) AsStringArray ¶
func (node *Float64ArrayNode) AsStringArray() *StringArrayNode
func (*Float64ArrayNode) GetType ¶
func (node *Float64ArrayNode) GetType() NodeType
func (*Float64ArrayNode) IsConst ¶
func (node *Float64ArrayNode) IsConst() bool
func (*Float64ArrayNode) String ¶
func (node *Float64ArrayNode) String() string
type Float64BetweenExprNode ¶
type Float64BetweenExprNode struct {
// contains filtered or unexported fields
}
func NewFloat64BetweenOp ¶
func NewFloat64BetweenOp(nodes []Float64Node) (*Float64BetweenExprNode, error)
func (*Float64BetweenExprNode) Accept ¶
func (node *Float64BetweenExprNode) Accept(visitor Visitor)
func (*Float64BetweenExprNode) EvalBool ¶
func (node *Float64BetweenExprNode) EvalBool(s Symbols) bool
func (*Float64BetweenExprNode) GetType ¶
func (*Float64BetweenExprNode) GetType() NodeType
func (*Float64BetweenExprNode) IsConst ¶
func (node *Float64BetweenExprNode) IsConst() bool
func (*Float64BetweenExprNode) String ¶
func (node *Float64BetweenExprNode) String() string
type Float64ConstNode ¶
type Float64ConstNode struct {
// contains filtered or unexported fields
}
Float64ConstNode wraps a float64 constant expression
func (*Float64ConstNode) Accept ¶
func (node *Float64ConstNode) Accept(visitor Visitor)
func (*Float64ConstNode) EvalFloat64 ¶
func (node *Float64ConstNode) EvalFloat64(_ Symbols) *float64
func (*Float64ConstNode) EvalString ¶
func (node *Float64ConstNode) EvalString(_ Symbols) *string
func (*Float64ConstNode) GetType ¶
func (node *Float64ConstNode) GetType() NodeType
func (*Float64ConstNode) IsConst ¶
func (node *Float64ConstNode) IsConst() bool
func (*Float64ConstNode) String ¶
func (node *Float64ConstNode) String() string
type Float64Node ¶
type Float64Node interface { StringNode EvalFloat64(s Symbols) *float64 }
type Float64SymbolNode ¶
type Float64SymbolNode struct {
// contains filtered or unexported fields
}
Float64SymbolNode implements lookup of symbol values of type float64
func (*Float64SymbolNode) Accept ¶
func (node *Float64SymbolNode) Accept(visitor Visitor)
func (*Float64SymbolNode) EvalFloat64 ¶
func (node *Float64SymbolNode) EvalFloat64(s Symbols) *float64
func (*Float64SymbolNode) EvalString ¶
func (node *Float64SymbolNode) EvalString(s Symbols) *string
func (*Float64SymbolNode) GetType ¶
func (node *Float64SymbolNode) GetType() NodeType
func (*Float64SymbolNode) IsConst ¶
func (node *Float64SymbolNode) IsConst() bool
func (*Float64SymbolNode) String ¶
func (node *Float64SymbolNode) String() string
func (*Float64SymbolNode) Symbol ¶
func (node *Float64SymbolNode) Symbol() string
type InArrayExprNode ¶
type InArrayExprNode struct {
// contains filtered or unexported fields
}
InArrayExprNode is transitory node that handles conversion from untyped to typed IN nodes
func NewInArrayExprNode ¶
func NewInArrayExprNode(left, right Node) *InArrayExprNode
func (*InArrayExprNode) Accept ¶
func (node *InArrayExprNode) Accept(visitor Visitor)
func (*InArrayExprNode) EvalBool ¶
func (node *InArrayExprNode) EvalBool(_ Symbols) bool
func (*InArrayExprNode) GetType ¶
func (*InArrayExprNode) GetType() NodeType
func (*InArrayExprNode) IsConst ¶
func (node *InArrayExprNode) IsConst() bool
func (*InArrayExprNode) String ¶
func (node *InArrayExprNode) String() string
func (*InArrayExprNode) TypeTransformBool ¶
func (node *InArrayExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
type InDatetimeArrayExprNode ¶
type InDatetimeArrayExprNode struct {
// contains filtered or unexported fields
}
func (*InDatetimeArrayExprNode) Accept ¶
func (node *InDatetimeArrayExprNode) Accept(visitor Visitor)
func (*InDatetimeArrayExprNode) EvalBool ¶
func (node *InDatetimeArrayExprNode) EvalBool(s Symbols) bool
func (*InDatetimeArrayExprNode) GetType ¶
func (*InDatetimeArrayExprNode) GetType() NodeType
func (*InDatetimeArrayExprNode) IsConst ¶
func (node *InDatetimeArrayExprNode) IsConst() bool
func (*InDatetimeArrayExprNode) String ¶
func (node *InDatetimeArrayExprNode) String() string
type InFloat64ArrayExprNode ¶
type InFloat64ArrayExprNode struct {
// contains filtered or unexported fields
}
func (*InFloat64ArrayExprNode) Accept ¶
func (node *InFloat64ArrayExprNode) Accept(visitor Visitor)
func (*InFloat64ArrayExprNode) EvalBool ¶
func (node *InFloat64ArrayExprNode) EvalBool(s Symbols) bool
func (*InFloat64ArrayExprNode) GetType ¶
func (node *InFloat64ArrayExprNode) GetType() NodeType
func (*InFloat64ArrayExprNode) IsConst ¶
func (node *InFloat64ArrayExprNode) IsConst() bool
func (*InFloat64ArrayExprNode) String ¶
func (node *InFloat64ArrayExprNode) String() string
type InInt64ArrayExprNode ¶
type InInt64ArrayExprNode struct {
// contains filtered or unexported fields
}
func (*InInt64ArrayExprNode) Accept ¶
func (node *InInt64ArrayExprNode) Accept(visitor Visitor)
func (*InInt64ArrayExprNode) EvalBool ¶
func (node *InInt64ArrayExprNode) EvalBool(s Symbols) bool
func (*InInt64ArrayExprNode) GetType ¶
func (node *InInt64ArrayExprNode) GetType() NodeType
func (*InInt64ArrayExprNode) IsConst ¶
func (node *InInt64ArrayExprNode) IsConst() bool
func (*InInt64ArrayExprNode) String ¶
func (node *InInt64ArrayExprNode) String() string
type InStringArrayExprNode ¶
type InStringArrayExprNode struct {
// contains filtered or unexported fields
}
func (*InStringArrayExprNode) Accept ¶
func (node *InStringArrayExprNode) Accept(visitor Visitor)
func (*InStringArrayExprNode) EvalBool ¶
func (node *InStringArrayExprNode) EvalBool(s Symbols) bool
func (*InStringArrayExprNode) GetType ¶
func (*InStringArrayExprNode) GetType() NodeType
func (*InStringArrayExprNode) IsConst ¶
func (node *InStringArrayExprNode) IsConst() bool
func (*InStringArrayExprNode) String ¶
func (node *InStringArrayExprNode) String() string
type Int64ArrayNode ¶
type Int64ArrayNode struct {
// contains filtered or unexported fields
}
Int64ArrayNode encapsulates an int64 array
func (*Int64ArrayNode) Accept ¶
func (node *Int64ArrayNode) Accept(visitor Visitor)
func (*Int64ArrayNode) AsStringArray ¶
func (node *Int64ArrayNode) AsStringArray() *StringArrayNode
func (*Int64ArrayNode) GetType ¶
func (node *Int64ArrayNode) GetType() NodeType
func (*Int64ArrayNode) IsConst ¶
func (node *Int64ArrayNode) IsConst() bool
func (*Int64ArrayNode) String ¶
func (node *Int64ArrayNode) String() string
func (*Int64ArrayNode) ToFloat64ArrayNode ¶
func (node *Int64ArrayNode) ToFloat64ArrayNode() *Float64ArrayNode
type Int64BetweenExprNode ¶
type Int64BetweenExprNode struct {
// contains filtered or unexported fields
}
func NewInt64BetweenOp ¶
func NewInt64BetweenOp(nodes []Int64Node) (*Int64BetweenExprNode, error)
func (*Int64BetweenExprNode) Accept ¶
func (node *Int64BetweenExprNode) Accept(visitor Visitor)
func (*Int64BetweenExprNode) EvalBool ¶
func (node *Int64BetweenExprNode) EvalBool(s Symbols) bool
func (*Int64BetweenExprNode) GetType ¶
func (*Int64BetweenExprNode) GetType() NodeType
func (*Int64BetweenExprNode) IsConst ¶
func (node *Int64BetweenExprNode) IsConst() bool
func (*Int64BetweenExprNode) String ¶
func (node *Int64BetweenExprNode) String() string
type Int64ConstNode ¶
type Int64ConstNode struct {
// contains filtered or unexported fields
}
Int64ConstNode wraps an int64 constant expression
func (*Int64ConstNode) Accept ¶
func (node *Int64ConstNode) Accept(visitor Visitor)
func (*Int64ConstNode) EvalInt64 ¶
func (node *Int64ConstNode) EvalInt64(_ Symbols) *int64
func (*Int64ConstNode) EvalString ¶
func (node *Int64ConstNode) EvalString(_ Symbols) *string
func (*Int64ConstNode) GetType ¶
func (node *Int64ConstNode) GetType() NodeType
func (*Int64ConstNode) IsConst ¶
func (node *Int64ConstNode) IsConst() bool
func (*Int64ConstNode) String ¶
func (node *Int64ConstNode) String() string
func (*Int64ConstNode) ToFloat64 ¶
func (node *Int64ConstNode) ToFloat64() Float64Node
type Int64Node ¶
type Int64Node interface { StringNode EvalInt64(s Symbols) *int64 ToFloat64() Float64Node }
type Int64SymbolNode ¶
type Int64SymbolNode struct {
// contains filtered or unexported fields
}
Int64SymbolNode implements lookup of symbol values of type int64
func (*Int64SymbolNode) Accept ¶
func (node *Int64SymbolNode) Accept(visitor Visitor)
func (*Int64SymbolNode) EvalInt64 ¶
func (node *Int64SymbolNode) EvalInt64(s Symbols) *int64
func (*Int64SymbolNode) EvalString ¶
func (node *Int64SymbolNode) EvalString(s Symbols) *string
func (*Int64SymbolNode) GetType ¶
func (node *Int64SymbolNode) GetType() NodeType
func (*Int64SymbolNode) IsConst ¶
func (node *Int64SymbolNode) IsConst() bool
func (*Int64SymbolNode) String ¶
func (node *Int64SymbolNode) String() string
func (*Int64SymbolNode) Symbol ¶
func (node *Int64SymbolNode) Symbol() string
func (*Int64SymbolNode) ToFloat64 ¶
func (node *Int64SymbolNode) ToFloat64() Float64Node
type Int64ToFloat64Node ¶
type Int64ToFloat64Node struct {
// contains filtered or unexported fields
}
func (*Int64ToFloat64Node) Accept ¶
func (node *Int64ToFloat64Node) Accept(visitor Visitor)
func (*Int64ToFloat64Node) EvalFloat64 ¶
func (node *Int64ToFloat64Node) EvalFloat64(s Symbols) *float64
func (*Int64ToFloat64Node) EvalString ¶
func (node *Int64ToFloat64Node) EvalString(s Symbols) *string
func (*Int64ToFloat64Node) GetType ¶
func (node *Int64ToFloat64Node) GetType() NodeType
func (*Int64ToFloat64Node) IsConst ¶
func (node *Int64ToFloat64Node) IsConst() bool
func (*Int64ToFloat64Node) String ¶
func (node *Int64ToFloat64Node) String() string
type IsEmptySetExprNode ¶
type IsEmptySetExprNode struct {
// contains filtered or unexported fields
}
func (*IsEmptySetExprNode) Accept ¶
func (node *IsEmptySetExprNode) Accept(visitor Visitor)
func (*IsEmptySetExprNode) EvalBool ¶
func (node *IsEmptySetExprNode) EvalBool(s Symbols) bool
func (*IsEmptySetExprNode) GetType ¶
func (node *IsEmptySetExprNode) GetType() NodeType
func (*IsEmptySetExprNode) IsConst ¶
func (node *IsEmptySetExprNode) IsConst() bool
func (*IsEmptySetExprNode) String ¶
func (node *IsEmptySetExprNode) String() string
func (*IsEmptySetExprNode) Symbol ¶
func (node *IsEmptySetExprNode) Symbol() string
type IsNilExprNode ¶
type IsNilExprNode struct {
// contains filtered or unexported fields
}
func (*IsNilExprNode) Accept ¶
func (node *IsNilExprNode) Accept(visitor Visitor)
func (*IsNilExprNode) EvalBool ¶
func (node *IsNilExprNode) EvalBool(s Symbols) bool
func (*IsNilExprNode) GetType ¶
func (*IsNilExprNode) GetType() NodeType
func (*IsNilExprNode) IsConst ¶
func (node *IsNilExprNode) IsConst() bool
func (*IsNilExprNode) String ¶
func (node *IsNilExprNode) String() string
type LimitExprNode ¶
type LimitExprNode struct {
Int64ConstNode
}
func (*LimitExprNode) Accept ¶
func (node *LimitExprNode) Accept(visitor Visitor)
func (*LimitExprNode) String ¶
func (node *LimitExprNode) String() string
type LoggingListener ¶
func (*LoggingListener) EnterAndExpr ¶
func (l *LoggingListener) EnterAndExpr(c *zitiql.AndExprContext)
func (*LoggingListener) EnterBetweenDateOp ¶
func (l *LoggingListener) EnterBetweenDateOp(c *zitiql.BetweenDateOpContext)
func (*LoggingListener) EnterBetweenNumberOp ¶
func (l *LoggingListener) EnterBetweenNumberOp(c *zitiql.BetweenNumberOpContext)
func (*LoggingListener) EnterBinaryContainsOp ¶
func (l *LoggingListener) EnterBinaryContainsOp(c *zitiql.BinaryContainsOpContext)
func (*LoggingListener) EnterBinaryEqualToBoolOp ¶
func (l *LoggingListener) EnterBinaryEqualToBoolOp(c *zitiql.BinaryEqualToBoolOpContext)
func (*LoggingListener) EnterBinaryEqualToDatetimeOp ¶
func (l *LoggingListener) EnterBinaryEqualToDatetimeOp(c *zitiql.BinaryEqualToDatetimeOpContext)
func (*LoggingListener) EnterBinaryEqualToNullOp ¶
func (l *LoggingListener) EnterBinaryEqualToNullOp(c *zitiql.BinaryEqualToNullOpContext)
func (*LoggingListener) EnterBinaryEqualToNumberOp ¶
func (l *LoggingListener) EnterBinaryEqualToNumberOp(c *zitiql.BinaryEqualToNumberOpContext)
func (*LoggingListener) EnterBinaryEqualToStringOp ¶
func (l *LoggingListener) EnterBinaryEqualToStringOp(c *zitiql.BinaryEqualToStringOpContext)
func (*LoggingListener) EnterBinaryGreaterThanDatetimeOp ¶
func (l *LoggingListener) EnterBinaryGreaterThanDatetimeOp(c *zitiql.BinaryGreaterThanDatetimeOpContext)
func (*LoggingListener) EnterBinaryGreaterThanNumberOp ¶
func (l *LoggingListener) EnterBinaryGreaterThanNumberOp(c *zitiql.BinaryGreaterThanNumberOpContext)
func (*LoggingListener) EnterBinaryGreaterThanStringOp ¶
func (l *LoggingListener) EnterBinaryGreaterThanStringOp(c *zitiql.BinaryGreaterThanStringOpContext)
func (*LoggingListener) EnterBinaryLessThanDatetimeOp ¶
func (l *LoggingListener) EnterBinaryLessThanDatetimeOp(c *zitiql.BinaryLessThanDatetimeOpContext)
func (*LoggingListener) EnterBinaryLessThanNumberOp ¶
func (l *LoggingListener) EnterBinaryLessThanNumberOp(c *zitiql.BinaryLessThanNumberOpContext)
func (*LoggingListener) EnterBinaryLessThanStringOp ¶
func (l *LoggingListener) EnterBinaryLessThanStringOp(c *zitiql.BinaryLessThanStringOpContext)
func (*LoggingListener) EnterBinaryLhs ¶
func (l *LoggingListener) EnterBinaryLhs(c *zitiql.BinaryLhsContext)
func (*LoggingListener) EnterBoolConst ¶
func (l *LoggingListener) EnterBoolConst(c *zitiql.BoolConstContext)
func (*LoggingListener) EnterBoolSymbol ¶
func (l *LoggingListener) EnterBoolSymbol(c *zitiql.BoolSymbolContext)
func (*LoggingListener) EnterDatetimeArray ¶
func (l *LoggingListener) EnterDatetimeArray(c *zitiql.DatetimeArrayContext)
func (*LoggingListener) EnterEnd ¶
func (l *LoggingListener) EnterEnd(c *zitiql.EndContext)
func (*LoggingListener) EnterEveryRule ¶
func (l *LoggingListener) EnterEveryRule(ctx antlr.ParserRuleContext)
func (*LoggingListener) EnterGroup ¶
func (l *LoggingListener) EnterGroup(c *zitiql.GroupContext)
func (*LoggingListener) EnterInDatetimeArrayOp ¶
func (l *LoggingListener) EnterInDatetimeArrayOp(c *zitiql.InDatetimeArrayOpContext)
func (*LoggingListener) EnterInNumberArrayOp ¶
func (l *LoggingListener) EnterInNumberArrayOp(c *zitiql.InNumberArrayOpContext)
func (*LoggingListener) EnterInStringArrayOp ¶
func (l *LoggingListener) EnterInStringArrayOp(c *zitiql.InStringArrayOpContext)
func (*LoggingListener) EnterIsEmptyFunction ¶
func (l *LoggingListener) EnterIsEmptyFunction(c *zitiql.IsEmptyFunctionContext)
func (*LoggingListener) EnterLimitExpr ¶
func (l *LoggingListener) EnterLimitExpr(c *zitiql.LimitExprContext)
func (*LoggingListener) EnterNotExpr ¶
func (l *LoggingListener) EnterNotExpr(c *zitiql.NotExprContext)
func (*LoggingListener) EnterNumberArray ¶
func (l *LoggingListener) EnterNumberArray(c *zitiql.NumberArrayContext)
func (*LoggingListener) EnterOperationOp ¶
func (l *LoggingListener) EnterOperationOp(c *zitiql.OperationOpContext)
func (*LoggingListener) EnterOrExpr ¶
func (l *LoggingListener) EnterOrExpr(c *zitiql.OrExprContext)
func (*LoggingListener) EnterQueryStmt ¶
func (l *LoggingListener) EnterQueryStmt(c *zitiql.QueryStmtContext)
func (*LoggingListener) EnterSetExpr ¶
func (l *LoggingListener) EnterSetExpr(c *zitiql.SetExprContext)
func (*LoggingListener) EnterSetFunctionExpr ¶
func (l *LoggingListener) EnterSetFunctionExpr(c *zitiql.SetFunctionExprContext)
func (*LoggingListener) EnterSkipExpr ¶
func (l *LoggingListener) EnterSkipExpr(c *zitiql.SkipExprContext)
func (*LoggingListener) EnterSortByExpr ¶
func (l *LoggingListener) EnterSortByExpr(c *zitiql.SortByExprContext)
func (*LoggingListener) EnterSortFieldExpr ¶
func (l *LoggingListener) EnterSortFieldExpr(c *zitiql.SortFieldExprContext)
func (*LoggingListener) EnterStringArray ¶
func (l *LoggingListener) EnterStringArray(c *zitiql.StringArrayContext)
func (*LoggingListener) EnterSubQuery ¶
func (l *LoggingListener) EnterSubQuery(c *zitiql.SubQueryContext)
func (*LoggingListener) ExitAndExpr ¶
func (l *LoggingListener) ExitAndExpr(c *zitiql.AndExprContext)
func (*LoggingListener) ExitBetweenDateOp ¶
func (l *LoggingListener) ExitBetweenDateOp(c *zitiql.BetweenDateOpContext)
func (*LoggingListener) ExitBetweenNumberOp ¶
func (l *LoggingListener) ExitBetweenNumberOp(c *zitiql.BetweenNumberOpContext)
func (*LoggingListener) ExitBinaryContainsOp ¶
func (l *LoggingListener) ExitBinaryContainsOp(c *zitiql.BinaryContainsOpContext)
func (*LoggingListener) ExitBinaryEqualToBoolOp ¶
func (l *LoggingListener) ExitBinaryEqualToBoolOp(c *zitiql.BinaryEqualToBoolOpContext)
func (*LoggingListener) ExitBinaryEqualToDatetimeOp ¶
func (l *LoggingListener) ExitBinaryEqualToDatetimeOp(c *zitiql.BinaryEqualToDatetimeOpContext)
func (*LoggingListener) ExitBinaryEqualToNullOp ¶
func (l *LoggingListener) ExitBinaryEqualToNullOp(c *zitiql.BinaryEqualToNullOpContext)
func (*LoggingListener) ExitBinaryEqualToNumberOp ¶
func (l *LoggingListener) ExitBinaryEqualToNumberOp(c *zitiql.BinaryEqualToNumberOpContext)
func (*LoggingListener) ExitBinaryEqualToStringOp ¶
func (l *LoggingListener) ExitBinaryEqualToStringOp(c *zitiql.BinaryEqualToStringOpContext)
func (*LoggingListener) ExitBinaryGreaterThanDatetimeOp ¶
func (l *LoggingListener) ExitBinaryGreaterThanDatetimeOp(c *zitiql.BinaryGreaterThanDatetimeOpContext)
func (*LoggingListener) ExitBinaryGreaterThanNumberOp ¶
func (l *LoggingListener) ExitBinaryGreaterThanNumberOp(c *zitiql.BinaryGreaterThanNumberOpContext)
func (*LoggingListener) ExitBinaryGreaterThanStringOp ¶
func (l *LoggingListener) ExitBinaryGreaterThanStringOp(c *zitiql.BinaryGreaterThanStringOpContext)
func (*LoggingListener) ExitBinaryLessThanDatetimeOp ¶
func (l *LoggingListener) ExitBinaryLessThanDatetimeOp(c *zitiql.BinaryLessThanDatetimeOpContext)
func (*LoggingListener) ExitBinaryLessThanNumberOp ¶
func (l *LoggingListener) ExitBinaryLessThanNumberOp(c *zitiql.BinaryLessThanNumberOpContext)
func (*LoggingListener) ExitBinaryLessThanStringOp ¶
func (l *LoggingListener) ExitBinaryLessThanStringOp(c *zitiql.BinaryLessThanStringOpContext)
func (*LoggingListener) ExitBinaryLhs ¶
func (l *LoggingListener) ExitBinaryLhs(c *zitiql.BinaryLhsContext)
func (*LoggingListener) ExitBoolConst ¶
func (l *LoggingListener) ExitBoolConst(c *zitiql.BoolConstContext)
func (*LoggingListener) ExitBoolSymbol ¶
func (l *LoggingListener) ExitBoolSymbol(c *zitiql.BoolSymbolContext)
func (*LoggingListener) ExitDatetimeArray ¶
func (l *LoggingListener) ExitDatetimeArray(c *zitiql.DatetimeArrayContext)
func (*LoggingListener) ExitEnd ¶
func (l *LoggingListener) ExitEnd(c *zitiql.EndContext)
func (*LoggingListener) ExitEveryRule ¶
func (l *LoggingListener) ExitEveryRule(ctx antlr.ParserRuleContext)
func (*LoggingListener) ExitGroup ¶
func (l *LoggingListener) ExitGroup(c *zitiql.GroupContext)
func (*LoggingListener) ExitInDatetimeArrayOp ¶
func (l *LoggingListener) ExitInDatetimeArrayOp(c *zitiql.InDatetimeArrayOpContext)
func (*LoggingListener) ExitInNumberArrayOp ¶
func (l *LoggingListener) ExitInNumberArrayOp(c *zitiql.InNumberArrayOpContext)
func (*LoggingListener) ExitInStringArrayOp ¶
func (l *LoggingListener) ExitInStringArrayOp(c *zitiql.InStringArrayOpContext)
func (*LoggingListener) ExitIsEmptyFunction ¶
func (l *LoggingListener) ExitIsEmptyFunction(c *zitiql.IsEmptyFunctionContext)
func (*LoggingListener) ExitLimitExpr ¶
func (l *LoggingListener) ExitLimitExpr(c *zitiql.LimitExprContext)
func (*LoggingListener) ExitNotExpr ¶
func (l *LoggingListener) ExitNotExpr(c *zitiql.NotExprContext)
func (*LoggingListener) ExitNumberArray ¶
func (l *LoggingListener) ExitNumberArray(c *zitiql.NumberArrayContext)
func (*LoggingListener) ExitOperationOp ¶
func (l *LoggingListener) ExitOperationOp(c *zitiql.OperationOpContext)
func (*LoggingListener) ExitOrExpr ¶
func (l *LoggingListener) ExitOrExpr(c *zitiql.OrExprContext)
func (*LoggingListener) ExitQueryStmt ¶
func (l *LoggingListener) ExitQueryStmt(c *zitiql.QueryStmtContext)
func (*LoggingListener) ExitSetExpr ¶
func (l *LoggingListener) ExitSetExpr(c *zitiql.SetExprContext)
func (*LoggingListener) ExitSetFunctionExpr ¶
func (l *LoggingListener) ExitSetFunctionExpr(c *zitiql.SetFunctionExprContext)
func (*LoggingListener) ExitSkipExpr ¶
func (l *LoggingListener) ExitSkipExpr(c *zitiql.SkipExprContext)
func (*LoggingListener) ExitSortByExpr ¶
func (l *LoggingListener) ExitSortByExpr(c *zitiql.SortByExprContext)
func (*LoggingListener) ExitSortFieldExpr ¶
func (l *LoggingListener) ExitSortFieldExpr(c *zitiql.SortFieldExprContext)
func (*LoggingListener) ExitStringArray ¶
func (l *LoggingListener) ExitStringArray(c *zitiql.StringArrayContext)
func (*LoggingListener) ExitSubQuery ¶
func (l *LoggingListener) ExitSubQuery(c *zitiql.SubQueryContext)
func (*LoggingListener) VisitErrorNode ¶
func (l *LoggingListener) VisitErrorNode(node antlr.ErrorNode)
func (*LoggingListener) VisitTerminal ¶
func (l *LoggingListener) VisitTerminal(node antlr.TerminalNode)
type NotExprNode ¶
type NotExprNode struct {
// contains filtered or unexported fields
}
NotExprNode implements logical NOT on a wrapped boolean expression
func (*NotExprNode) Accept ¶
func (node *NotExprNode) Accept(visitor Visitor)
func (*NotExprNode) EvalBool ¶
func (node *NotExprNode) EvalBool(s Symbols) bool
func (*NotExprNode) GetType ¶
func (node *NotExprNode) GetType() NodeType
func (*NotExprNode) IsConst ¶
func (node *NotExprNode) IsConst() bool
func (*NotExprNode) String ¶
func (node *NotExprNode) String() string
func (*NotExprNode) TypeTransformBool ¶
func (node *NotExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
type NullConstNode ¶
type NullConstNode struct{}
NullNode wraps a null constant expression
func (NullConstNode) Accept ¶
func (node NullConstNode) Accept(visitor Visitor)
func (NullConstNode) GetType ¶
func (NullConstNode) GetType() NodeType
func (NullConstNode) IsConst ¶
func (node NullConstNode) IsConst() bool
func (NullConstNode) String ¶
func (NullConstNode) String() string
type OrExprNode ¶
type OrExprNode struct {
// contains filtered or unexported fields
}
OrExprNode implements logical OR on two wrapped boolean expressions
func (*OrExprNode) Accept ¶
func (node *OrExprNode) Accept(visitor Visitor)
func (*OrExprNode) EvalBool ¶
func (node *OrExprNode) EvalBool(s Symbols) bool
func (*OrExprNode) GetType ¶
func (node *OrExprNode) GetType() NodeType
func (*OrExprNode) IsConst ¶
func (node *OrExprNode) IsConst() bool
func (*OrExprNode) String ¶
func (node *OrExprNode) String() string
func (*OrExprNode) TypeTransformBool ¶
func (node *OrExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
type Query ¶
type Query interface { BoolNode GetPredicate() BoolNode SetPredicate(BoolNode) // GetSortFields returns the fields on which to sort. Returning nil or empty means the default sort order // will be used, usually by id ascending GetSortFields() []SortField AdoptSortFields(query Query) error // GetSkip returns the number of rows to skip. nil, or a values less than one will mean no rows skipped GetSkip() *int64 // GetLimit returns the maximum number of rows to return. Returning nil will use the system configured // default for max rows. Returning -1 means do not limit results. GetLimit() *int64 SetSkip(int64) SetLimit(int64) }
type SeekOptimizableBoolNode ¶
type SeekOptimizableBoolNode interface { IsSeekable() bool EvalBoolWithSeek(s Symbols, cursor TypeSeekableSetCursor) bool }
type SeekableSetCursor ¶
type SetCursor ¶
func NewEmptyCursor ¶
func NewEmptyCursor() SetCursor
func NewFilteredCursor ¶
func NewTreeCursor ¶
func NewUnionSetCursor ¶
type SetFunction ¶
type SetFunction int
const ( SetFunctionAllOf SetFunction = iota SetFunctionAnyOf SetFunctionCount SetFunctionIsEmpty )
type SetFunctionNode ¶
type SetFunctionNode struct {
// contains filtered or unexported fields
}
func (*SetFunctionNode) Accept ¶
func (node *SetFunctionNode) Accept(visitor Visitor)
func (*SetFunctionNode) GetType ¶
func (node *SetFunctionNode) GetType() NodeType
func (*SetFunctionNode) IsCompare ¶
func (node *SetFunctionNode) IsCompare() bool
func (*SetFunctionNode) IsConst ¶
func (node *SetFunctionNode) IsConst() bool
func (*SetFunctionNode) MoveUpTree ¶
func (node *SetFunctionNode) MoveUpTree(boolNode BoolNode) (BoolNode, error)
func (*SetFunctionNode) String ¶
func (node *SetFunctionNode) String() string
func (*SetFunctionNode) TypeTransform ¶
func (node *SetFunctionNode) TypeTransform(s SymbolTypes) (Node, error)
type SkipExprNode ¶
type SkipExprNode struct {
Int64ConstNode
}
func (*SkipExprNode) Accept ¶
func (node *SkipExprNode) Accept(visitor Visitor)
func (*SkipExprNode) String ¶
func (node *SkipExprNode) String() string
type SortByNode ¶
type SortByNode struct {
SortFields []*SortFieldNode
}
func (*SortByNode) Accept ¶
func (node *SortByNode) Accept(visitor Visitor)
func (*SortByNode) GetType ¶
func (node *SortByNode) GetType() NodeType
func (*SortByNode) IsConst ¶
func (node *SortByNode) IsConst() bool
func (*SortByNode) String ¶
func (node *SortByNode) String() string
func (*SortByNode) TypeTransform ¶
func (node *SortByNode) TypeTransform(s SymbolTypes) (Node, error)
type SortDirection ¶
type SortDirection bool
const ( SortAscending SortDirection = true SortDescending SortDirection = false )
type SortFieldNode ¶
type SortFieldNode struct {
// contains filtered or unexported fields
}
func (*SortFieldNode) Accept ¶
func (node *SortFieldNode) Accept(visitor Visitor)
func (*SortFieldNode) GetType ¶
func (node *SortFieldNode) GetType() NodeType
func (*SortFieldNode) IsAscending ¶
func (node *SortFieldNode) IsAscending() bool
func (*SortFieldNode) IsConst ¶
func (node *SortFieldNode) IsConst() bool
func (*SortFieldNode) String ¶
func (node *SortFieldNode) String() string
func (*SortFieldNode) Symbol ¶
func (node *SortFieldNode) Symbol() string
func (*SortFieldNode) TypeTransform ¶
func (node *SortFieldNode) TypeTransform(s SymbolTypes) (Node, error)
type StringArrayNode ¶
type StringArrayNode struct {
// contains filtered or unexported fields
}
StringArrayNode encapsulates a string array
func NewStringArrayNode ¶
func NewStringArrayNode(values []string) *StringArrayNode
func (*StringArrayNode) Accept ¶
func (node *StringArrayNode) Accept(visitor Visitor)
func (*StringArrayNode) AsStringArray ¶
func (node *StringArrayNode) AsStringArray() *StringArrayNode
func (*StringArrayNode) GetType ¶
func (*StringArrayNode) GetType() NodeType
func (*StringArrayNode) IsConst ¶
func (node *StringArrayNode) IsConst() bool
func (*StringArrayNode) String ¶
func (node *StringArrayNode) String() string
type StringConstNode ¶
type StringConstNode struct {
// contains filtered or unexported fields
}
StringConstNode wraps a string constant expression
func (*StringConstNode) Accept ¶
func (node *StringConstNode) Accept(visitor Visitor)
func (*StringConstNode) EvalString ¶
func (node *StringConstNode) EvalString(_ Symbols) *string
func (*StringConstNode) GetType ¶
func (node *StringConstNode) GetType() NodeType
func (*StringConstNode) IsConst ¶
func (node *StringConstNode) IsConst() bool
func (*StringConstNode) String ¶
func (node *StringConstNode) String() string
type StringNode ¶
type StringSymbolNode ¶
type StringSymbolNode struct {
// contains filtered or unexported fields
}
StringSymbolNode implements lookup of symbol values of type string
func (*StringSymbolNode) Accept ¶
func (node *StringSymbolNode) Accept(visitor Visitor)
func (*StringSymbolNode) EvalString ¶
func (node *StringSymbolNode) EvalString(s Symbols) *string
func (*StringSymbolNode) GetType ¶
func (node *StringSymbolNode) GetType() NodeType
func (*StringSymbolNode) IsConst ¶
func (node *StringSymbolNode) IsConst() bool
func (*StringSymbolNode) String ¶
func (node *StringSymbolNode) String() string
func (*StringSymbolNode) Symbol ¶
func (node *StringSymbolNode) Symbol() string
type SymbolNode ¶
func NewUntypedSymbolNode ¶
func NewUntypedSymbolNode(symbol string) SymbolNode
type SymbolTypes ¶
type SymbolValidator ¶
type SymbolValidator struct { DefaultVisitor errorz.ErrorHolderImpl // contains filtered or unexported fields }
func (*SymbolValidator) VisitSetFunctionNodeEnd ¶
func (visitor *SymbolValidator) VisitSetFunctionNodeEnd(node *SetFunctionNode)
func (*SymbolValidator) VisitSetFunctionNodeStart ¶
func (visitor *SymbolValidator) VisitSetFunctionNodeStart(_ *SetFunctionNode)
func (*SymbolValidator) VisitUntypedSubQueryNodeEnd ¶
func (visitor *SymbolValidator) VisitUntypedSubQueryNodeEnd(*UntypedSubQueryNode)
func (*SymbolValidator) VisitUntypedSubQueryNodeStart ¶
func (visitor *SymbolValidator) VisitUntypedSubQueryNodeStart(node *UntypedSubQueryNode)
func (*SymbolValidator) VisitUntypedSymbolNode ¶
func (visitor *SymbolValidator) VisitUntypedSymbolNode(node *UntypedSymbolNode)
type Symbols ¶
type Symbols interface { SymbolTypes EvalBool(name string) *bool EvalString(name string) *string EvalInt64(name string) *int64 EvalFloat64(name string) *float64 EvalDatetime(name string) *time.Time IsNil(name string) bool OpenSetCursor(name string) SetCursor OpenSetCursorForQuery(name string, query Query) SetCursor }
type ToBoltListener ¶
type ToBoltListener struct { LoggingListener PrintRuleLocation bool PrintChildren bool PrintStackOps bool // contains filtered or unexported fields }
func NewListener ¶
func NewListener() *ToBoltListener
func (*ToBoltListener) EnterDatetimeArray ¶
func (bl *ToBoltListener) EnterDatetimeArray(c *zitiql.DatetimeArrayContext)
func (*ToBoltListener) EnterNumberArray ¶
func (bl *ToBoltListener) EnterNumberArray(c *zitiql.NumberArrayContext)
func (*ToBoltListener) EnterSortByExpr ¶
func (bl *ToBoltListener) EnterSortByExpr(c *zitiql.SortByExprContext)
func (*ToBoltListener) EnterStringArray ¶
func (bl *ToBoltListener) EnterStringArray(c *zitiql.StringArrayContext)
func (*ToBoltListener) ExitAndExpr ¶
func (bl *ToBoltListener) ExitAndExpr(c *zitiql.AndExprContext)
func (*ToBoltListener) ExitBetweenDateOp ¶
func (bl *ToBoltListener) ExitBetweenDateOp(c *zitiql.BetweenDateOpContext)
func (*ToBoltListener) ExitBetweenNumberOp ¶
func (bl *ToBoltListener) ExitBetweenNumberOp(c *zitiql.BetweenNumberOpContext)
func (*ToBoltListener) ExitBinaryContainsOp ¶
func (bl *ToBoltListener) ExitBinaryContainsOp(c *zitiql.BinaryContainsOpContext)
func (*ToBoltListener) ExitBinaryEqualToBoolOp ¶
func (bl *ToBoltListener) ExitBinaryEqualToBoolOp(c *zitiql.BinaryEqualToBoolOpContext)
func (*ToBoltListener) ExitBinaryEqualToDatetimeOp ¶
func (bl *ToBoltListener) ExitBinaryEqualToDatetimeOp(c *zitiql.BinaryEqualToDatetimeOpContext)
func (*ToBoltListener) ExitBinaryEqualToNullOp ¶
func (bl *ToBoltListener) ExitBinaryEqualToNullOp(c *zitiql.BinaryEqualToNullOpContext)
func (*ToBoltListener) ExitBinaryEqualToNumberOp ¶
func (bl *ToBoltListener) ExitBinaryEqualToNumberOp(c *zitiql.BinaryEqualToNumberOpContext)
func (*ToBoltListener) ExitBinaryEqualToStringOp ¶
func (bl *ToBoltListener) ExitBinaryEqualToStringOp(c *zitiql.BinaryEqualToStringOpContext)
func (*ToBoltListener) ExitBinaryGreaterThanDatetimeOp ¶
func (bl *ToBoltListener) ExitBinaryGreaterThanDatetimeOp(c *zitiql.BinaryGreaterThanDatetimeOpContext)
func (*ToBoltListener) ExitBinaryGreaterThanNumberOp ¶
func (bl *ToBoltListener) ExitBinaryGreaterThanNumberOp(c *zitiql.BinaryGreaterThanNumberOpContext)
func (*ToBoltListener) ExitBinaryGreaterThanStringOp ¶
func (bl *ToBoltListener) ExitBinaryGreaterThanStringOp(c *zitiql.BinaryGreaterThanStringOpContext)
func (*ToBoltListener) ExitBinaryLessThanDatetimeOp ¶
func (bl *ToBoltListener) ExitBinaryLessThanDatetimeOp(c *zitiql.BinaryLessThanDatetimeOpContext)
func (*ToBoltListener) ExitBinaryLessThanNumberOp ¶
func (bl *ToBoltListener) ExitBinaryLessThanNumberOp(c *zitiql.BinaryLessThanNumberOpContext)
func (*ToBoltListener) ExitBinaryLessThanStringOp ¶
func (bl *ToBoltListener) ExitBinaryLessThanStringOp(c *zitiql.BinaryLessThanStringOpContext)
func (*ToBoltListener) ExitBinaryOp ¶
func (bl *ToBoltListener) ExitBinaryOp()
func (*ToBoltListener) ExitDatetimeArray ¶
func (bl *ToBoltListener) ExitDatetimeArray(c *zitiql.DatetimeArrayContext)
func (*ToBoltListener) ExitInDatetimeArrayOp ¶
func (bl *ToBoltListener) ExitInDatetimeArrayOp(c *zitiql.InDatetimeArrayOpContext)
func (*ToBoltListener) ExitInNumberArrayOp ¶
func (bl *ToBoltListener) ExitInNumberArrayOp(c *zitiql.InNumberArrayOpContext)
func (*ToBoltListener) ExitInStringArrayOp ¶
func (bl *ToBoltListener) ExitInStringArrayOp(c *zitiql.InStringArrayOpContext)
func (*ToBoltListener) ExitIsEmptyFunction ¶
func (bl *ToBoltListener) ExitIsEmptyFunction(c *zitiql.IsEmptyFunctionContext)
func (*ToBoltListener) ExitLimitExpr ¶
func (bl *ToBoltListener) ExitLimitExpr(c *zitiql.LimitExprContext)
func (*ToBoltListener) ExitNotExpr ¶
func (bl *ToBoltListener) ExitNotExpr(c *zitiql.NotExprContext)
func (*ToBoltListener) ExitNumberArray ¶
func (bl *ToBoltListener) ExitNumberArray(c *zitiql.NumberArrayContext)
func (*ToBoltListener) ExitOrExpr ¶
func (bl *ToBoltListener) ExitOrExpr(c *zitiql.OrExprContext)
func (*ToBoltListener) ExitQueryStmt ¶
func (bl *ToBoltListener) ExitQueryStmt(c *zitiql.QueryStmtContext)
func (*ToBoltListener) ExitSetFunctionExpr ¶
func (bl *ToBoltListener) ExitSetFunctionExpr(c *zitiql.SetFunctionExprContext)
func (*ToBoltListener) ExitSkipExpr ¶
func (bl *ToBoltListener) ExitSkipExpr(c *zitiql.SkipExprContext)
func (*ToBoltListener) ExitSortByExpr ¶
func (bl *ToBoltListener) ExitSortByExpr(c *zitiql.SortByExprContext)
func (*ToBoltListener) ExitSortFieldExpr ¶
func (bl *ToBoltListener) ExitSortFieldExpr(c *zitiql.SortFieldExprContext)
func (*ToBoltListener) ExitStringArray ¶
func (bl *ToBoltListener) ExitStringArray(c *zitiql.StringArrayContext)
func (*ToBoltListener) ExitSubQuery ¶
func (bl *ToBoltListener) ExitSubQuery(c *zitiql.SubQueryContext)
func (*ToBoltListener) GetError ¶
func (bl *ToBoltListener) GetError() error
func (*ToBoltListener) HasError ¶
func (bl *ToBoltListener) HasError() bool
func (*ToBoltListener) SetError ¶
func (bl *ToBoltListener) SetError(err error)
func (*ToBoltListener) VisitTerminal ¶
func (bl *ToBoltListener) VisitTerminal(node antlr.TerminalNode)
type TypeSeekableSetCursor ¶
type TypeSeekableSetCursor interface { SeekableSetCursor SeekToString(val string) }
type TypeTransformable ¶
type TypeTransformable interface { Node TypeTransform(s SymbolTypes) (Node, error) }
type UnknownSymbolError ¶
type UnknownSymbolError struct {
Symbol string
}
func NewUnknownSymbolError ¶
func NewUnknownSymbolError(symbol string) UnknownSymbolError
func (UnknownSymbolError) Error ¶
func (u UnknownSymbolError) Error() string
type UntypedNotExprNode ¶
type UntypedNotExprNode struct {
// contains filtered or unexported fields
}
func (*UntypedNotExprNode) Accept ¶
func (node *UntypedNotExprNode) Accept(visitor Visitor)
func (*UntypedNotExprNode) EvalBool ¶
func (node *UntypedNotExprNode) EvalBool(_ Symbols) bool
func (*UntypedNotExprNode) GetType ¶
func (node *UntypedNotExprNode) GetType() NodeType
func (*UntypedNotExprNode) IsConst ¶
func (node *UntypedNotExprNode) IsConst() bool
func (*UntypedNotExprNode) String ¶
func (node *UntypedNotExprNode) String() string
func (*UntypedNotExprNode) TypeTransformBool ¶
func (node *UntypedNotExprNode) TypeTransformBool(s SymbolTypes) (BoolNode, error)
type UntypedSubQueryNode ¶
type UntypedSubQueryNode struct {
// contains filtered or unexported fields
}
func (*UntypedSubQueryNode) Accept ¶
func (node *UntypedSubQueryNode) Accept(visitor Visitor)
func (*UntypedSubQueryNode) GetType ¶
func (node *UntypedSubQueryNode) GetType() NodeType
func (*UntypedSubQueryNode) IsConst ¶
func (node *UntypedSubQueryNode) IsConst() bool
func (*UntypedSubQueryNode) String ¶
func (node *UntypedSubQueryNode) String() string
func (*UntypedSubQueryNode) Symbol ¶
func (node *UntypedSubQueryNode) Symbol() string
func (*UntypedSubQueryNode) TypeTransform ¶
func (node *UntypedSubQueryNode) TypeTransform(s SymbolTypes) (Node, error)
type UntypedSymbolNode ¶
type UntypedSymbolNode struct {
// contains filtered or unexported fields
}
func (*UntypedSymbolNode) Accept ¶
func (node *UntypedSymbolNode) Accept(visitor Visitor)
func (*UntypedSymbolNode) GetType ¶
func (node *UntypedSymbolNode) GetType() NodeType
func (*UntypedSymbolNode) IsConst ¶
func (node *UntypedSymbolNode) IsConst() bool
func (*UntypedSymbolNode) String ¶
func (node *UntypedSymbolNode) String() string
func (*UntypedSymbolNode) Symbol ¶
func (node *UntypedSymbolNode) Symbol() string
func (*UntypedSymbolNode) TypeTransform ¶
func (node *UntypedSymbolNode) TypeTransform(s SymbolTypes) (Node, error)
type Visitor ¶
type Visitor interface { VisitNotExprNodeStart(node *NotExprNode) VisitNotExprNodeEnd(node *NotExprNode) VisitAndExprNodeStart(node *AndExprNode) VisitAndExprNodeEnd(node *AndExprNode) VisitOrExprNodeStart(node *OrExprNode) VisitOrExprNodeEnd(node *OrExprNode) VisitBinaryBoolExprNodeStart(node *BinaryBoolExprNode) VisitBinaryBoolExprNodeEnd(node *BinaryBoolExprNode) VisitBinaryDatetimeExprNodeStart(node *BinaryDatetimeExprNode) VisitBinaryDatetimeExprNodeEnd(node *BinaryDatetimeExprNode) VisitBinaryFloat64ExprNodeStart(node *BinaryFloat64ExprNode) VisitBinaryFloat64ExprNodeEnd(node *BinaryFloat64ExprNode) VisitBinaryInt64ExprNodeStart(node *BinaryInt64ExprNode) VisitBinaryInt64ExprNodeEnd(node *BinaryInt64ExprNode) VisitBinaryStringExprNodeStart(node *BinaryStringExprNode) VisitBinaryStringExprNodeEnd(node *BinaryStringExprNode) VisitIsNilExprNodeStart(node *IsNilExprNode) VisitIsNilExprNodeEnd(node *IsNilExprNode) VisitInt64BetweenExprNodeStart(node *Int64BetweenExprNode) VisitInt64BetweenExprNodeEnd(node *Int64BetweenExprNode) VisitFloat64BetweenExprNodeStart(node *Float64BetweenExprNode) VisitFloat64BetweenExprNodeEnd(node *Float64BetweenExprNode) VisitDatetimeBetweenExprNodeStart(node *DatetimeBetweenExprNode) VisitDatetimeBetweenExprNodeEnd(node *DatetimeBetweenExprNode) VisitInDatetimeArrayExprNodeStart(node *InDatetimeArrayExprNode) VisitInDatetimeArrayExprNodeEnd(node *InDatetimeArrayExprNode) VisitInFloat64ArrayExprNodeStart(node *InFloat64ArrayExprNode) VisitInFloat64ArrayExprNodeEnd(node *InFloat64ArrayExprNode) VisitInInt64ArrayExprNodeStart(node *InInt64ArrayExprNode) VisitInInt64ArrayExprNodeEnd(node *InInt64ArrayExprNode) VisitInStringArrayExprNodeStart(node *InStringArrayExprNode) VisitInStringArrayExprNodeEnd(node *InStringArrayExprNode) // untyped transient nodes VisitBooleanLogicExprNodeStart(node *BooleanLogicExprNode) VisitBooleanLogicExprNodeEnd(node *BooleanLogicExprNode) VisitBinaryExprNodeStart(node *BinaryExprNode) VisitBinaryExprNodeEnd(node *BinaryExprNode) VisitInArrayExprNodeStart(node *InArrayExprNode) VisitInArrayExprNodeEnd(node *InArrayExprNode) VisitBetweenExprNodeStart(node *BetweenExprNode) VisitBetweenExprNodeEnd(node *BetweenExprNode) VisitUntypedSymbolNode(node *UntypedSymbolNode) VisitSetFunctionNodeStart(node *SetFunctionNode) VisitSetFunctionNodeEnd(node *SetFunctionNode) VisitUntypedNotExprStart(node *UntypedNotExprNode) VisitUntypedNotExprEnd(node *UntypedNotExprNode) // const nodes VisitBoolConstNode(node *BoolConstNode) VisitDatetimeConstNode(node *DatetimeConstNode) VisitFloat64ConstNode(node *Float64ConstNode) VisitInt64ConstNode(node *Int64ConstNode) VisitStringConstNode(node *StringConstNode) VisitNullConstNode(node NullConstNode) VisitDatetimeArrayNodeStart(node *DatetimeArrayNode) VisitDatetimeArrayNodeEnd(node *DatetimeArrayNode) VisitFloat64ArrayNodeStart(node *Float64ArrayNode) VisitFloat64ArrayNodeEnd(node *Float64ArrayNode) VisitInt64ArrayNodeStart(node *Int64ArrayNode) VisitInt64ArrayNodeEnd(node *Int64ArrayNode) VisitStringArrayNodeStart(node *StringArrayNode) VisitStringArrayNodeEnd(node *StringArrayNode) // symbol nodes VisitBoolSymbolNode(node *BoolSymbolNode) VisitDatetimeSymbolNode(node *DatetimeSymbolNode) VisitFloat64SymbolNode(node *Float64SymbolNode) VisitInt64SymbolNode(node *Int64SymbolNode) VisitStringSymbolNode(node *StringSymbolNode) VisitAnyTypeSymbolNode(node *AnyTypeSymbolNode) // conversion VisitInt64ToFloat64NodeStart(node *Int64ToFloat64Node) VisitInt64ToFloat64NodeEnd(node *Int64ToFloat64Node) // sets VisitAllOfSetExprNodeStart(node *AllOfSetExprNode) VisitAllOfSetExprNodeEnd(node *AllOfSetExprNode) VisitAnyOfSetExprNodeStart(node *AnyOfSetExprNode) VisitAnyOfSetExprNodeEnd(node *AnyOfSetExprNode) VisitCountSetExprNodeStart(node *CountSetExprNode) VisitCountSetExprNodeEnd(node *CountSetExprNode) VisitIsEmptySetExprNodeStart(node *IsEmptySetExprNode) VisitIsEmptySetExprNodeEnd(node *IsEmptySetExprNode) VisitUntypedQueryNodeStart(node *untypedQueryNode) VisitUntypedQueryNodeEnd(node *untypedQueryNode) VisitQueryNodeStart(node *queryNode) VisitQueryNodeEnd(node *queryNode) VisitSortByNode(node *SortByNode) VisitSortFieldNode(node *SortFieldNode) VisitLimitExprNode(node *LimitExprNode) VisitSkipExprNode(node *SkipExprNode) VisitUntypedSubQueryNodeStart(node *UntypedSubQueryNode) VisitUntypedSubQueryNodeEnd(node *UntypedSubQueryNode) VisitSubQueryNodeStart(node *subQueryNode) VisitSubQueryNodeEnd(node *subQueryNode) VisitSymbol(symbol string, nodeType NodeType) }