# Functions

Add creates an expression thats evaluates to the result of a + b.
And creates an expression that evaluates a And b And returns true if both are truthy.
Between returns a function that creates a BETWEEN operator that returns true if x is between a and b.
BitwiseAnd creates an expression thats evaluates to the result of a & b.
BitwiseOr creates an expression thats evaluates to the result of a | b.
BitwiseXor creates an expression thats evaluates to the result of a ^ b.
BuiltinFunctions returns default map of builtin functions.
Concat creates an expression that concatenates two text values together.
Div creates an expression thats evaluates to the result of a / b.
Eq creates an expression that returns true if a equals b.
Equal reports whether a and b are equal by first calling IsEqual if they have an IsEqual method with this signature: IsEqual(Expr) bool If not, it returns whether a and b values are equal.
Gt creates an expression that returns true if a is greater than b.
Gte creates an expression that returns true if a is greater than or equal to b.
In creates an expression that evaluates to the result of a IN b.
Is creates an expression that evaluates to the result of a IS b.
IsArithmeticOperator returns true if e is one of +, -, *, /, %, &, |, or ^ operators.
IsComparisonOperator returns true if e is one of =, !=, >, >=, <, <=, IS, IS NOT, IN, or NOT IN operators.
IsNot creates an expression that evaluates to the result of a IS NOT b.
Like creates an expression that evaluates to the result of a LIKE b.
Lt creates an expression that returns true if a is lesser than b.
Lte creates an expression that returns true if a is lesser than or equal to b.
Mod creates an expression thats evaluates to the result of a % b.
Mul creates an expression thats evaluates to the result of a * b.
Neq creates an expression that returns true if a equals b.
No description provided by the author
No description provided by the author
Not creates an expression that returns true if e is falsy.
NotIn creates an expression that evaluates to the result of a NOT IN b.
NotLike creates an expression that evaluates to the result of a NOT LIKE b.
OperatorIsIndexCompatible returns whether the operator can be used to read from an index.
Or creates an expression that first evaluates a, returns true if truthy, then evaluates b, returns true if truthy Or false if falsy.
Sub creates an expression thats evaluates to the result of a - b.
No description provided by the author

# Structs

AndOp is the And operator.
AvgAggregator is an aggregator that returns the average non-null value.
AvgFunc is the AVG aggregator function.
No description provided by the author
CastFunc represents the CAST expression.
No description provided by the author
CountAggregator is an aggregator that counts non-null expressions.
CountFunc is the COUNT aggregator function.
Environment contains information about the context in which the expression is evaluated.
Functions represents a map of builtin SQL functions.
No description provided by the author
No description provided by the author
No description provided by the author
KVPair associates an identifier with an expression.
KVPairs is a list of KVPair.
No description provided by the author
MaxAggregator is an aggregator that returns the minimum non-null value.
MaxFunc is the MAX aggregator function.
MinAggregator is an aggregator that returns the minimum non-null value.
MinFunc is the MIN aggregator function.
NamedExpr is an expression with a name.
No description provided by the author
No description provided by the author
NotOp is the NOT unary operator.
OrOp is the Or operator.
A Param represents a parameter passed by the user to the statement.
Parentheses is a special expression which turns any sub-expression as unary.
PKFunc represents the pk() function.
SumAggregator is an aggregator that returns the minimum non-null value.
SumFunc is the SUM aggregator function.
A Wildcard is an expression that iterates over all the fields of a document.

# Interfaces

A Aggregator is an expression that aggregates documents into one result.
An AggregatorBuilder is a type that can create aggregators.
An Expr evaluates to a value.
A Function is an expression that execute some arbitrary code.
An Operator is a binary expression that takes two operands and executes an operation on them.

# Type aliases

LiteralExprList is a list of expressions.
A LiteralValue represents a litteral value of any type defined by the value package.
NamedParam is an expression which represents the name of a parameter.
A Path is an expression that extracts a value from a document at a given path.
PositionalParam is an expression which represents the position of a parameter.