Package org. partiql. lang. ast
Types
Contains references to each of the aggregate call-sites in a given Select.
Contains the register index allocated to a CallAgg.
Base class for Meta implementations which are used internally by org.partiql.lang.eval.EvaluatingCompiler during compilation and should never be serialized.
Meta node intended to be attached to an instance of FromSourcedJoin to indicate that no join condition was specified in the original query and therefore this is an implicit join.
Meta node intended to be attached to an instance of PartiqlAst.Expr.Lit to indicate that it was designated as an ionLiteral
in the parsed statement.
The IsListParenthesizedMeta is used to distinguish the two types of org.partiql.lang.domains.PartiqlAst.Expr.List syntax's:
To reduce any extraneous passes over data, this Meta indicates whether the associated BindingsToValues Physical expression should be an ordered list or a bag.
This is used by the PartiQLVisitor to determine whether the path step is of type index. This is because it is used to evaluate path expressions in FROM clauses in convertPathToProjectionItem(). This class exists because ANTLR first parses the path (and adds IsPathIndexMeta to any path step that uses indexing: AKA a0), and, upon visiting the path, we check that the path doesn't end with a .*
and contains an index. The AST does not differentiate between different path steps, and therefore, this meta exists to aid in determining whether the projection item path is correct. Example:
Attached to SymbolPrimitive instances that were synthetically calculated based on context because they were not explicitly specified.
A Meta to help the OrderBySortSpecVisitorTransform to know when the OrderBy SortSpec has already been transformed. It essentially helps to turn
This is used because the IN Predicate requires that the RHS cannot be a SELECT expression or a VALUES expression. Therefore, attaching this to a VALUES expression (which is just a BAG in the AST) allows the PartiQLVisitor to differentiate between bags (specifically for the IN Predicate).
The old AST has nodes: not_like
, not_between
and is_not
which are respectively paired with its like
, between
, and is
nodes.
Represents a specific location within a source file.
Represents a static type for an AST element.
Represents the unique name given to certain variables--allows alpha rename transforms to avoid capturing variables unintentionally.