ast

package
v0.2.37 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2024 License: Apache-2.0 Imports: 15 Imported by: 15

README

The query package contains the following:

  1. An AST (Abstract Syntax Tree) for filter expressions
  2. 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

  1. BinaryExprNode
  2. InArrayExprNode
  3. BetweenExprNode
  4. UntypedSymbolNode
  5. 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:

  1. Bool
  2. String
  3. Int64
  4. Float64
  5. Datetime
  6. 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:

  1. int64 can be converted to float64.
  2. 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

View Source
const (
	AndOp boolBinaryOp = iota
	OrOp
)

Variables

View Source
var BoolNodeTrue = NewBoolConstNode(true)
View Source
var EmptyCursor emptyCursor
View Source
var EnableQueryDebug atomic.Bool
View Source
var SetFunctionNames = map[SetFunction]string{
	SetFunctionAllOf:   "allOf",
	SetFunctionAnyOf:   "anyOf",
	SetFunctionCount:   "count",
	SetFunctionIsEmpty: "isEmpty",
}

Functions

func NodeTypeName

func NodeTypeName(nodeType NodeType) string

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 BinaryOp

type BinaryOp int
const (
	BinaryOpEQ BinaryOp = iota
	BinaryOpNEQ
	BinaryOpLT
	BinaryOpLTE
	BinaryOpGT
	BinaryOpGTE
	BinaryOpIn
	BinaryOpNotIn
	BinaryOpBetween
	BinaryOpNotBetween
	BinaryOpContains
	BinaryOpNotContains
)

func (BinaryOp) String

func (op BinaryOp) 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

func NewBoolConstNode(value bool) BoolNode

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 DatetimeNode

type DatetimeNode interface {
	Node
	EvalDatetime(s Symbols) *time.Time
}

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

type LoggingListener struct {
	PrintRuleLocation bool
	PrintChildren     bool
}

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 Node

type Node interface {
	fmt.Stringer
	GetType() NodeType
	Accept(visitor Visitor)
	IsConst() bool
}

type NodeType

type NodeType int
const (
	NodeTypeBool NodeType = iota
	NodeTypeDatetime
	NodeTypeFloat64
	NodeTypeInt64
	NodeTypeString
	NodeTypeAnyType

	NodeTypeOther
)

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)
}

func Parse

func Parse(symbolTypes SymbolTypes, query string) (Query, error)

type SeekOptimizableBoolNode

type SeekOptimizableBoolNode interface {
	IsSeekable() bool
	EvalBoolWithSeek(s Symbols, cursor TypeSeekableSetCursor) bool
}

type SeekableSetCursor

type SeekableSetCursor interface {
	SetCursor
	Seek([]byte)
}

type SetCursor

type SetCursor interface {
	Next()
	IsValid() bool
	Current() []byte
}

func NewEmptyCursor

func NewEmptyCursor() SetCursor

func NewFilteredCursor

func NewFilteredCursor(cursor SetCursor, filter func(val []byte) bool) SetCursor

func NewTreeCursor

func NewTreeCursor(tree *llrb.Tree) SetCursor

func NewUnionSetCursor

func NewUnionSetCursor(fst SetCursor, snd SetCursor, forward bool) SetCursor

func OpenEmptyCursor

func OpenEmptyCursor(_ *bbolt.Tx, _ bool) SetCursor

type SetCursorProvider

type SetCursorProvider func(tx *bbolt.Tx, forward bool) SetCursor

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 SortField

type SortField interface {
	fmt.Stringer
	Symbol() string
	IsAscending() bool
}

func NewSortFieldNode added in v0.2.26

func NewSortFieldNode(symbol string, isAscending bool) SortField

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 Stack

type Stack struct {
	// contains filtered or unexported fields
}

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 StringNode interface {
	Node
	EvalString(s Symbols) *string
}

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

type SymbolNode interface {
	Node
	Symbol() string
}

func NewUntypedSymbolNode

func NewUntypedSymbolNode(symbol string) SymbolNode

type SymbolTypes

type SymbolTypes interface {
	GetSymbolType(name string) (NodeType, bool)
	GetSetSymbolTypes(name string) SymbolTypes
	IsSet(name string) (bool, bool)
}

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 TreeSet

type TreeSet struct {
	// contains filtered or unexported fields
}

func NewTreeSet

func NewTreeSet(forward bool) *TreeSet

func (*TreeSet) Add

func (set *TreeSet) Add(val []byte)

func (*TreeSet) Size

func (set *TreeSet) Size() int

func (*TreeSet) ToCursor

func (set *TreeSet) ToCursor() SetCursor

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)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL