An anonymous symbol defined in the AST.
A function call expression.
A SQL comprehension
A Node which introduces Symbols.
An element of a ProductNode
A named symbol which refers to an (aliased or unaliased) field.
Common superclass for expressions of type (CollectionType(c, t), _) => CollectionType(c, t).
A Symbol that represents a library function or operator
A join expression of type (CollectionType(c, t), CollectionType(_, u)) => CollecionType(c, (t, u)).
The type of a join operation.
A dynamically scoped Let expression where the resulting expression and all definitions may refer to other definitions independent of the order in which they appear in the Let.
A literal value expression.
A node in the query AST.
An object that can produce a Node.
Extra methods for Nodes.
An expression that represents a conjunction of expressions.
An expression that represents a plain value lifted into a Query.
A Query of this special Node represents an infinite stream of consecutive numbers starting at the given number.
A reference to a Symbol
A Node which references Symbols.
The row_number window function
A scope for scoped traversal
An expression that selects a field in another expression.
A node that represents an SQL sequence.
An expression that represents a structure, i.
A symbol which can be used in the AST.
Provides names for symbols
A table expansion.
Base class for table nodes.
Similar to a TableExpansion but used to replace a Ref pointing to a Table(Expansion) (or another TableRefExpansion) instead of a plain Table.
A named symbol which refers to a proper database table.
Super-trait for all types.
Something that has a type.
A union of type (CollectionType(c, t), CollectionType(_, t)) => CollectionType(c, t).
Create a readable printout of an AST
Some less general but still useful methods for the code generators.
The standard library for query operators.
A constructor/extractor for nested Selects starting at a Ref.
Utility methods for AST manipulation.