From ec840e6e786be9ecb2b4b5b48bf2959d0ef1df71 Mon Sep 17 00:00:00 2001 From: Alan Cai Date: Fri, 13 Sep 2024 15:40:48 -0700 Subject: [PATCH 01/11] Add simple AST classes and visitor --- partiql-ast/api/partiql-ast.api | 1469 +++++++++++++++++ .../main/kotlin/org/partiql/ast/v1/AstNode.kt | 15 + .../kotlin/org/partiql/ast/v1/AstVisitor.kt | 331 ++++ .../org/partiql/ast/v1/DatetimeField.kt | 16 + .../main/kotlin/org/partiql/ast/v1/Exclude.kt | 93 ++ .../main/kotlin/org/partiql/ast/v1/Expr.kt | 884 ++++++++++ .../main/kotlin/org/partiql/ast/v1/From.kt | 90 + .../kotlin/org/partiql/ast/v1/GraphMatch.kt | 343 ++++ .../main/kotlin/org/partiql/ast/v1/GroupBy.kt | 52 + .../kotlin/org/partiql/ast/v1/Identifier.kt | 56 + .../src/main/kotlin/org/partiql/ast/v1/Let.kt | 40 + .../main/kotlin/org/partiql/ast/v1/OrderBy.kt | 18 + .../main/kotlin/org/partiql/ast/v1/PathLit.kt | 60 + .../kotlin/org/partiql/ast/v1/QueryBody.kt | 72 + .../main/kotlin/org/partiql/ast/v1/Select.kt | 133 ++ .../main/kotlin/org/partiql/ast/v1/SetOp.kt | 28 + .../org/partiql/ast/v1/SetQuantifier.kt | 10 + .../main/kotlin/org/partiql/ast/v1/Sort.kt | 42 + .../kotlin/org/partiql/ast/v1/Statement.kt | 171 ++ .../org/partiql/ast/v1/TableDefinition.kt | 108 ++ .../main/kotlin/org/partiql/ast/v1/Type.kt | 469 ++++++ 21 files changed, 4500 insertions(+) create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstNode.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/DatetimeField.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Expr.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/GraphMatch.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/OrderBy.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetOp.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetQuantifier.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Type.kt diff --git a/partiql-ast/api/partiql-ast.api b/partiql-ast/api/partiql-ast.api index 63afbb2eb2..b205244f01 100644 --- a/partiql-ast/api/partiql-ast.api +++ b/partiql-ast/api/partiql-ast.api @@ -5543,6 +5543,1475 @@ public abstract class org/partiql/ast/util/AstRewriter : org/partiql/ast/visitor public fun visitTypeVarchar (Lorg/partiql/ast/Type$Varchar;Ljava/lang/Object;)Lorg/partiql/ast/AstNode; } +public abstract class org/partiql/ast/v1/AstNode { + public field tag Ljava/lang/String; + public fun ()V + public abstract fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun children ()Ljava/util/Collection; +} + +public abstract interface class org/partiql/ast/v1/AstVisitor { + public abstract fun visit (Lorg/partiql/ast/v1/AstNode;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExclude (Lorg/partiql/ast/v1/Exclude;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludeItem (Lorg/partiql/ast/v1/Exclude$Item;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludeStep (Lorg/partiql/ast/v1/Exclude$Step;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludeStepCollIndex (Lorg/partiql/ast/v1/Exclude$Step$CollIndex;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludeStepCollWildcard (Lorg/partiql/ast/v1/Exclude$Step$CollWildcard;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludeStepStructField (Lorg/partiql/ast/v1/Exclude$Step$StructField;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludeStepStructWildcard (Lorg/partiql/ast/v1/Exclude$Step$StructWildcard;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExpr (Lorg/partiql/ast/v1/Expr;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprAnd (Lorg/partiql/ast/v1/Expr$And;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprBetween (Lorg/partiql/ast/v1/Expr$Between;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCall (Lorg/partiql/ast/v1/Expr$Call;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCase (Lorg/partiql/ast/v1/Expr$Case;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCaseBranch (Lorg/partiql/ast/v1/Expr$Case$Branch;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCast (Lorg/partiql/ast/v1/Expr$Cast;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCoalesce (Lorg/partiql/ast/v1/Expr$Coalesce;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCollection (Lorg/partiql/ast/v1/Expr$Collection;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprDateAdd (Lorg/partiql/ast/v1/Expr$DateAdd;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprDateDiff (Lorg/partiql/ast/v1/Expr$DateDiff;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprExtract (Lorg/partiql/ast/v1/Expr$Extract;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprInCollection (Lorg/partiql/ast/v1/Expr$InCollection;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprIon (Lorg/partiql/ast/v1/Expr$Ion;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprIsType (Lorg/partiql/ast/v1/Expr$IsType;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprLike (Lorg/partiql/ast/v1/Expr$Like;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprLit (Lorg/partiql/ast/v1/Expr$Lit;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprMatch (Lorg/partiql/ast/v1/Expr$Match;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprNot (Lorg/partiql/ast/v1/Expr$Not;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprNullIf (Lorg/partiql/ast/v1/Expr$NullIf;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprOperator (Lorg/partiql/ast/v1/Expr$Operator;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprOr (Lorg/partiql/ast/v1/Expr$Or;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprOverlay (Lorg/partiql/ast/v1/Expr$Overlay;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprParameter (Lorg/partiql/ast/v1/Expr$Parameter;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPath (Lorg/partiql/ast/v1/Expr$Path;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPathStep (Lorg/partiql/ast/v1/Expr$Path$Step;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPathStepIndex (Lorg/partiql/ast/v1/Expr$Path$Step$Index;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPathStepSymbol (Lorg/partiql/ast/v1/Expr$Path$Step$Symbol;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPathStepUnpivot (Lorg/partiql/ast/v1/Expr$Path$Step$Unpivot;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPathStepWildcard (Lorg/partiql/ast/v1/Expr$Path$Step$Wildcard;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPosition (Lorg/partiql/ast/v1/Expr$Position;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprQuerySet (Lorg/partiql/ast/v1/Expr$QuerySet;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprSessionAttribute (Lorg/partiql/ast/v1/Expr$SessionAttribute;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprStruct (Lorg/partiql/ast/v1/Expr$Struct;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprStructField (Lorg/partiql/ast/v1/Expr$Struct$Field;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprSubstring (Lorg/partiql/ast/v1/Expr$Substring;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprTrim (Lorg/partiql/ast/v1/Expr$Trim;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprValues (Lorg/partiql/ast/v1/Expr$Values;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprValuesRow (Lorg/partiql/ast/v1/Expr$Values$Row;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprVar (Lorg/partiql/ast/v1/Expr$Var;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprWindow (Lorg/partiql/ast/v1/Expr$Window;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprWindowOver (Lorg/partiql/ast/v1/Expr$Window$Over;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitFrom (Lorg/partiql/ast/v1/From;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitFromJoin (Lorg/partiql/ast/v1/From$Join;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitFromValue (Lorg/partiql/ast/v1/From$Value;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatch (Lorg/partiql/ast/v1/GraphMatch;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchLabel (Lorg/partiql/ast/v1/GraphMatch$Label;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchLabelConj (Lorg/partiql/ast/v1/GraphMatch$Label$Conj;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchLabelDisj (Lorg/partiql/ast/v1/GraphMatch$Label$Disj;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchLabelName (Lorg/partiql/ast/v1/GraphMatch$Label$Name;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchLabelNegation (Lorg/partiql/ast/v1/GraphMatch$Label$Negation;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchLabelWildcard (Lorg/partiql/ast/v1/GraphMatch$Label$Wildcard;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchPattern (Lorg/partiql/ast/v1/GraphMatch$Pattern;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchPatternPart (Lorg/partiql/ast/v1/GraphMatch$Pattern$Part;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchPatternPartEdge (Lorg/partiql/ast/v1/GraphMatch$Pattern$Part$Edge;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchPatternPartNode (Lorg/partiql/ast/v1/GraphMatch$Pattern$Part$Node;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchPatternPartPattern (Lorg/partiql/ast/v1/GraphMatch$Pattern$Part$Pattern;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchQuantifier (Lorg/partiql/ast/v1/GraphMatch$Quantifier;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchSelector (Lorg/partiql/ast/v1/GraphMatch$Selector;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchSelectorAllShortest (Lorg/partiql/ast/v1/GraphMatch$Selector$AllShortest;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchSelectorAny (Lorg/partiql/ast/v1/GraphMatch$Selector$Any;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchSelectorAnyK (Lorg/partiql/ast/v1/GraphMatch$Selector$AnyK;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchSelectorAnyShortest (Lorg/partiql/ast/v1/GraphMatch$Selector$AnyShortest;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchSelectorShortestK (Lorg/partiql/ast/v1/GraphMatch$Selector$ShortestK;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchSelectorShortestKGroup (Lorg/partiql/ast/v1/GraphMatch$Selector$ShortestKGroup;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGroupBy (Lorg/partiql/ast/v1/GroupBy;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGroupByKey (Lorg/partiql/ast/v1/GroupBy$Key;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitIdentifier (Lorg/partiql/ast/v1/Identifier;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitIdentifierQualified (Lorg/partiql/ast/v1/Identifier$Qualified;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitIdentifierSymbol (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitLet (Lorg/partiql/ast/v1/Let;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitLetBinding (Lorg/partiql/ast/v1/Let$Binding;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitOrderBy (Lorg/partiql/ast/v1/OrderBy;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPath (Lorg/partiql/ast/v1/PathLit;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathStep (Lorg/partiql/ast/v1/PathLit$Step;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathStepIndex (Lorg/partiql/ast/v1/PathLit$Step$Index;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathStepSymbol (Lorg/partiql/ast/v1/PathLit$Step$Symbol;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitQueryBody (Lorg/partiql/ast/v1/QueryBody;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitQueryBodySFW (Lorg/partiql/ast/v1/QueryBody$SFW;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitQueryBodySetOp (Lorg/partiql/ast/v1/QueryBody$SetOp;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelect (Lorg/partiql/ast/v1/Select;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectPivot (Lorg/partiql/ast/v1/Select$Pivot;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectProject (Lorg/partiql/ast/v1/Select$Project;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectProjectItem (Lorg/partiql/ast/v1/Select$Project$Item;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectProjectItemAll (Lorg/partiql/ast/v1/Select$Project$Item$All;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectProjectItemExpression (Lorg/partiql/ast/v1/Select$Project$Item$Expression;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectStar (Lorg/partiql/ast/v1/Select$Star;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectValue (Lorg/partiql/ast/v1/Select$Value;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSetOp (Lorg/partiql/ast/v1/SetOp;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSort (Lorg/partiql/ast/v1/Sort;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitStatement (Lorg/partiql/ast/v1/Statement;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitStatementDDL (Lorg/partiql/ast/v1/Statement$DDL;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitStatementDDLCreateIndex (Lorg/partiql/ast/v1/Statement$DDL$CreateIndex;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitStatementDDLCreateTable (Lorg/partiql/ast/v1/Statement$DDL$CreateTable;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitStatementDDLDropIndex (Lorg/partiql/ast/v1/Statement$DDL$DropIndex;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitStatementDDLDropTable (Lorg/partiql/ast/v1/Statement$DDL$DropTable;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitStatementExplain (Lorg/partiql/ast/v1/Statement$Explain;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitStatementExplainTarget (Lorg/partiql/ast/v1/Statement$Explain$Target;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitStatementExplainTargetDomain (Lorg/partiql/ast/v1/Statement$Explain$Target$Domain;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitStatementQuery (Lorg/partiql/ast/v1/Statement$Query;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTableDefinition (Lorg/partiql/ast/v1/TableDefinition;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTableDefinitionColumn (Lorg/partiql/ast/v1/TableDefinition$Column;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTableDefinitionColumnConstraint (Lorg/partiql/ast/v1/TableDefinition$Column$Constraint;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTableDefinitionColumnConstraintBody (Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTableDefinitionColumnConstraintBodyCheck (Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body$Check;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTableDefinitionColumnConstraintBodyNotNull (Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body$NotNull;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTableDefinitionColumnConstraintBodyNullable (Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body$Nullable;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitType (Lorg/partiql/ast/v1/Type;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeAny (Lorg/partiql/ast/v1/Type$Any;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBag (Lorg/partiql/ast/v1/Type$Bag;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBigint (Lorg/partiql/ast/v1/Type$Bigint;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBit (Lorg/partiql/ast/v1/Type$Bit;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBitVarying (Lorg/partiql/ast/v1/Type$BitVarying;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBlob (Lorg/partiql/ast/v1/Type$Blob;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBool (Lorg/partiql/ast/v1/Type$Bool;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeByteString (Lorg/partiql/ast/v1/Type$ByteString;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeChar (Lorg/partiql/ast/v1/Type$Char;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeClob (Lorg/partiql/ast/v1/Type$Clob;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeCustom (Lorg/partiql/ast/v1/Type$Custom;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeDate (Lorg/partiql/ast/v1/Type$Date;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeDecimal (Lorg/partiql/ast/v1/Type$Decimal;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeFloat32 (Lorg/partiql/ast/v1/Type$Float32;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeFloat64 (Lorg/partiql/ast/v1/Type$Float64;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeInt (Lorg/partiql/ast/v1/Type$Int;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeInt2 (Lorg/partiql/ast/v1/Type$Int2;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeInt4 (Lorg/partiql/ast/v1/Type$Int4;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeInt8 (Lorg/partiql/ast/v1/Type$Int8;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeInterval (Lorg/partiql/ast/v1/Type$Interval;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeList (Lorg/partiql/ast/v1/Type$List;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeMissing (Lorg/partiql/ast/v1/Type$Missing;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeNull (Lorg/partiql/ast/v1/Type$Null;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeNumeric (Lorg/partiql/ast/v1/Type$Numeric;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeReal (Lorg/partiql/ast/v1/Type$Real;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeSexp (Lorg/partiql/ast/v1/Type$Sexp;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeSmallint (Lorg/partiql/ast/v1/Type$Smallint;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeString (Lorg/partiql/ast/v1/Type$String;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeStruct (Lorg/partiql/ast/v1/Type$Struct;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeSymbol (Lorg/partiql/ast/v1/Type$Symbol;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTime (Lorg/partiql/ast/v1/Type$Time;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTimeWithTz (Lorg/partiql/ast/v1/Type$TimeWithTz;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTimestamp (Lorg/partiql/ast/v1/Type$Timestamp;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTimestampWithTz (Lorg/partiql/ast/v1/Type$TimestampWithTz;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTinyint (Lorg/partiql/ast/v1/Type$Tinyint;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTuple (Lorg/partiql/ast/v1/Type$Tuple;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeVarchar (Lorg/partiql/ast/v1/Type$Varchar;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/DatetimeField : java/lang/Enum { + public static final field DAY Lorg/partiql/ast/v1/DatetimeField; + public static final field HOUR Lorg/partiql/ast/v1/DatetimeField; + public static final field MINUTE Lorg/partiql/ast/v1/DatetimeField; + public static final field MONTH Lorg/partiql/ast/v1/DatetimeField; + public static final field OTHER Lorg/partiql/ast/v1/DatetimeField; + public static final field SECOND Lorg/partiql/ast/v1/DatetimeField; + public static final field TIMEZONE_HOUR Lorg/partiql/ast/v1/DatetimeField; + public static final field TIMEZONE_MINUTE Lorg/partiql/ast/v1/DatetimeField; + public static final field YEAR Lorg/partiql/ast/v1/DatetimeField; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/DatetimeField; + public static fun values ()[Lorg/partiql/ast/v1/DatetimeField; +} + +public final class org/partiql/ast/v1/Exclude : org/partiql/ast/v1/AstNode { + public field items Ljava/util/List; + public fun (Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Exclude$Item : org/partiql/ast/v1/AstNode { + public field root Lorg/partiql/ast/v1/Expr$Var; + public field steps Ljava/util/List; + public fun (Lorg/partiql/ast/v1/Expr$Var;Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public abstract class org/partiql/ast/v1/Exclude$Step : org/partiql/ast/v1/AstNode { + public fun ()V +} + +public final class org/partiql/ast/v1/Exclude$Step$CollIndex : org/partiql/ast/v1/Exclude$Step { + public field index I + public fun (I)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Exclude$Step$CollWildcard : org/partiql/ast/v1/Exclude$Step { + public static final field INSTANCE Lorg/partiql/ast/v1/Exclude$Step$CollWildcard; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Exclude$Step$StructField : org/partiql/ast/v1/Exclude$Step { + public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; + public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Exclude$Step$StructWildcard : org/partiql/ast/v1/Exclude$Step { + public static final field INSTANCE Lorg/partiql/ast/v1/Exclude$Step$StructWildcard; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public abstract class org/partiql/ast/v1/Expr : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/Expr$And : org/partiql/ast/v1/Expr { + public field lhs Lorg/partiql/ast/v1/Expr; + public field rhs Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Between : org/partiql/ast/v1/Expr { + public field from Lorg/partiql/ast/v1/Expr; + public field not Ljava/lang/Boolean; + public field to Lorg/partiql/ast/v1/Expr; + public field value Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Ljava/lang/Boolean;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Call : org/partiql/ast/v1/Expr { + public field args Ljava/util/List; + public field function Lorg/partiql/ast/v1/Identifier; + public field setq Lorg/partiql/ast/v1/SetQuantifier; + public fun (Lorg/partiql/ast/v1/Identifier;Ljava/util/List;Lorg/partiql/ast/v1/SetQuantifier;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Case : org/partiql/ast/v1/Expr { + public field branches Ljava/util/List; + public field default Lorg/partiql/ast/v1/Expr; + public field expr Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Ljava/util/List;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Case$Branch : org/partiql/ast/v1/AstNode { + public field condition Lorg/partiql/ast/v1/Expr; + public field expr Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Cast : org/partiql/ast/v1/Expr { + public field asType Lorg/partiql/ast/v1/Type; + public field value Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Type;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Coalesce : org/partiql/ast/v1/Expr { + public field args Ljava/util/List; + public fun (Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Collection : org/partiql/ast/v1/Expr { + public field type Lorg/partiql/ast/v1/Expr$Collection$Type; + public field values Ljava/util/List; + public fun (Lorg/partiql/ast/v1/Expr$Collection$Type;Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Collection$Type : java/lang/Enum { + public static final field ARRAY Lorg/partiql/ast/v1/Expr$Collection$Type; + public static final field BAG Lorg/partiql/ast/v1/Expr$Collection$Type; + public static final field LIST Lorg/partiql/ast/v1/Expr$Collection$Type; + public static final field OTHER Lorg/partiql/ast/v1/Expr$Collection$Type; + public static final field SEXP Lorg/partiql/ast/v1/Expr$Collection$Type; + public static final field VALUES Lorg/partiql/ast/v1/Expr$Collection$Type; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Expr$Collection$Type; + public static fun values ()[Lorg/partiql/ast/v1/Expr$Collection$Type; +} + +public final class org/partiql/ast/v1/Expr$DateAdd : org/partiql/ast/v1/Expr { + public field field Lorg/partiql/ast/v1/DatetimeField; + public field lhs Lorg/partiql/ast/v1/Expr; + public field rhs Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$DateDiff : org/partiql/ast/v1/Expr { + public field field Lorg/partiql/ast/v1/DatetimeField; + public field lhs Lorg/partiql/ast/v1/Expr; + public field rhs Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Extract : org/partiql/ast/v1/Expr { + public field field Lorg/partiql/ast/v1/DatetimeField; + public field source Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$InCollection : org/partiql/ast/v1/Expr { + public field lhs Lorg/partiql/ast/v1/Expr; + public field not Ljava/lang/Boolean; + public field rhs Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Ljava/lang/Boolean;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Ion : org/partiql/ast/v1/Expr { + public field value Lcom/amazon/ionelement/api/IonElement; + public fun (Lcom/amazon/ionelement/api/IonElement;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Expr$IsType : org/partiql/ast/v1/Expr { + public field not Ljava/lang/Boolean; + public field type Lorg/partiql/ast/v1/Type; + public field value Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Type;Ljava/lang/Boolean;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Like : org/partiql/ast/v1/Expr { + public field escape Lorg/partiql/ast/v1/Expr; + public field not Ljava/lang/Boolean; + public field pattern Lorg/partiql/ast/v1/Expr; + public field value Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Ljava/lang/Boolean;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Lit : org/partiql/ast/v1/Expr { + public field value Lorg/partiql/value/PartiQLValue; + public fun (Lorg/partiql/value/PartiQLValue;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Expr$Match : org/partiql/ast/v1/Expr { + public field expr Lorg/partiql/ast/v1/Expr; + public field pattern Lorg/partiql/ast/v1/GraphMatch; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/GraphMatch;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Not : org/partiql/ast/v1/Expr { + public field value Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$NullIf : org/partiql/ast/v1/Expr { + public field nullifier Lorg/partiql/ast/v1/Expr; + public field value Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Operator : org/partiql/ast/v1/Expr { + public field lhs Lorg/partiql/ast/v1/Expr; + public field rhs Lorg/partiql/ast/v1/Expr; + public field symbol Ljava/lang/String; + public fun (Ljava/lang/String;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Or : org/partiql/ast/v1/Expr { + public field lhs Lorg/partiql/ast/v1/Expr; + public field rhs Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Overlay : org/partiql/ast/v1/Expr { + public field length Lorg/partiql/ast/v1/Expr; + public field overlay Lorg/partiql/ast/v1/Expr; + public field start Lorg/partiql/ast/v1/Expr; + public field value Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Parameter : org/partiql/ast/v1/Expr { + public field index I + public fun (I)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Path : org/partiql/ast/v1/Expr { + public field root Lorg/partiql/ast/v1/Expr; + public field steps Ljava/util/List; + public fun (Lorg/partiql/ast/v1/Expr;Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public abstract class org/partiql/ast/v1/Expr$Path$Step : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/Expr$Path$Step$Index : org/partiql/ast/v1/Expr$Path$Step { + public field key Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Path$Step$Symbol : org/partiql/ast/v1/Expr$Path$Step { + public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; + public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Path$Step$Unpivot : org/partiql/ast/v1/Expr$Path$Step { + public static final field INSTANCE Lorg/partiql/ast/v1/Expr$Path$Step$Unpivot; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Path$Step$Wildcard : org/partiql/ast/v1/Expr$Path$Step { + public static final field INSTANCE Lorg/partiql/ast/v1/Expr$Path$Step$Wildcard; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Position : org/partiql/ast/v1/Expr { + public field lhs Lorg/partiql/ast/v1/Expr; + public field rhs Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$QuerySet : org/partiql/ast/v1/Expr { + public field body Lorg/partiql/ast/v1/QueryBody; + public field limit Lorg/partiql/ast/v1/Expr; + public field offset Lorg/partiql/ast/v1/Expr; + public field orderBy Lorg/partiql/ast/v1/OrderBy; + public fun (Lorg/partiql/ast/v1/QueryBody;Lorg/partiql/ast/v1/OrderBy;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$SessionAttribute : org/partiql/ast/v1/Expr { + public field attribute Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; + public fun (Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$SessionAttribute$Attribute : java/lang/Enum { + public static final field CURRENT_DATE Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; + public static final field CURRENT_USER Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; + public static final field OTHER Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; + public static fun values ()[Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; +} + +public final class org/partiql/ast/v1/Expr$Struct : org/partiql/ast/v1/Expr { + public field fields Ljava/util/List; + public fun (Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Struct$Field : org/partiql/ast/v1/AstNode { + public field name Lorg/partiql/ast/v1/Expr; + public field value Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Substring : org/partiql/ast/v1/Expr { + public field length Lorg/partiql/ast/v1/Expr; + public field start Lorg/partiql/ast/v1/Expr; + public field value Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Trim : org/partiql/ast/v1/Expr { + public field chars Lorg/partiql/ast/v1/Expr; + public field spec Lorg/partiql/ast/v1/Expr$Trim$Spec; + public field value Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr$Trim$Spec;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Trim$Spec : java/lang/Enum { + public static final field BOTH Lorg/partiql/ast/v1/Expr$Trim$Spec; + public static final field LEADING Lorg/partiql/ast/v1/Expr$Trim$Spec; + public static final field OTHER Lorg/partiql/ast/v1/Expr$Trim$Spec; + public static final field TRAILING Lorg/partiql/ast/v1/Expr$Trim$Spec; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Expr$Trim$Spec; + public static fun values ()[Lorg/partiql/ast/v1/Expr$Trim$Spec; +} + +public final class org/partiql/ast/v1/Expr$Values : org/partiql/ast/v1/Expr { + public field rows Ljava/util/List; + public fun (Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Values$Row : org/partiql/ast/v1/AstNode { + public field items Ljava/util/List; + public fun (Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Var : org/partiql/ast/v1/Expr { + public field identifier Lorg/partiql/ast/v1/Identifier; + public field scope Lorg/partiql/ast/v1/Expr$Var$Scope; + public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Expr$Var$Scope;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Var$Scope : java/lang/Enum { + public static final field DEFAULT Lorg/partiql/ast/v1/Expr$Var$Scope; + public static final field LOCAL Lorg/partiql/ast/v1/Expr$Var$Scope; + public static final field OTHER Lorg/partiql/ast/v1/Expr$Var$Scope; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Expr$Var$Scope; + public static fun values ()[Lorg/partiql/ast/v1/Expr$Var$Scope; +} + +public final class org/partiql/ast/v1/Expr$Window : org/partiql/ast/v1/Expr { + public field default Lorg/partiql/ast/v1/Expr; + public field expression Lorg/partiql/ast/v1/Expr; + public field function Lorg/partiql/ast/v1/Expr$Window$Function; + public field offset Lorg/partiql/ast/v1/Expr; + public field over Lorg/partiql/ast/v1/Expr$Window$Over; + public fun (Lorg/partiql/ast/v1/Expr$Window$Function;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr$Window$Over;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public final class org/partiql/ast/v1/Expr$Window$Function : java/lang/Enum { + public static final field LAG Lorg/partiql/ast/v1/Expr$Window$Function; + public static final field LEAD Lorg/partiql/ast/v1/Expr$Window$Function; + public static final field OTHER Lorg/partiql/ast/v1/Expr$Window$Function; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Expr$Window$Function; + public static fun values ()[Lorg/partiql/ast/v1/Expr$Window$Function; +} + +public final class org/partiql/ast/v1/Expr$Window$Over : org/partiql/ast/v1/AstNode { + public field partitions Ljava/util/List; + public field sorts Ljava/util/List; + public fun (Ljava/util/List;Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; +} + +public abstract class org/partiql/ast/v1/From : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/From$Join : org/partiql/ast/v1/From { + public field condition Lorg/partiql/ast/v1/Expr; + public field lhs Lorg/partiql/ast/v1/From; + public field rhs Lorg/partiql/ast/v1/From; + public field type Lorg/partiql/ast/v1/From$Join$Type; + public fun (Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/From$Join$Type;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/From$Join$Type : java/lang/Enum { + public static final field COMMA Lorg/partiql/ast/v1/From$Join$Type; + public static final field CROSS Lorg/partiql/ast/v1/From$Join$Type; + public static final field FULL Lorg/partiql/ast/v1/From$Join$Type; + public static final field FULL_OUTER Lorg/partiql/ast/v1/From$Join$Type; + public static final field INNER Lorg/partiql/ast/v1/From$Join$Type; + public static final field LEFT Lorg/partiql/ast/v1/From$Join$Type; + public static final field LEFT_OUTER Lorg/partiql/ast/v1/From$Join$Type; + public static final field OTHER Lorg/partiql/ast/v1/From$Join$Type; + public static final field RIGHT Lorg/partiql/ast/v1/From$Join$Type; + public static final field RIGHT_OUTER Lorg/partiql/ast/v1/From$Join$Type; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/From$Join$Type; + public static fun values ()[Lorg/partiql/ast/v1/From$Join$Type; +} + +public final class org/partiql/ast/v1/From$Value : org/partiql/ast/v1/From { + public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field atAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field byAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field expr Lorg/partiql/ast/v1/Expr; + public field type Lorg/partiql/ast/v1/From$Value$Type; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/From$Value$Type;Lorg/partiql/ast/v1/Identifier$Symbol;Lorg/partiql/ast/v1/Identifier$Symbol;Lorg/partiql/ast/v1/Identifier$Symbol;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/From$Value$Type : java/lang/Enum { + public static final field OTHER Lorg/partiql/ast/v1/From$Value$Type; + public static final field SCAN Lorg/partiql/ast/v1/From$Value$Type; + public static final field UNPIVOT Lorg/partiql/ast/v1/From$Value$Type; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/From$Value$Type; + public static fun values ()[Lorg/partiql/ast/v1/From$Value$Type; +} + +public final class org/partiql/ast/v1/GraphMatch : org/partiql/ast/v1/AstNode { + public field patterns Ljava/util/List; + public field selector Lorg/partiql/ast/v1/GraphMatch$Selector; + public fun (Ljava/util/List;Lorg/partiql/ast/v1/GraphMatch$Selector;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Direction : java/lang/Enum { + public static final field LEFT Lorg/partiql/ast/v1/GraphMatch$Direction; + public static final field LEFT_OR_RIGHT Lorg/partiql/ast/v1/GraphMatch$Direction; + public static final field LEFT_OR_UNDIRECTED Lorg/partiql/ast/v1/GraphMatch$Direction; + public static final field LEFT_UNDIRECTED_OR_RIGHT Lorg/partiql/ast/v1/GraphMatch$Direction; + public static final field OTHER Lorg/partiql/ast/v1/GraphMatch$Direction; + public static final field RIGHT Lorg/partiql/ast/v1/GraphMatch$Direction; + public static final field UNDIRECTED Lorg/partiql/ast/v1/GraphMatch$Direction; + public static final field UNDIRECTED_OR_RIGHT Lorg/partiql/ast/v1/GraphMatch$Direction; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/GraphMatch$Direction; + public static fun values ()[Lorg/partiql/ast/v1/GraphMatch$Direction; +} + +public abstract class org/partiql/ast/v1/GraphMatch$Label : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/GraphMatch$Label$Conj : org/partiql/ast/v1/GraphMatch$Label { + public field lhs Lorg/partiql/ast/v1/GraphMatch$Label; + public field rhs Lorg/partiql/ast/v1/GraphMatch$Label; + public fun (Lorg/partiql/ast/v1/GraphMatch$Label;Lorg/partiql/ast/v1/GraphMatch$Label;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Label$Disj : org/partiql/ast/v1/GraphMatch$Label { + public field lhs Lorg/partiql/ast/v1/GraphMatch$Label; + public field rhs Lorg/partiql/ast/v1/GraphMatch$Label; + public fun (Lorg/partiql/ast/v1/GraphMatch$Label;Lorg/partiql/ast/v1/GraphMatch$Label;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Label$Name : org/partiql/ast/v1/GraphMatch$Label { + public field name Ljava/lang/String; + public fun (Ljava/lang/String;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Label$Negation : org/partiql/ast/v1/GraphMatch$Label { + public field arg Lorg/partiql/ast/v1/GraphMatch$Label; + public fun (Lorg/partiql/ast/v1/GraphMatch$Label;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Label$Wildcard : org/partiql/ast/v1/GraphMatch$Label { + public static final field INSTANCE Lorg/partiql/ast/v1/GraphMatch$Label$Wildcard; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Pattern : org/partiql/ast/v1/AstNode { + public field parts Ljava/util/List; + public field prefilter Lorg/partiql/ast/v1/Expr; + public field quantifier Lorg/partiql/ast/v1/GraphMatch$Quantifier; + public field restrictor Lorg/partiql/ast/v1/GraphMatch$Restrictor; + public field variable Ljava/lang/String; + public fun (Lorg/partiql/ast/v1/GraphMatch$Restrictor;Lorg/partiql/ast/v1/Expr;Ljava/lang/String;Lorg/partiql/ast/v1/GraphMatch$Quantifier;Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public abstract class org/partiql/ast/v1/GraphMatch$Pattern$Part : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/GraphMatch$Pattern$Part$Edge : org/partiql/ast/v1/GraphMatch$Pattern$Part { + public field direction Lorg/partiql/ast/v1/GraphMatch$Direction; + public field label Lorg/partiql/ast/v1/GraphMatch$Label; + public field prefilter Lorg/partiql/ast/v1/Expr; + public field quantifier Lorg/partiql/ast/v1/GraphMatch$Quantifier; + public field variable Ljava/lang/String; + public fun (Lorg/partiql/ast/v1/GraphMatch$Direction;Lorg/partiql/ast/v1/GraphMatch$Quantifier;Lorg/partiql/ast/v1/Expr;Ljava/lang/String;Lorg/partiql/ast/v1/GraphMatch$Label;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Pattern$Part$Node : org/partiql/ast/v1/GraphMatch$Pattern$Part { + public field label Lorg/partiql/ast/v1/GraphMatch$Label; + public field prefilter Lorg/partiql/ast/v1/Expr; + public field variable Ljava/lang/String; + public fun (Lorg/partiql/ast/v1/Expr;Ljava/lang/String;Lorg/partiql/ast/v1/GraphMatch$Label;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Pattern$Part$Pattern : org/partiql/ast/v1/GraphMatch$Pattern$Part { + public field pattern Lorg/partiql/ast/v1/GraphMatch$Pattern; + public fun (Lorg/partiql/ast/v1/GraphMatch$Pattern;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Quantifier : org/partiql/ast/v1/AstNode { + public field lower J + public field upper Ljava/lang/Long; + public fun (JLjava/lang/Long;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Restrictor : java/lang/Enum { + public static final field ACYCLIC Lorg/partiql/ast/v1/GraphMatch$Restrictor; + public static final field OTHER Lorg/partiql/ast/v1/GraphMatch$Restrictor; + public static final field SIMPLE Lorg/partiql/ast/v1/GraphMatch$Restrictor; + public static final field TRAIL Lorg/partiql/ast/v1/GraphMatch$Restrictor; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/GraphMatch$Restrictor; + public static fun values ()[Lorg/partiql/ast/v1/GraphMatch$Restrictor; +} + +public abstract class org/partiql/ast/v1/GraphMatch$Selector : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/GraphMatch$Selector$AllShortest : org/partiql/ast/v1/GraphMatch$Selector { + public static final field INSTANCE Lorg/partiql/ast/v1/GraphMatch$Selector$AllShortest; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Selector$Any : org/partiql/ast/v1/GraphMatch$Selector { + public static final field INSTANCE Lorg/partiql/ast/v1/GraphMatch$Selector$Any; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Selector$AnyK : org/partiql/ast/v1/GraphMatch$Selector { + public field k J + public fun (J)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Selector$AnyShortest : org/partiql/ast/v1/GraphMatch$Selector { + public static final field INSTANCE Lorg/partiql/ast/v1/GraphMatch$Selector$AnyShortest; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Selector$ShortestK : org/partiql/ast/v1/GraphMatch$Selector { + public field k J + public fun (J)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GraphMatch$Selector$ShortestKGroup : org/partiql/ast/v1/GraphMatch$Selector { + public field k J + public fun (J)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GroupBy : org/partiql/ast/v1/AstNode { + public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field keys Ljava/util/List; + public field strategy Lorg/partiql/ast/v1/GroupBy$Strategy; + public fun (Lorg/partiql/ast/v1/GroupBy$Strategy;Ljava/util/List;Lorg/partiql/ast/v1/Identifier$Symbol;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GroupBy$Key : org/partiql/ast/v1/AstNode { + public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field expr Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/GroupBy$Strategy : java/lang/Enum { + public static final field FULL Lorg/partiql/ast/v1/GroupBy$Strategy; + public static final field OTHER Lorg/partiql/ast/v1/GroupBy$Strategy; + public static final field PARTIAL Lorg/partiql/ast/v1/GroupBy$Strategy; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/GroupBy$Strategy; + public static fun values ()[Lorg/partiql/ast/v1/GroupBy$Strategy; +} + +public abstract class org/partiql/ast/v1/Identifier : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/Identifier$CaseSensitivity : java/lang/Enum { + public static final field INSENSITIVE Lorg/partiql/ast/v1/Identifier$CaseSensitivity; + public static final field OTHER Lorg/partiql/ast/v1/Identifier$CaseSensitivity; + public static final field SENSITIVE Lorg/partiql/ast/v1/Identifier$CaseSensitivity; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Identifier$CaseSensitivity; + public static fun values ()[Lorg/partiql/ast/v1/Identifier$CaseSensitivity; +} + +public final class org/partiql/ast/v1/Identifier$Qualified : org/partiql/ast/v1/Identifier { + public field root Lorg/partiql/ast/v1/Identifier$Symbol; + public field steps Ljava/util/List; + public fun (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Identifier$Symbol : org/partiql/ast/v1/Identifier { + public field caseSensitivity Lorg/partiql/ast/v1/Identifier$CaseSensitivity; + public field symbol Ljava/lang/String; + public fun (Ljava/lang/String;Lorg/partiql/ast/v1/Identifier$CaseSensitivity;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Let : org/partiql/ast/v1/AstNode { + public field bindings Ljava/util/List; + public fun (Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Let$Binding : org/partiql/ast/v1/AstNode { + public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field expr Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/OrderBy : org/partiql/ast/v1/AstNode { + public field sorts Ljava/util/List; + public fun (Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/PathLit : org/partiql/ast/v1/AstNode { + public field root Lorg/partiql/ast/v1/Identifier$Symbol; + public field steps Ljava/util/List; + public fun (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public abstract class org/partiql/ast/v1/PathLit$Step : org/partiql/ast/v1/AstNode { + public fun ()V +} + +public final class org/partiql/ast/v1/PathLit$Step$Index : org/partiql/ast/v1/PathLit$Step { + public field index I + public fun (I)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/PathLit$Step$Symbol : org/partiql/ast/v1/PathLit$Step { + public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; + public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public abstract class org/partiql/ast/v1/QueryBody : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/QueryBody$SFW : org/partiql/ast/v1/QueryBody { + public field exclude Lorg/partiql/ast/v1/Exclude; + public field from Lorg/partiql/ast/v1/From; + public field groupBy Lorg/partiql/ast/v1/GroupBy; + public field having Lorg/partiql/ast/v1/Expr; + public field let Lorg/partiql/ast/v1/Let; + public field select Lorg/partiql/ast/v1/Select; + public field where Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Select;Lorg/partiql/ast/v1/Exclude;Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/Let;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/GroupBy;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/QueryBody$SetOp : org/partiql/ast/v1/QueryBody { + public field isOuter Z + public field lhs Lorg/partiql/ast/v1/Expr; + public field rhs Lorg/partiql/ast/v1/Expr; + public field type Lorg/partiql/ast/v1/SetOp; + public fun (Lorg/partiql/ast/v1/SetOp;ZLorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public abstract class org/partiql/ast/v1/Select : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/Select$Pivot : org/partiql/ast/v1/Select { + public field key Lorg/partiql/ast/v1/Expr; + public field value Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Select$Project : org/partiql/ast/v1/Select { + public field items Ljava/util/List; + public field setq Lorg/partiql/ast/v1/SetQuantifier; + public fun (Ljava/util/List;Lorg/partiql/ast/v1/SetQuantifier;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public abstract class org/partiql/ast/v1/Select$Project$Item : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/Select$Project$Item$All : org/partiql/ast/v1/Select$Project$Item { + public field expr Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Select$Project$Item$Expression : org/partiql/ast/v1/Select$Project$Item { + public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field expr Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Select$Star : org/partiql/ast/v1/Select { + public field setq Lorg/partiql/ast/v1/SetQuantifier; + public fun (Lorg/partiql/ast/v1/SetQuantifier;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Select$Value : org/partiql/ast/v1/Select { + public field constructor Lorg/partiql/ast/v1/Expr; + public field setq Lorg/partiql/ast/v1/SetQuantifier; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/SetQuantifier;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/SetOp : org/partiql/ast/v1/AstNode { + public field setq Lorg/partiql/ast/v1/SetQuantifier; + public field type Lorg/partiql/ast/v1/SetOp$Type; + public fun (Lorg/partiql/ast/v1/SetOp$Type;Lorg/partiql/ast/v1/SetQuantifier;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/SetOp$Type : java/lang/Enum { + public static final field EXCEPT Lorg/partiql/ast/v1/SetOp$Type; + public static final field INTERSECT Lorg/partiql/ast/v1/SetOp$Type; + public static final field OTHER Lorg/partiql/ast/v1/SetOp$Type; + public static final field UNION Lorg/partiql/ast/v1/SetOp$Type; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/SetOp$Type; + public static fun values ()[Lorg/partiql/ast/v1/SetOp$Type; +} + +public final class org/partiql/ast/v1/SetQuantifier : java/lang/Enum { + public static final field ALL Lorg/partiql/ast/v1/SetQuantifier; + public static final field DISTINCT Lorg/partiql/ast/v1/SetQuantifier; + public static final field OTHER Lorg/partiql/ast/v1/SetQuantifier; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/SetQuantifier; + public static fun values ()[Lorg/partiql/ast/v1/SetQuantifier; +} + +public final class org/partiql/ast/v1/Sort : org/partiql/ast/v1/AstNode { + public field dir Lorg/partiql/ast/v1/Sort$Dir; + public field expr Lorg/partiql/ast/v1/Expr; + public field nulls Lorg/partiql/ast/v1/Sort$Nulls; + public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Sort$Dir;Lorg/partiql/ast/v1/Sort$Nulls;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Sort$Dir : java/lang/Enum { + public static final field ASC Lorg/partiql/ast/v1/Sort$Dir; + public static final field DESC Lorg/partiql/ast/v1/Sort$Dir; + public static final field OTHER Lorg/partiql/ast/v1/Sort$Dir; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Sort$Dir; + public static fun values ()[Lorg/partiql/ast/v1/Sort$Dir; +} + +public final class org/partiql/ast/v1/Sort$Nulls : java/lang/Enum { + public static final field FIRST Lorg/partiql/ast/v1/Sort$Nulls; + public static final field LAST Lorg/partiql/ast/v1/Sort$Nulls; + public static final field OTHER Lorg/partiql/ast/v1/Sort$Nulls; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Sort$Nulls; + public static fun values ()[Lorg/partiql/ast/v1/Sort$Nulls; +} + +public abstract class org/partiql/ast/v1/Statement : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public abstract class org/partiql/ast/v1/Statement$DDL : org/partiql/ast/v1/Statement { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/Statement$DDL$CreateIndex : org/partiql/ast/v1/Statement$DDL { + public field fields Ljava/util/List; + public field index Lorg/partiql/ast/v1/Identifier; + public field table Lorg/partiql/ast/v1/Identifier; + public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Statement$DDL$CreateTable : org/partiql/ast/v1/Statement$DDL { + public field definition Lorg/partiql/ast/v1/TableDefinition; + public field name Lorg/partiql/ast/v1/Identifier; + public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/TableDefinition;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Statement$DDL$DropIndex : org/partiql/ast/v1/Statement$DDL { + public field index Lorg/partiql/ast/v1/Identifier; + public field table Lorg/partiql/ast/v1/Identifier; + public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Statement$DDL$DropTable : org/partiql/ast/v1/Statement$DDL { + public field table Lorg/partiql/ast/v1/Identifier; + public fun (Lorg/partiql/ast/v1/Identifier;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Statement$Explain : org/partiql/ast/v1/Statement { + public field target Lorg/partiql/ast/v1/Statement$Explain$Target; + public fun (Lorg/partiql/ast/v1/Statement$Explain$Target;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public abstract class org/partiql/ast/v1/Statement$Explain$Target : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/Statement$Explain$Target$Domain : org/partiql/ast/v1/Statement$Explain$Target { + public field format Ljava/lang/String; + public field statement Lorg/partiql/ast/v1/Statement; + public field type Ljava/lang/String; + public fun (Lorg/partiql/ast/v1/Statement;Ljava/lang/String;Ljava/lang/String;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Statement$Query : org/partiql/ast/v1/Statement { + public field expr Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/TableDefinition : org/partiql/ast/v1/AstNode { + public field columns Ljava/util/List; + public fun (Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/TableDefinition$Column : org/partiql/ast/v1/AstNode { + public field constraints Ljava/util/List; + public field name Ljava/lang/String; + public field type Lorg/partiql/ast/v1/Type; + public fun (Ljava/lang/String;Lorg/partiql/ast/v1/Type;Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/TableDefinition$Column$Constraint : org/partiql/ast/v1/AstNode { + public field body Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body; + public field name Ljava/lang/String; + public fun (Ljava/lang/String;Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public abstract class org/partiql/ast/v1/TableDefinition$Column$Constraint$Body : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/TableDefinition$Column$Constraint$Body$Check : org/partiql/ast/v1/TableDefinition$Column$Constraint$Body { + public field expr Lorg/partiql/ast/v1/Expr; + public fun (Lorg/partiql/ast/v1/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/TableDefinition$Column$Constraint$Body$NotNull : org/partiql/ast/v1/TableDefinition$Column$Constraint$Body { + public static final field INSTANCE Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body$NotNull; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/TableDefinition$Column$Constraint$Body$Nullable : org/partiql/ast/v1/TableDefinition$Column$Constraint$Body { + public static final field INSTANCE Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body$Nullable; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public abstract class org/partiql/ast/v1/Type : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/Type$Any : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Any; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Bag : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Bag; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Bigint : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Bigint; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Bit : org/partiql/ast/v1/Type { + public field length Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$BitVarying : org/partiql/ast/v1/Type { + public field length Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Blob : org/partiql/ast/v1/Type { + public field length Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Bool : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Bool; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$ByteString : org/partiql/ast/v1/Type { + public field length Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Char : org/partiql/ast/v1/Type { + public field length Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Clob : org/partiql/ast/v1/Type { + public field length Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Custom : org/partiql/ast/v1/Type { + public field name Ljava/lang/String; + public fun (Ljava/lang/String;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Date : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Date; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Decimal : org/partiql/ast/v1/Type { + public field precision Ljava/lang/Integer; + public field scale Ljava/lang/Integer; + public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Float32 : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Float32; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Float64 : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Float64; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Int : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Int; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Int2 : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Int2; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Int4 : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Int4; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Int8 : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Int8; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Interval : org/partiql/ast/v1/Type { + public field precision Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$List : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$List; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Missing : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Missing; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Null : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Null; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Numeric : org/partiql/ast/v1/Type { + public field precision Ljava/lang/Integer; + public field scale Ljava/lang/Integer; + public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Real : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Real; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Sexp : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Sexp; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Smallint : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Smallint; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$String : org/partiql/ast/v1/Type { + public field length Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Struct : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Struct; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Symbol : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Symbol; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Time : org/partiql/ast/v1/Type { + public field precision Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$TimeWithTz : org/partiql/ast/v1/Type { + public field precision Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Timestamp : org/partiql/ast/v1/Type { + public field precision Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$TimestampWithTz : org/partiql/ast/v1/Type { + public field precision Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Tinyint : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Tinyint; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Tuple : org/partiql/ast/v1/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/Type$Tuple; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/Type$Varchar : org/partiql/ast/v1/Type { + public field length Ljava/lang/Integer; + public fun (Ljava/lang/Integer;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + public abstract class org/partiql/ast/visitor/AstBaseVisitor : org/partiql/ast/visitor/AstVisitor { public fun ()V public abstract fun defaultReturn (Lorg/partiql/ast/AstNode;Ljava/lang/Object;)Ljava/lang/Object; diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstNode.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstNode.kt new file mode 100644 index 0000000000..5cbe6eaac3 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstNode.kt @@ -0,0 +1,15 @@ +package org.partiql.ast.v1 + +import kotlin.random.Random + +/** + * TODO docs, equals, hashcode + */ +public abstract class AstNode { + @JvmField + public var tag: String = "Ast-${"%06x".format(Random.nextInt())}" + + public abstract fun children(): Collection + + public abstract fun accept(visitor: AstVisitor, ctx: C): R +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt new file mode 100644 index 0000000000..7b72c82cb5 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt @@ -0,0 +1,331 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public interface AstVisitor { + public fun visit(node: AstNode, ctx: C): R + + public fun visitStatement(node: Statement, ctx: C): R + + public fun visitStatementQuery(node: Statement.Query, ctx: C): R + + public fun visitStatementDDL(node: Statement.DDL, ctx: C): R + + public fun visitStatementDDLCreateTable(node: Statement.DDL.CreateTable, ctx: C): R + + public fun visitStatementDDLCreateIndex(node: Statement.DDL.CreateIndex, ctx: C): R + + public fun visitStatementDDLDropTable(node: Statement.DDL.DropTable, ctx: C): R + + public fun visitStatementDDLDropIndex(node: Statement.DDL.DropIndex, ctx: C): R + + public fun visitStatementExplain(node: Statement.Explain, ctx: C): R + + public fun visitStatementExplainTarget(node: Statement.Explain.Target, ctx: C): R + + public fun visitStatementExplainTargetDomain(node: Statement.Explain.Target.Domain, ctx: C): R + + public fun visitType(node: Type, ctx: C): R + + public fun visitTypeNull(node: Type.Null, ctx: C): R + + public fun visitTypeMissing(node: Type.Missing, ctx: C): R + + public fun visitTypeBool(node: Type.Bool, ctx: C): R + + public fun visitTypeTinyint(node: Type.Tinyint, ctx: C): R + + public fun visitTypeSmallint(node: Type.Smallint, ctx: C): R + + public fun visitTypeInt2(node: Type.Int2, ctx: C): R + + public fun visitTypeInt4(node: Type.Int4, ctx: C): R + + public fun visitTypeBigint(node: Type.Bigint, ctx: C): R + + public fun visitTypeInt8(node: Type.Int8, ctx: C): R + + public fun visitTypeInt(node: Type.Int, ctx: C): R + + public fun visitTypeReal(node: Type.Real, ctx: C): R + + public fun visitTypeFloat32(node: Type.Float32, ctx: C): R + + public fun visitTypeFloat64(node: Type.Float64, ctx: C): R + + public fun visitTypeDecimal(node: Type.Decimal, ctx: C): R + + public fun visitTypeNumeric(node: Type.Numeric, ctx: C): R + + public fun visitTypeChar(node: Type.Char, ctx: C): R + + public fun visitTypeVarchar(node: Type.Varchar, ctx: C): R + + public fun visitTypeString(node: Type.String, ctx: C): R + + public fun visitTypeSymbol(node: Type.Symbol, ctx: C): R + + public fun visitTypeBit(node: Type.Bit, ctx: C): R + + public fun visitTypeBitVarying(node: Type.BitVarying, ctx: C): R + + public fun visitTypeByteString(node: Type.ByteString, ctx: C): R + + public fun visitTypeBlob(node: Type.Blob, ctx: C): R + + public fun visitTypeClob(node: Type.Clob, ctx: C): R + + public fun visitTypeDate(node: Type.Date, ctx: C): R + + public fun visitTypeTime(node: Type.Time, ctx: C): R + + public fun visitTypeTimeWithTz(node: Type.TimeWithTz, ctx: C): R + + public fun visitTypeTimestamp(node: Type.Timestamp, ctx: C): R + + public fun visitTypeTimestampWithTz(node: Type.TimestampWithTz, ctx: C): R + + public fun visitTypeInterval(node: Type.Interval, ctx: C): R + + public fun visitTypeBag(node: Type.Bag, ctx: C): R + + public fun visitTypeList(node: Type.List, ctx: C): R + + public fun visitTypeSexp(node: Type.Sexp, ctx: C): R + + public fun visitTypeTuple(node: Type.Tuple, ctx: C): R + + public fun visitTypeStruct(node: Type.Struct, ctx: C): R + + public fun visitTypeAny(node: Type.Any, ctx: C): R + + public fun visitTypeCustom(node: Type.Custom, ctx: C): R + + public fun visitIdentifier(node: Identifier, ctx: C): R + + public fun visitIdentifierSymbol(node: Identifier.Symbol, ctx: C): R + + public fun visitIdentifierQualified(node: Identifier.Qualified, ctx: C): R + + public fun visitPath(node: PathLit, ctx: C): R + + public fun visitPathStep(node: PathLit.Step, ctx: C): R + + public fun visitPathStepSymbol(node: PathLit.Step.Symbol, ctx: C): R + + public fun visitPathStepIndex(node: PathLit.Step.Index, ctx: C): R + + public fun visitExpr(node: Expr, ctx: C): R + + public fun visitExprLit(node: Expr.Lit, ctx: C): R + + public fun visitExprIon(node: Expr.Ion, ctx: C): R + + public fun visitExprVar(node: Expr.Var, ctx: C): R + + public fun visitExprSessionAttribute(node: Expr.SessionAttribute, ctx: C): R + + public fun visitExprPath(node: Expr.Path, ctx: C): R + + public fun visitExprPathStep(node: Expr.Path.Step, ctx: C): R + + public fun visitExprPathStepSymbol(node: Expr.Path.Step.Symbol, ctx: C): R + + public fun visitExprPathStepIndex(node: Expr.Path.Step.Index, ctx: C): R + + public fun visitExprPathStepWildcard(node: Expr.Path.Step.Wildcard, ctx: C): R + + public fun visitExprPathStepUnpivot(node: Expr.Path.Step.Unpivot, ctx: C): R + + public fun visitExprCall(node: Expr.Call, ctx: C): R + + public fun visitExprParameter(node: Expr.Parameter, ctx: C): R + + public fun visitExprOperator(node: Expr.Operator, ctx: C): R + + public fun visitExprNot(node: Expr.Not, ctx: C): R + + public fun visitExprAnd(node: Expr.And, ctx: C): R + + public fun visitExprOr(node: Expr.Or, ctx: C): R + + public fun visitExprValues(node: Expr.Values, ctx: C): R + + public fun visitExprValuesRow(node: Expr.Values.Row, ctx: C): R + + public fun visitExprCollection(node: Expr.Collection, ctx: C): R + + public fun visitExprStruct(node: Expr.Struct, ctx: C): R + + public fun visitExprStructField(node: Expr.Struct.Field, ctx: C): R + + public fun visitExprLike(node: Expr.Like, ctx: C): R + + public fun visitExprBetween(node: Expr.Between, ctx: C): R + + public fun visitExprInCollection(node: Expr.InCollection, ctx: C): R + + public fun visitExprIsType(node: Expr.IsType, ctx: C): R + + public fun visitExprCase(node: Expr.Case, ctx: C): R + + public fun visitExprCaseBranch(node: Expr.Case.Branch, ctx: C): R + + public fun visitExprCoalesce(node: Expr.Coalesce, ctx: C): R + + public fun visitExprNullIf(node: Expr.NullIf, ctx: C): R + + public fun visitExprSubstring(node: Expr.Substring, ctx: C): R + + public fun visitExprPosition(node: Expr.Position, ctx: C): R + + public fun visitExprTrim(node: Expr.Trim, ctx: C): R + + public fun visitExprOverlay(node: Expr.Overlay, ctx: C): R + + public fun visitExprExtract(node: Expr.Extract, ctx: C): R + + public fun visitExprCast(node: Expr.Cast, ctx: C): R + + public fun visitExprDateAdd(node: Expr.DateAdd, ctx: C): R + + public fun visitExprDateDiff(node: Expr.DateDiff, ctx: C): R + + public fun visitExprQuerySet(node: Expr.QuerySet, ctx: C): R + + public fun visitExprMatch(node: Expr.Match, ctx: C): R + + public fun visitExprWindow(node: Expr.Window, ctx: C): R + + public fun visitExprWindowOver(node: Expr.Window.Over, ctx: C): R + + public fun visitQueryBody(node: QueryBody, ctx: C): R + + public fun visitQueryBodySFW(node: QueryBody.SFW, ctx: C): R + + public fun visitQueryBodySetOp(node: QueryBody.SetOp, ctx: C): R + + public fun visitSelect(node: Select, ctx: C): R + + public fun visitSelectStar(node: Select.Star, ctx: C): R + + public fun visitSelectProject(node: Select.Project, ctx: C): R + + public fun visitSelectProjectItem(node: Select.Project.Item, ctx: C): R + + public fun visitSelectProjectItemAll(node: Select.Project.Item.All, ctx: C): R + + public fun visitSelectProjectItemExpression(node: Select.Project.Item.Expression, ctx: C): R + + public fun visitSelectPivot(node: Select.Pivot, ctx: C): R + + public fun visitSelectValue(node: Select.Value, ctx: C): R + + public fun visitExclude(node: Exclude, ctx: C): R + + public fun visitExcludeItem(node: Exclude.Item, ctx: C): R + + public fun visitExcludeStep(node: Exclude.Step, ctx: C): R + + public fun visitExcludeStepStructField(node: Exclude.Step.StructField, ctx: C): R + + public fun visitExcludeStepCollIndex(node: Exclude.Step.CollIndex, ctx: C): R + + public fun visitExcludeStepStructWildcard(node: Exclude.Step.StructWildcard, ctx: C): R + + public fun visitExcludeStepCollWildcard(node: Exclude.Step.CollWildcard, ctx: C): R + + public fun visitFrom(node: From, ctx: C): R + + public fun visitFromValue(node: From.Value, ctx: C): R + + public fun visitFromJoin(node: From.Join, ctx: C): R + + public fun visitLet(node: Let, ctx: C): R + + public fun visitLetBinding(node: Let.Binding, ctx: C): R + + public fun visitGroupBy(node: GroupBy, ctx: C): R + + public fun visitGroupByKey(node: GroupBy.Key, ctx: C): R + + public fun visitOrderBy(node: OrderBy, ctx: C): R + + public fun visitSort(node: Sort, ctx: C): R + + public fun visitSetOp(node: SetOp, ctx: C): R + + public fun visitGraphMatch(node: GraphMatch, ctx: C): R + + public fun visitGraphMatchPattern(node: GraphMatch.Pattern, ctx: C): R + + public fun visitGraphMatchPatternPart(node: GraphMatch.Pattern.Part, ctx: C): R + + public fun visitGraphMatchPatternPartNode(node: GraphMatch.Pattern.Part.Node, ctx: C): R + + public fun visitGraphMatchPatternPartEdge(node: GraphMatch.Pattern.Part.Edge, ctx: C): R + + public fun visitGraphMatchPatternPartPattern(node: GraphMatch.Pattern.Part.Pattern, ctx: C): R + + public fun visitGraphMatchQuantifier(node: GraphMatch.Quantifier, ctx: C): R + + public fun visitGraphMatchSelector(node: GraphMatch.Selector, ctx: C): R + + public fun visitGraphMatchSelectorAnyShortest(node: GraphMatch.Selector.AnyShortest, ctx: C): R + + public fun visitGraphMatchSelectorAllShortest(node: GraphMatch.Selector.AllShortest, ctx: C): R + + public fun visitGraphMatchSelectorAny(node: GraphMatch.Selector.Any, ctx: C): R + + public fun visitGraphMatchSelectorAnyK(node: GraphMatch.Selector.AnyK, ctx: C): R + + public fun visitGraphMatchSelectorShortestK(node: GraphMatch.Selector.ShortestK, ctx: C): R + + public fun visitGraphMatchSelectorShortestKGroup( + node: GraphMatch.Selector.ShortestKGroup, + ctx: C + ): R + + public fun visitGraphMatchLabel(node: GraphMatch.Label, ctx: C): R + + public fun visitGraphMatchLabelName(node: GraphMatch.Label.Name, ctx: C): R + + public fun visitGraphMatchLabelWildcard(node: GraphMatch.Label.Wildcard, ctx: C): R + + public fun visitGraphMatchLabelNegation(node: GraphMatch.Label.Negation, ctx: C): R + + public fun visitGraphMatchLabelConj(node: GraphMatch.Label.Conj, ctx: C): R + + public fun visitGraphMatchLabelDisj(node: GraphMatch.Label.Disj, ctx: C): R + + public fun visitTableDefinition(node: TableDefinition, ctx: C): R + + public fun visitTableDefinitionColumn(node: TableDefinition.Column, ctx: C): R + + public fun visitTableDefinitionColumnConstraint(node: TableDefinition.Column.Constraint, ctx: C): + R + + public fun visitTableDefinitionColumnConstraintBody( + node: TableDefinition.Column.Constraint.Body, + ctx: C + ): R + + public + fun visitTableDefinitionColumnConstraintBodyNullable( + node: TableDefinition.Column.Constraint.Body.Nullable, + ctx: C + ): R + + public + fun visitTableDefinitionColumnConstraintBodyNotNull( + node: TableDefinition.Column.Constraint.Body.NotNull, + ctx: C + ): R + + public + fun visitTableDefinitionColumnConstraintBodyCheck( + node: TableDefinition.Column.Constraint.Body.Check, + ctx: C + ): R +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DatetimeField.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DatetimeField.kt new file mode 100644 index 0000000000..557f1b1b7c --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DatetimeField.kt @@ -0,0 +1,16 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public enum class DatetimeField { + YEAR, + MONTH, + DAY, + HOUR, + MINUTE, + SECOND, + TIMEZONE_HOUR, + TIMEZONE_MINUTE, + OTHER, +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt new file mode 100644 index 0000000000..9a94e12a3f --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt @@ -0,0 +1,93 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class Exclude( + @JvmField + public var items: List, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(items) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExclude(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public class Item( + @JvmField + public var root: Expr.Var, + @JvmField + public var steps: List, + ) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(root) + kids.addAll(steps) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExcludeItem(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public abstract class Step : AstNode() { + /** + * TODO docs, equals, hashcode + */ + public class StructField( + @JvmField + public var symbol: Identifier.Symbol, + ) : Step() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(symbol) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExcludeStepStructField(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class CollIndex( + @JvmField + public var index: Int, + ) : Step() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExcludeStepCollIndex(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object StructWildcard : Step() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExcludeStepStructWildcard(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object CollWildcard : Step() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExcludeStepCollWildcard(this, ctx) + } + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Expr.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Expr.kt new file mode 100644 index 0000000000..62c6fb8521 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Expr.kt @@ -0,0 +1,884 @@ +package org.partiql.ast.v1 + +import com.amazon.ionelement.api.IonElement +import org.partiql.value.PartiQLValue +import org.partiql.value.PartiQLValueExperimental + +/** + * TODO docs, equals, hashcode + */ +public abstract class Expr : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Lit -> visitor.visitExprLit(this, ctx) + is Ion -> visitor.visitExprIon(this, ctx) + is Var -> visitor.visitExprVar(this, ctx) + is SessionAttribute -> visitor.visitExprSessionAttribute(this, ctx) + is Path -> visitor.visitExprPath(this, ctx) + is Call -> visitor.visitExprCall(this, ctx) + is Parameter -> visitor.visitExprParameter(this, ctx) + is Operator -> visitor.visitExprOperator(this, ctx) + is Not -> visitor.visitExprNot(this, ctx) + is And -> visitor.visitExprAnd(this, ctx) + is Or -> visitor.visitExprOr(this, ctx) + is Values -> visitor.visitExprValues(this, ctx) + is Collection -> visitor.visitExprCollection(this, ctx) + is Struct -> visitor.visitExprStruct(this, ctx) + is Like -> visitor.visitExprLike(this, ctx) + is Between -> visitor.visitExprBetween(this, ctx) + is InCollection -> visitor.visitExprInCollection(this, ctx) + is IsType -> visitor.visitExprIsType(this, ctx) + is Case -> visitor.visitExprCase(this, ctx) + is Coalesce -> visitor.visitExprCoalesce(this, ctx) + is NullIf -> visitor.visitExprNullIf(this, ctx) + is Substring -> visitor.visitExprSubstring(this, ctx) + is Position -> visitor.visitExprPosition(this, ctx) + is Trim -> visitor.visitExprTrim(this, ctx) + is Overlay -> visitor.visitExprOverlay(this, ctx) + is Extract -> visitor.visitExprExtract(this, ctx) + is Cast -> visitor.visitExprCast(this, ctx) + is DateAdd -> visitor.visitExprDateAdd(this, ctx) + is DateDiff -> visitor.visitExprDateDiff(this, ctx) + is QuerySet -> visitor.visitExprQuerySet(this, ctx) + is Match -> visitor.visitExprMatch(this, ctx) + is Window -> visitor.visitExprWindow(this, ctx) + else -> throw NotImplementedError() + } + + @OptIn(PartiQLValueExperimental::class) + /** + * TODO docs, equals, hashcode + */ + public class Lit( + @JvmField + public var `value`: PartiQLValue, + ) : Expr() { + public override fun children(): kotlin.collections.Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprLit(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Ion( + @JvmField + public var `value`: IonElement, + ) : Expr() { + public override fun children(): kotlin.collections.Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprIon(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Var( + @JvmField + public var identifier: Identifier, + @JvmField + public var scope: Scope, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(identifier) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprVar(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Scope { + DEFAULT, + LOCAL, + OTHER, + } + } + + /** + * TODO docs, equals, hashcode + */ + public class SessionAttribute( + @JvmField + public var attribute: Attribute, + ) : Expr() { + public override fun children(): List = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprSessionAttribute(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Attribute { + CURRENT_USER, + CURRENT_DATE, + OTHER, + } + } + + /** + * TODO docs, equals, hashcode + */ + public class Path( + @JvmField + public var root: Expr, + @JvmField + public var steps: List, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(root) + kids.addAll(steps) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPath(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public abstract class Step : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Symbol -> visitor.visitExprPathStepSymbol(this, ctx) + is Index -> visitor.visitExprPathStepIndex(this, ctx) + is Wildcard -> visitor.visitExprPathStepWildcard(this, ctx) + is Unpivot -> visitor.visitExprPathStepUnpivot(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class Symbol( + @JvmField + public var symbol: Identifier.Symbol, + ) : Step() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(symbol) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPathStepSymbol(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Index( + @JvmField + public var key: Expr, + ) : Step() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(key) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPathStepIndex(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Wildcard : Step() { + public override fun children(): List = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPathStepWildcard(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Unpivot : Step() { + public override fun children(): List = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPathStepUnpivot(this, ctx) + } + } + } + + /** + * TODO docs, equals, hashcode + */ + public class Call( + @JvmField + public var function: Identifier, + @JvmField + public var args: List, + @JvmField + public var setq: SetQuantifier?, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(function) + kids.addAll(args) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCall(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Parameter( + @JvmField + public var index: Int, + ) : Expr() { + public override fun children(): List = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprParameter(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Operator( + @JvmField + public var symbol: String, + @JvmField + public var lhs: Expr?, + @JvmField + public var rhs: Expr, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + lhs?.let { kids.add(it) } + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprOperator(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Not( + @JvmField + public var `value`: Expr, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(value) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprNot(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class And( + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprAnd(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Or( + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprOr(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Values( + @JvmField + public var rows: List, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.addAll(rows) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprValues(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public class Row( + @JvmField + public var items: List, + ) : AstNode() { + public override fun children(): List { + val kids = mutableListOf() + kids.addAll(items) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprValuesRow(this, ctx) + } + } + + /** + * TODO docs, equals, hashcode + */ + public class Collection( + @JvmField + public var type: Type, + @JvmField + public var values: List, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.addAll(values) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCollection(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Type { + BAG, + ARRAY, + VALUES, + LIST, + SEXP, + OTHER, + } + } + + /** + * TODO docs, equals, hashcode + */ + public class Struct( + @JvmField + public var fields: List, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.addAll(fields) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprStruct(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public class Field( + @JvmField + public var name: Expr, + @JvmField + public var `value`: Expr, + ) : AstNode() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(name) + kids.add(value) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprStructField(this, ctx) + } + } + + /** + * TODO docs, equals, hashcode + */ + public class Like( + @JvmField + public var `value`: Expr, + @JvmField + public var pattern: Expr, + @JvmField + public var escape: Expr?, + @JvmField + public var not: Boolean?, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(value) + kids.add(pattern) + escape?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprLike(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Between( + @JvmField + public var `value`: Expr, + @JvmField + public var from: Expr, + @JvmField + public var to: Expr, + @JvmField + public var not: Boolean?, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(value) + kids.add(from) + kids.add(to) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprBetween(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class InCollection( + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, + @JvmField + public var not: Boolean?, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprInCollection(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class IsType( + @JvmField + public var `value`: Expr, + @JvmField + public var type: Type, + @JvmField + public var not: Boolean?, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(value) + kids.add(type) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprIsType(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Case( + @JvmField + public var expr: Expr?, + @JvmField + public var branches: List, + @JvmField + public var default: Expr?, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + expr?.let { kids.add(it) } + kids.addAll(branches) + default?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCase(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public class Branch( + @JvmField + public var condition: Expr, + @JvmField + public var expr: Expr, + ) : AstNode() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(condition) + kids.add(expr) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCaseBranch(this, ctx) + } + } + + /** + * TODO docs, equals, hashcode + */ + public class Coalesce( + @JvmField + public var args: List, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.addAll(args) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCoalesce(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class NullIf( + @JvmField + public var `value`: Expr, + @JvmField + public var nullifier: Expr, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(value) + kids.add(nullifier) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprNullIf(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Substring( + @JvmField + public var `value`: Expr, + @JvmField + public var start: Expr?, + @JvmField + public var length: Expr?, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(value) + start?.let { kids.add(it) } + length?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprSubstring(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Position( + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPosition(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Trim( + @JvmField + public var `value`: Expr, + @JvmField + public var chars: Expr?, + @JvmField + public var spec: Spec?, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(value) + chars?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprTrim(this, ctx) + + public enum class Spec { + LEADING, + TRAILING, + BOTH, + OTHER, + } + } + + /** + * TODO docs, equals, hashcode + */ + public class Overlay( + @JvmField + public var `value`: Expr, + @JvmField + public var overlay: Expr, + @JvmField + public var start: Expr, + @JvmField + public var length: Expr?, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(value) + kids.add(overlay) + kids.add(start) + length?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprOverlay(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Extract( + @JvmField + public var `field`: DatetimeField, + @JvmField + public var source: Expr, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(source) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprExtract(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Cast( + @JvmField + public var `value`: Expr, + @JvmField + public var asType: Type, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(value) + kids.add(asType) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCast(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class DateAdd( + @JvmField + public var `field`: DatetimeField, + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprDateAdd(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class DateDiff( + @JvmField + public var `field`: DatetimeField, + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprDateDiff(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class QuerySet( + @JvmField + public var body: QueryBody, + @JvmField + public var orderBy: OrderBy?, + @JvmField + public var limit: Expr?, + @JvmField + public var offset: Expr?, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(body) + orderBy?.let { kids.add(it) } + limit?.let { kids.add(it) } + offset?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprQuerySet(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Match( + @JvmField + public var expr: Expr, + @JvmField + public var pattern: GraphMatch, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(expr) + kids.add(pattern) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprMatch(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Window( + @JvmField + public var function: Function, + @JvmField + public var expression: Expr, + @JvmField + public var offset: Expr?, + @JvmField + public var default: Expr?, + @JvmField + public var over: Over, + ) : Expr() { + public override fun children(): List { + val kids = mutableListOf() + kids.add(expression) + offset?.let { kids.add(it) } + default?.let { kids.add(it) } + kids.add(over) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprWindow(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Function { + LAG, + LEAD, + OTHER, + } + + /** + * TODO docs, equals, hashcode + */ + public class Over( + @JvmField + public var partitions: List?, + @JvmField + public var sorts: List?, + ) : AstNode() { + public override fun children(): List { + val kids = mutableListOf() + partitions?.let { kids.addAll(it) } + sorts?.let { kids.addAll(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprWindowOver(this, ctx) + } + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt new file mode 100644 index 0000000000..3a8c56d5d5 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt @@ -0,0 +1,90 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public abstract class From : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Value -> visitor.visitFromValue(this, ctx) + is Join -> visitor.visitFromJoin(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class Value( + @JvmField + public var expr: Expr, + @JvmField + public var type: Type, + @JvmField + public var asAlias: Identifier.Symbol?, + @JvmField + public var atAlias: Identifier.Symbol?, + @JvmField + public var byAlias: Identifier.Symbol?, + ) : From() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + asAlias?.let { kids.add(it) } + atAlias?.let { kids.add(it) } + byAlias?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitFromValue(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Type { + SCAN, + UNPIVOT, + OTHER, + } + } + + /** + * TODO docs, equals, hashcode + */ + public class Join( + @JvmField + public var lhs: From, + @JvmField + public var rhs: From, + @JvmField + public var type: Type?, + @JvmField + public var condition: Expr?, + ) : From() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + condition?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitFromJoin(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Type { + INNER, + LEFT, + LEFT_OUTER, + RIGHT, + RIGHT_OUTER, + FULL, + FULL_OUTER, + CROSS, + COMMA, + OTHER, + } + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GraphMatch.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GraphMatch.kt new file mode 100644 index 0000000000..d92b120014 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GraphMatch.kt @@ -0,0 +1,343 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class GraphMatch( + @JvmField + public var patterns: List, + @JvmField + public var selector: Selector?, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(patterns) + selector?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatch(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Direction { + LEFT, + UNDIRECTED, + RIGHT, + LEFT_OR_UNDIRECTED, + UNDIRECTED_OR_RIGHT, + LEFT_OR_RIGHT, + LEFT_UNDIRECTED_OR_RIGHT, + OTHER, + } + + /** + * TODO docs, equals, hashcode + */ + public enum class Restrictor { + TRAIL, + ACYCLIC, + SIMPLE, + OTHER, + } + + /** + * TODO docs, equals, hashcode + */ + public class Pattern( + @JvmField + public var restrictor: Restrictor?, + @JvmField + public var prefilter: Expr?, + @JvmField + public var variable: String?, + @JvmField + public var quantifier: Quantifier?, + @JvmField + public var parts: List, + ) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + prefilter?.let { kids.add(it) } + quantifier?.let { kids.add(it) } + kids.addAll(parts) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchPattern(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public abstract class Part : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Node -> visitor.visitGraphMatchPatternPartNode(this, ctx) + is Edge -> visitor.visitGraphMatchPatternPartEdge(this, ctx) + is Pattern -> visitor.visitGraphMatchPatternPartPattern(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class Node( + @JvmField + public var prefilter: Expr?, + @JvmField + public var variable: String?, + @JvmField + public var label: Label?, + ) : Part() { + public override fun children(): Collection { + val kids = mutableListOf() + prefilter?.let { kids.add(it) } + label?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchPatternPartNode(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Edge( + @JvmField + public var direction: Direction, + @JvmField + public var quantifier: Quantifier?, + @JvmField + public var prefilter: Expr?, + @JvmField + public var variable: String?, + @JvmField + public var label: Label?, + ) : Part() { + public override fun children(): Collection { + val kids = mutableListOf() + quantifier?.let { kids.add(it) } + prefilter?.let { kids.add(it) } + label?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchPatternPartEdge(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Pattern( + @JvmField + public var pattern: GraphMatch.Pattern, + ) : Part() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(pattern) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchPatternPartPattern(this, ctx) + } + } + } + + /** + * TODO docs, equals, hashcode + */ + public class Quantifier( + @JvmField + public var lower: Long, + @JvmField + public var upper: Long?, + ) : AstNode() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchQuantifier(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public abstract class Selector : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is AnyShortest -> visitor.visitGraphMatchSelectorAnyShortest(this, ctx) + is AllShortest -> visitor.visitGraphMatchSelectorAllShortest(this, ctx) + is Any -> visitor.visitGraphMatchSelectorAny(this, ctx) + is AnyK -> visitor.visitGraphMatchSelectorAnyK(this, ctx) + is ShortestK -> visitor.visitGraphMatchSelectorShortestK(this, ctx) + is ShortestKGroup -> visitor.visitGraphMatchSelectorShortestKGroup(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public object AnyShortest : Selector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchSelectorAnyShortest(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object AllShortest : Selector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchSelectorAllShortest(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Any : Selector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchSelectorAny(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class AnyK( + @JvmField + public var k: Long, + ) : Selector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchSelectorAnyK(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class ShortestK( + @JvmField + public var k: Long, + ) : Selector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchSelectorShortestK(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class ShortestKGroup( + @JvmField + public var k: Long, + ) : Selector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchSelectorShortestKGroup(this, ctx) + } + } + + /** + * TODO docs, equals, hashcode + */ + public abstract class Label : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Name -> visitor.visitGraphMatchLabelName(this, ctx) + is Wildcard -> visitor.visitGraphMatchLabelWildcard(this, ctx) + is Negation -> visitor.visitGraphMatchLabelNegation(this, ctx) + is Conj -> visitor.visitGraphMatchLabelConj(this, ctx) + is Disj -> visitor.visitGraphMatchLabelDisj(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class Name( + @JvmField + public var name: String, + ) : Label() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchLabelName(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Wildcard : Label() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchLabelWildcard(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Negation( + @JvmField + public var arg: Label, + ) : Label() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(arg) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchLabelNegation(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Conj( + @JvmField + public var lhs: Label, + @JvmField + public var rhs: Label, + ) : Label() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchLabelConj(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Disj( + @JvmField + public var lhs: Label, + @JvmField + public var rhs: Label, + ) : Label() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchLabelDisj(this, ctx) + } + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt new file mode 100644 index 0000000000..9d0246d0b7 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt @@ -0,0 +1,52 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class GroupBy( + @JvmField + public var strategy: Strategy, + @JvmField + public var keys: List, + @JvmField + public var asAlias: Identifier.Symbol?, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(keys) + asAlias?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGroupBy(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Strategy { + FULL, + PARTIAL, + OTHER, + } + + /** + * TODO docs, equals, hashcode + */ + public class Key( + @JvmField + public var expr: Expr, + @JvmField + public var asAlias: Identifier.Symbol?, + ) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + asAlias?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGroupByKey(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt new file mode 100644 index 0000000000..3f142a9010 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt @@ -0,0 +1,56 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public abstract class Identifier : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Symbol -> visitor.visitIdentifierSymbol(this, ctx) + is Qualified -> visitor.visitIdentifierQualified(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public enum class CaseSensitivity { + SENSITIVE, + INSENSITIVE, + OTHER, + } + + /** + * TODO docs, equals, hashcode + */ + public class Symbol( + @JvmField + public var symbol: String, + @JvmField + public var caseSensitivity: CaseSensitivity, + ) : Identifier() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitIdentifierSymbol(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Qualified( + @JvmField + public var root: Symbol, + @JvmField + public var steps: List, + ) : Identifier() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(root) + kids.addAll(steps) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitIdentifierQualified(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt new file mode 100644 index 0000000000..2f7ca49541 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt @@ -0,0 +1,40 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class Let( + @JvmField + public var bindings: List, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(bindings) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitLet( + this, + ctx + ) + + /** + * TODO docs, equals, hashcode + */ + public class Binding( + @JvmField + public var expr: Expr, + @JvmField + public var asAlias: Identifier.Symbol, + ) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + kids.add(asAlias) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitLetBinding(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/OrderBy.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/OrderBy.kt new file mode 100644 index 0000000000..b7f54e9fbc --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/OrderBy.kt @@ -0,0 +1,18 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class OrderBy( + @JvmField + public var sorts: List, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(sorts) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitOrderBy(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt new file mode 100644 index 0000000000..43c0164c6e --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt @@ -0,0 +1,60 @@ +package org.partiql.ast.v1 + +import kotlin.Int + +/** + * TODO docs, equals, hashcode + */ +public class PathLit( + @JvmField + public var root: Identifier.Symbol, + @JvmField + public var steps: List, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(root) + kids.addAll(steps) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitPath( + this, + ctx + ) + + /** + * TODO docs, equals, hashcode + */ + public abstract class Step : AstNode() { + /** + * TODO docs, equals, hashcode + */ + public class Symbol( + @JvmField + public var symbol: Identifier.Symbol, + ) : Step() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(symbol) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitPathStepSymbol(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Index( + @JvmField + public var index: Int, + ) : Step() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitPathStepIndex(this, ctx) + } + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt new file mode 100644 index 0000000000..4e50bed9c8 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt @@ -0,0 +1,72 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public abstract class QueryBody : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is SFW -> visitor.visitQueryBodySFW(this, ctx) + is SetOp -> visitor.visitQueryBodySetOp(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class SFW( + @JvmField + public var select: Select, + @JvmField + public var exclude: Exclude?, + @JvmField + public var from: From, + @JvmField + public var let: Let?, + @JvmField + public var `where`: Expr?, + @JvmField + public var groupBy: GroupBy?, + @JvmField + public var having: Expr?, + ) : QueryBody() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(select) + exclude?.let { kids.add(it) } + kids.add(from) + let?.let { kids.add(it) } + where?.let { kids.add(it) } + groupBy?.let { kids.add(it) } + having?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitQueryBodySFW(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class SetOp( + @JvmField + public var type: org.partiql.ast.v1.SetOp, + @JvmField + public var isOuter: Boolean, + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, + ) : QueryBody() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(type) + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitQueryBodySetOp(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt new file mode 100644 index 0000000000..81fc4d5536 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt @@ -0,0 +1,133 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public abstract class Select : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Star -> visitor.visitSelectStar(this, ctx) + is Project -> visitor.visitSelectProject(this, ctx) + is Pivot -> visitor.visitSelectPivot(this, ctx) + is Value -> visitor.visitSelectValue(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class Star( + @JvmField + public var setq: SetQuantifier?, + ) : Select() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitSelectStar(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Project( + @JvmField + public var items: List, + @JvmField + public var setq: SetQuantifier?, + ) : Select() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(items) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitSelectProject(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public abstract class Item : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is All -> visitor.visitSelectProjectItemAll(this, ctx) + is Expression -> visitor.visitSelectProjectItemExpression(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class All( + @JvmField + public var expr: Expr, + ) : Item() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitSelectProjectItemAll(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Expression( + @JvmField + public var expr: Expr, + @JvmField + public var asAlias: Identifier.Symbol?, + ) : Item() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + asAlias?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitSelectProjectItemExpression(this, ctx) + } + } + } + + /** + * TODO docs, equals, hashcode + */ + public class Pivot( + @JvmField + public var key: Expr, + @JvmField + public var `value`: Expr, + ) : Select() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(key) + kids.add(value) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitSelectPivot(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Value( + @JvmField + public var `constructor`: Expr, + @JvmField + public var setq: SetQuantifier?, + ) : Select() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(constructor) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitSelectValue(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetOp.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetOp.kt new file mode 100644 index 0000000000..cf71f9649b --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetOp.kt @@ -0,0 +1,28 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class SetOp( + @JvmField + public var type: Type, + @JvmField + public var setq: SetQuantifier?, +) : AstNode() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitSetOp( + this, + ctx + ) + + /** + * TODO docs, equals, hashcode + */ + public enum class Type { + UNION, + INTERSECT, + EXCEPT, + OTHER, + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetQuantifier.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetQuantifier.kt new file mode 100644 index 0000000000..30977c7c85 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetQuantifier.kt @@ -0,0 +1,10 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public enum class SetQuantifier { + ALL, + DISTINCT, + OTHER, +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt new file mode 100644 index 0000000000..a4320ee715 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt @@ -0,0 +1,42 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class Sort( + @JvmField + public var expr: Expr, + @JvmField + public var dir: Dir?, + @JvmField + public var nulls: Nulls?, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitSort( + this, + ctx + ) + + /** + * TODO docs, equals, hashcode + */ + public enum class Dir { + ASC, + DESC, + OTHER, + } + + /** + * TODO docs, equals, hashcode + */ + public enum class Nulls { + FIRST, + LAST, + OTHER, + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt new file mode 100644 index 0000000000..7203fb74f3 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt @@ -0,0 +1,171 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public abstract class Statement : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Query -> visitor.visitStatementQuery(this, ctx) + is DDL -> visitor.visitStatementDDL(this, ctx) + is Explain -> visitor.visitStatementExplain(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class Query( + @JvmField + public var expr: Expr, + ) : Statement() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitStatementQuery(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public abstract class DDL : Statement() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is CreateTable -> visitor.visitStatementDDLCreateTable(this, ctx) + is CreateIndex -> visitor.visitStatementDDLCreateIndex(this, ctx) + is DropTable -> visitor.visitStatementDDLDropTable(this, ctx) + is DropIndex -> visitor.visitStatementDDLDropIndex(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class CreateTable( + @JvmField + public var name: Identifier, + @JvmField + public var definition: TableDefinition?, + ) : DDL() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(name) + definition?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitStatementDDLCreateTable(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class CreateIndex( + @JvmField + public var index: Identifier?, + @JvmField + public var table: Identifier, + @JvmField + public var fields: List, + ) : DDL() { + public override fun children(): Collection { + val kids = mutableListOf() + index?.let { kids.add(it) } + kids.add(table) + kids.addAll(fields) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitStatementDDLCreateIndex(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class DropTable( + @JvmField + public var table: Identifier, + ) : DDL() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(table) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitStatementDDLDropTable(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class DropIndex( + @JvmField + public var index: Identifier, + @JvmField + public var table: Identifier, + ) : DDL() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(index) + kids.add(table) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitStatementDDLDropIndex(this, ctx) + } + } + + /** + * TODO docs, equals, hashcode + */ + public class Explain( + @JvmField + public var target: Target, + ) : Statement() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(target) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitStatementExplain(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public abstract class Target : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Domain -> visitor.visitStatementExplainTargetDomain(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class Domain( + @JvmField + public var statement: Statement, + @JvmField + public var type: String?, + @JvmField + public var format: String?, + ) : Target() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(statement) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitStatementExplainTargetDomain(this, ctx) + } + } + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt new file mode 100644 index 0000000000..0393a31d2a --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt @@ -0,0 +1,108 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class TableDefinition( + @JvmField + public var columns: List, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(columns) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTableDefinition(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public class Column( + @JvmField + public var name: String, + @JvmField + public var type: Type, + @JvmField + public var constraints: List, + ) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(type) + kids.addAll(constraints) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTableDefinitionColumn(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public class Constraint( + @JvmField + public var name: String?, + @JvmField + public var body: Body, + ) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(body) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTableDefinitionColumnConstraint(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public abstract class Body : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Nullable -> visitor.visitTableDefinitionColumnConstraintBodyNullable(this, ctx) + is NotNull -> visitor.visitTableDefinitionColumnConstraintBodyNotNull(this, ctx) + is Check -> visitor.visitTableDefinitionColumnConstraintBodyCheck(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public object Nullable : Body() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTableDefinitionColumnConstraintBodyNullable(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object NotNull : Body() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTableDefinitionColumnConstraintBodyNotNull(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Check( + @JvmField + public var expr: Expr, + ) : Body() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTableDefinitionColumnConstraintBodyCheck(this, ctx) + } + } + } + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Type.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Type.kt new file mode 100644 index 0000000000..a770497fb1 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Type.kt @@ -0,0 +1,469 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public abstract class Type : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Null -> visitor.visitTypeNull(this, ctx) + is Missing -> visitor.visitTypeMissing(this, ctx) + is Bool -> visitor.visitTypeBool(this, ctx) + is Tinyint -> visitor.visitTypeTinyint(this, ctx) + is Smallint -> visitor.visitTypeSmallint(this, ctx) + is Int2 -> visitor.visitTypeInt2(this, ctx) + is Int4 -> visitor.visitTypeInt4(this, ctx) + is Bigint -> visitor.visitTypeBigint(this, ctx) + is Int8 -> visitor.visitTypeInt8(this, ctx) + is Int -> visitor.visitTypeInt(this, ctx) + is Real -> visitor.visitTypeReal(this, ctx) + is Float32 -> visitor.visitTypeFloat32(this, ctx) + is Float64 -> visitor.visitTypeFloat64(this, ctx) + is Decimal -> visitor.visitTypeDecimal(this, ctx) + is Numeric -> visitor.visitTypeNumeric(this, ctx) + is Char -> visitor.visitTypeChar(this, ctx) + is Varchar -> visitor.visitTypeVarchar(this, ctx) + is String -> visitor.visitTypeString(this, ctx) + is Symbol -> visitor.visitTypeSymbol(this, ctx) + is Bit -> visitor.visitTypeBit(this, ctx) + is BitVarying -> visitor.visitTypeBitVarying(this, ctx) + is ByteString -> visitor.visitTypeByteString(this, ctx) + is Blob -> visitor.visitTypeBlob(this, ctx) + is Clob -> visitor.visitTypeClob(this, ctx) + is Date -> visitor.visitTypeDate(this, ctx) + is Time -> visitor.visitTypeTime(this, ctx) + is TimeWithTz -> visitor.visitTypeTimeWithTz(this, ctx) + is Timestamp -> visitor.visitTypeTimestamp(this, ctx) + is TimestampWithTz -> visitor.visitTypeTimestampWithTz(this, ctx) + is Interval -> visitor.visitTypeInterval(this, ctx) + is Bag -> visitor.visitTypeBag(this, ctx) + is List -> visitor.visitTypeList(this, ctx) + is Sexp -> visitor.visitTypeSexp(this, ctx) + is Tuple -> visitor.visitTypeTuple(this, ctx) + is Struct -> visitor.visitTypeStruct(this, ctx) + is Any -> visitor.visitTypeAny(this, ctx) + is Custom -> visitor.visitTypeCustom(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public object Null : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeNull(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Missing : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeMissing(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Bool : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBool(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Tinyint : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTinyint(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Smallint : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeSmallint(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Int2 : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeInt2(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Int4 : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeInt4(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Bigint : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBigint(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Int8 : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeInt8(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Int : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeInt(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Real : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeReal(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Float32 : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeFloat32(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Float64 : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeFloat64(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Decimal( + @JvmField + public var precision: kotlin.Int?, + @JvmField + public var scale: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeDecimal(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Numeric( + @JvmField + public var precision: kotlin.Int?, + @JvmField + public var scale: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeNumeric(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Char( + @JvmField + public var length: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeChar(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Varchar( + @JvmField + public var length: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeVarchar(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class String( + @JvmField + public var length: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeString(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Symbol : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeSymbol(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Bit( + @JvmField + public var length: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBit(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class BitVarying( + @JvmField + public var length: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBitVarying(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class ByteString( + @JvmField + public var length: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeByteString(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Blob( + @JvmField + public var length: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBlob(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Clob( + @JvmField + public var length: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeClob(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Date : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeDate(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Time( + @JvmField + public var precision: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTime(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class TimeWithTz( + @JvmField + public var precision: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTimeWithTz(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Timestamp( + @JvmField + public var precision: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTimestamp(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class TimestampWithTz( + @JvmField + public var precision: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTimestampWithTz(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Interval( + @JvmField + public var precision: kotlin.Int?, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeInterval(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Bag : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBag(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object List : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeList(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Sexp : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeSexp(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Tuple : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTuple(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Struct : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeStruct(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Any : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeAny(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Custom( + @JvmField + public var name: kotlin.String, + ) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeCustom(this, ctx) + } +} From 13ce770d789fce693caa0fd7ea1b009bca510fdb Mon Sep 17 00:00:00 2001 From: Alan Cai Date: Fri, 20 Sep 2024 17:57:27 -0700 Subject: [PATCH 02/11] (pre Kotlin -> Java) unnest Kotlin classes --- partiql-ast/api/partiql-ast.api | 1629 ++++++++--------- .../kotlin/org/partiql/ast/v1/AstVisitor.kt | 351 ++-- .../org/partiql/ast/v1/CaseSensitivity.kt | 10 + .../main/kotlin/org/partiql/ast/v1/Column.kt | 25 + .../kotlin/org/partiql/ast/v1/Constraint.kt | 20 + .../org/partiql/ast/v1/ConstraintBody.kt | 52 + .../kotlin/org/partiql/ast/v1/CreateIndex.kt | 24 + .../kotlin/org/partiql/ast/v1/CreateTable.kt | 21 + .../src/main/kotlin/org/partiql/ast/v1/DDL.kt | 14 + .../kotlin/org/partiql/ast/v1/DropIndex.kt | 21 + .../kotlin/org/partiql/ast/v1/DropTable.kt | 18 + .../main/kotlin/org/partiql/ast/v1/Exclude.kt | 79 +- .../kotlin/org/partiql/ast/v1/ExcludePath.kt | 23 + .../kotlin/org/partiql/ast/v1/ExcludeStep.kt | 56 + .../main/kotlin/org/partiql/ast/v1/Explain.kt | 18 + .../main/kotlin/org/partiql/ast/v1/Expr.kt | 884 --------- .../main/kotlin/org/partiql/ast/v1/From.kt | 82 +- .../kotlin/org/partiql/ast/v1/FromJoin.kt | 44 + .../kotlin/org/partiql/ast/v1/FromValue.kt | 40 + .../kotlin/org/partiql/ast/v1/GraphMatch.kt | 343 ---- .../main/kotlin/org/partiql/ast/v1/GroupBy.kt | 2 + .../kotlin/org/partiql/ast/v1/Identifier.kt | 9 - .../src/main/kotlin/org/partiql/ast/v1/Let.kt | 2 + .../main/kotlin/org/partiql/ast/v1/PathLit.kt | 41 +- .../kotlin/org/partiql/ast/v1/PathLitStep.kt | 36 + .../kotlin/org/partiql/ast/v1/ProjectItem.kt | 51 + .../main/kotlin/org/partiql/ast/v1/Query.kt | 20 + .../kotlin/org/partiql/ast/v1/QueryBody.kt | 2 + .../main/kotlin/org/partiql/ast/v1/Select.kt | 127 +- .../kotlin/org/partiql/ast/v1/SelectPivot.kt | 23 + .../org/partiql/ast/v1/SelectProject.kt | 20 + .../kotlin/org/partiql/ast/v1/SelectStar.kt | 14 + .../kotlin/org/partiql/ast/v1/SelectValue.kt | 22 + .../main/kotlin/org/partiql/ast/v1/Sort.kt | 2 + .../kotlin/org/partiql/ast/v1/Statement.kt | 164 +- .../org/partiql/ast/v1/TableDefinition.kt | 90 - .../main/kotlin/org/partiql/ast/v1/Target.kt | 32 + .../main/kotlin/org/partiql/ast/v1/Type.kt | 469 ----- .../kotlin/org/partiql/ast/v1/expr/Expr.kt | 45 + .../kotlin/org/partiql/ast/v1/expr/ExprAnd.kt | 24 + .../org/partiql/ast/v1/expr/ExprBetween.kt | 29 + .../org/partiql/ast/v1/expr/ExprCall.kt | 28 + .../org/partiql/ast/v1/expr/ExprCase.kt | 47 + .../org/partiql/ast/v1/expr/ExprCast.kt | 25 + .../org/partiql/ast/v1/expr/ExprCoalesce.kt | 21 + .../org/partiql/ast/v1/expr/ExprCollection.kt | 35 + .../org/partiql/ast/v1/expr/ExprDateAdd.kt | 27 + .../org/partiql/ast/v1/expr/ExprDateDiff.kt | 27 + .../org/partiql/ast/v1/expr/ExprExtract.kt | 24 + .../partiql/ast/v1/expr/ExprInCollection.kt | 26 + .../kotlin/org/partiql/ast/v1/expr/ExprIon.kt | 17 + .../org/partiql/ast/v1/expr/ExprIsType.kt | 27 + .../org/partiql/ast/v1/expr/ExprLike.kt | 29 + .../kotlin/org/partiql/ast/v1/expr/ExprLit.kt | 20 + .../org/partiql/ast/v1/expr/ExprMatch.kt | 25 + .../kotlin/org/partiql/ast/v1/expr/ExprNot.kt | 21 + .../org/partiql/ast/v1/expr/ExprNullIf.kt | 24 + .../org/partiql/ast/v1/expr/ExprOperator.kt | 26 + .../kotlin/org/partiql/ast/v1/expr/ExprOr.kt | 24 + .../org/partiql/ast/v1/expr/ExprOverlay.kt | 30 + .../org/partiql/ast/v1/expr/ExprParameter.kt | 17 + .../org/partiql/ast/v1/expr/ExprPath.kt | 24 + .../org/partiql/ast/v1/expr/ExprPathStep.kt | 72 + .../org/partiql/ast/v1/expr/ExprPosition.kt | 24 + .../org/partiql/ast/v1/expr/ExprQuerySet.kt | 32 + .../ast/v1/expr/ExprSessionAttribute.kt | 26 + .../org/partiql/ast/v1/expr/ExprStruct.kt | 41 + .../org/partiql/ast/v1/expr/ExprSubstring.kt | 27 + .../org/partiql/ast/v1/expr/ExprTrim.kt | 33 + .../org/partiql/ast/v1/expr/ExprValues.kt | 38 + .../kotlin/org/partiql/ast/v1/expr/ExprVar.kt | 33 + .../org/partiql/ast/v1/expr/ExprWindow.kt | 62 + .../partiql/ast/v1/graph/GraphDirection.kt | 15 + .../org/partiql/ast/v1/graph/GraphLabel.kt | 98 + .../org/partiql/ast/v1/graph/GraphMatch.kt | 24 + .../org/partiql/ast/v1/graph/GraphPart.kt | 83 + .../org/partiql/ast/v1/graph/GraphPattern.kt | 32 + .../partiql/ast/v1/graph/GraphQuantifier.kt | 19 + .../partiql/ast/v1/graph/GraphRestrictor.kt | 11 + .../org/partiql/ast/v1/graph/GraphSelector.kt | 88 + .../kotlin/org/partiql/ast/v1/type/Type.kt | 50 + .../kotlin/org/partiql/ast/v1/type/TypeAny.kt | 14 + .../kotlin/org/partiql/ast/v1/type/TypeBag.kt | 14 + .../org/partiql/ast/v1/type/TypeBigint.kt | 14 + .../kotlin/org/partiql/ast/v1/type/TypeBit.kt | 17 + .../org/partiql/ast/v1/type/TypeBitVarying.kt | 17 + .../org/partiql/ast/v1/type/TypeBlob.kt | 17 + .../org/partiql/ast/v1/type/TypeBool.kt | 14 + .../org/partiql/ast/v1/type/TypeByteString.kt | 17 + .../org/partiql/ast/v1/type/TypeChar.kt | 17 + .../org/partiql/ast/v1/type/TypeClob.kt | 17 + .../org/partiql/ast/v1/type/TypeCustom.kt | 17 + .../org/partiql/ast/v1/type/TypeDate.kt | 14 + .../org/partiql/ast/v1/type/TypeDecimal.kt | 19 + .../org/partiql/ast/v1/type/TypeFloat32.kt | 14 + .../org/partiql/ast/v1/type/TypeFloat64.kt | 14 + .../kotlin/org/partiql/ast/v1/type/TypeInt.kt | 14 + .../org/partiql/ast/v1/type/TypeInt2.kt | 14 + .../org/partiql/ast/v1/type/TypeInt4.kt | 14 + .../org/partiql/ast/v1/type/TypeInt8.kt | 14 + .../org/partiql/ast/v1/type/TypeInterval.kt | 17 + .../org/partiql/ast/v1/type/TypeList.kt | 14 + .../org/partiql/ast/v1/type/TypeMissing.kt | 14 + .../org/partiql/ast/v1/type/TypeNull.kt | 14 + .../org/partiql/ast/v1/type/TypeNumeric.kt | 19 + .../org/partiql/ast/v1/type/TypeReal.kt | 14 + .../org/partiql/ast/v1/type/TypeSexp.kt | 14 + .../org/partiql/ast/v1/type/TypeSmallint.kt | 14 + .../org/partiql/ast/v1/type/TypeString.kt | 17 + .../org/partiql/ast/v1/type/TypeStruct.kt | 14 + .../org/partiql/ast/v1/type/TypeSymbol.kt | 14 + .../org/partiql/ast/v1/type/TypeTime.kt | 17 + .../org/partiql/ast/v1/type/TypeTimeWithTz.kt | 17 + .../org/partiql/ast/v1/type/TypeTimestamp.kt | 17 + .../ast/v1/type/TypeTimestampWithTz.kt | 17 + .../org/partiql/ast/v1/type/TypeTinyint.kt | 14 + .../org/partiql/ast/v1/type/TypeTuple.kt | 14 + .../org/partiql/ast/v1/type/TypeVarchar.kt | 17 + 118 files changed, 3656 insertions(+), 3244 deletions(-) create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/CaseSensitivity.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Column.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Constraint.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/ConstraintBody.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateIndex.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateTable.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/DDL.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropIndex.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropTable.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludePath.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludeStep.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Explain.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Expr.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromJoin.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromValue.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/GraphMatch.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLitStep.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/ProjectItem.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Query.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectPivot.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectProject.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectStar.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectValue.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Target.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Type.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/Expr.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprAnd.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprBetween.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCall.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCase.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCast.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCoalesce.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCollection.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateAdd.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateDiff.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprExtract.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprInCollection.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIon.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIsType.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLike.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLit.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprMatch.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNot.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNullIf.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOperator.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOr.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOverlay.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprParameter.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPath.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPathStep.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPosition.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprQuerySet.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSessionAttribute.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprStruct.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSubstring.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprTrim.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprValues.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprVar.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprWindow.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphDirection.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphLabel.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphMatch.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPart.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPattern.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphQuantifier.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphRestrictor.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphSelector.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/Type.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeAny.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBag.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBigint.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBit.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBitVarying.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBlob.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBool.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeByteString.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeChar.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeClob.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeCustom.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDate.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDecimal.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat32.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat64.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt2.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt4.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt8.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInterval.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeList.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeMissing.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNull.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNumeric.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeReal.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSexp.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSmallint.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeString.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeStruct.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSymbol.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTime.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimeWithTz.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestamp.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestampWithTz.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTinyint.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTuple.kt create mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeVarchar.kt diff --git a/partiql-ast/api/partiql-ast.api b/partiql-ast/api/partiql-ast.api index b205244f01..65436e844d 100644 --- a/partiql-ast/api/partiql-ast.api +++ b/partiql-ast/api/partiql-ast.api @@ -5552,78 +5552,90 @@ public abstract class org/partiql/ast/v1/AstNode { public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visit (Lorg/partiql/ast/v1/AstNode;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitColumn (Lorg/partiql/ast/v1/Column;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitConstraint (Lorg/partiql/ast/v1/Constraint;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitConstraintBody (Lorg/partiql/ast/v1/ConstraintBody;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitConstraintBodyCheck (Lorg/partiql/ast/v1/ConstraintBody$Check;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitConstraintBodyNotNull (Lorg/partiql/ast/v1/ConstraintBody$NotNull;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitConstraintBodyNullable (Lorg/partiql/ast/v1/ConstraintBody$Nullable;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitCreateIndex (Lorg/partiql/ast/v1/CreateIndex;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitCreateTable (Lorg/partiql/ast/v1/CreateTable;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitDDL (Lorg/partiql/ast/v1/DDL;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitDropIndex (Lorg/partiql/ast/v1/DropIndex;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitDropTable (Lorg/partiql/ast/v1/DropTable;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExclude (Lorg/partiql/ast/v1/Exclude;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExcludeItem (Lorg/partiql/ast/v1/Exclude$Item;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExcludeStep (Lorg/partiql/ast/v1/Exclude$Step;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExcludeStepCollIndex (Lorg/partiql/ast/v1/Exclude$Step$CollIndex;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExcludeStepCollWildcard (Lorg/partiql/ast/v1/Exclude$Step$CollWildcard;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExcludeStepStructField (Lorg/partiql/ast/v1/Exclude$Step$StructField;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExcludeStepStructWildcard (Lorg/partiql/ast/v1/Exclude$Step$StructWildcard;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExpr (Lorg/partiql/ast/v1/Expr;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprAnd (Lorg/partiql/ast/v1/Expr$And;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprBetween (Lorg/partiql/ast/v1/Expr$Between;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprCall (Lorg/partiql/ast/v1/Expr$Call;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprCase (Lorg/partiql/ast/v1/Expr$Case;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprCaseBranch (Lorg/partiql/ast/v1/Expr$Case$Branch;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprCast (Lorg/partiql/ast/v1/Expr$Cast;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprCoalesce (Lorg/partiql/ast/v1/Expr$Coalesce;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprCollection (Lorg/partiql/ast/v1/Expr$Collection;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprDateAdd (Lorg/partiql/ast/v1/Expr$DateAdd;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprDateDiff (Lorg/partiql/ast/v1/Expr$DateDiff;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprExtract (Lorg/partiql/ast/v1/Expr$Extract;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprInCollection (Lorg/partiql/ast/v1/Expr$InCollection;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprIon (Lorg/partiql/ast/v1/Expr$Ion;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprIsType (Lorg/partiql/ast/v1/Expr$IsType;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprLike (Lorg/partiql/ast/v1/Expr$Like;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprLit (Lorg/partiql/ast/v1/Expr$Lit;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprMatch (Lorg/partiql/ast/v1/Expr$Match;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprNot (Lorg/partiql/ast/v1/Expr$Not;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprNullIf (Lorg/partiql/ast/v1/Expr$NullIf;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprOperator (Lorg/partiql/ast/v1/Expr$Operator;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprOr (Lorg/partiql/ast/v1/Expr$Or;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprOverlay (Lorg/partiql/ast/v1/Expr$Overlay;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprParameter (Lorg/partiql/ast/v1/Expr$Parameter;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPath (Lorg/partiql/ast/v1/Expr$Path;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPathStep (Lorg/partiql/ast/v1/Expr$Path$Step;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPathStepIndex (Lorg/partiql/ast/v1/Expr$Path$Step$Index;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPathStepSymbol (Lorg/partiql/ast/v1/Expr$Path$Step$Symbol;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPathStepUnpivot (Lorg/partiql/ast/v1/Expr$Path$Step$Unpivot;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPathStepWildcard (Lorg/partiql/ast/v1/Expr$Path$Step$Wildcard;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPosition (Lorg/partiql/ast/v1/Expr$Position;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprQuerySet (Lorg/partiql/ast/v1/Expr$QuerySet;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprSessionAttribute (Lorg/partiql/ast/v1/Expr$SessionAttribute;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprStruct (Lorg/partiql/ast/v1/Expr$Struct;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprStructField (Lorg/partiql/ast/v1/Expr$Struct$Field;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprSubstring (Lorg/partiql/ast/v1/Expr$Substring;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprTrim (Lorg/partiql/ast/v1/Expr$Trim;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprValues (Lorg/partiql/ast/v1/Expr$Values;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprValuesRow (Lorg/partiql/ast/v1/Expr$Values$Row;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprVar (Lorg/partiql/ast/v1/Expr$Var;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprWindow (Lorg/partiql/ast/v1/Expr$Window;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprWindowOver (Lorg/partiql/ast/v1/Expr$Window$Over;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludePath (Lorg/partiql/ast/v1/ExcludePath;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludeStep (Lorg/partiql/ast/v1/ExcludeStep;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludeStepCollIndex (Lorg/partiql/ast/v1/ExcludeStep$CollIndex;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludeStepCollWildcard (Lorg/partiql/ast/v1/ExcludeStep$CollWildcard;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludeStepStructField (Lorg/partiql/ast/v1/ExcludeStep$StructField;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExcludeStepStructWildcard (Lorg/partiql/ast/v1/ExcludeStep$StructWildcard;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExplain (Lorg/partiql/ast/v1/Explain;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExpr (Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprAnd (Lorg/partiql/ast/v1/expr/ExprAnd;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprBetween (Lorg/partiql/ast/v1/expr/ExprBetween;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCall (Lorg/partiql/ast/v1/expr/ExprCall;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCase (Lorg/partiql/ast/v1/expr/ExprCase;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCaseBranch (Lorg/partiql/ast/v1/expr/ExprCase$Branch;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCast (Lorg/partiql/ast/v1/expr/ExprCast;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCoalesce (Lorg/partiql/ast/v1/expr/ExprCoalesce;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprCollection (Lorg/partiql/ast/v1/expr/ExprCollection;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprDateAdd (Lorg/partiql/ast/v1/expr/ExprDateAdd;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprDateDiff (Lorg/partiql/ast/v1/expr/ExprDateDiff;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprExtract (Lorg/partiql/ast/v1/expr/ExprExtract;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprInCollection (Lorg/partiql/ast/v1/expr/ExprInCollection;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprIon (Lorg/partiql/ast/v1/expr/ExprIon;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprIsType (Lorg/partiql/ast/v1/expr/ExprIsType;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprLike (Lorg/partiql/ast/v1/expr/ExprLike;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprLit (Lorg/partiql/ast/v1/expr/ExprLit;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprMatch (Lorg/partiql/ast/v1/expr/ExprMatch;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprNot (Lorg/partiql/ast/v1/expr/ExprNot;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprNullIf (Lorg/partiql/ast/v1/expr/ExprNullIf;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprOperator (Lorg/partiql/ast/v1/expr/ExprOperator;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprOr (Lorg/partiql/ast/v1/expr/ExprOr;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprOverlay (Lorg/partiql/ast/v1/expr/ExprOverlay;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprParameter (Lorg/partiql/ast/v1/expr/ExprParameter;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPath (Lorg/partiql/ast/v1/expr/ExprPath;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPathStep (Lorg/partiql/ast/v1/expr/ExprPathStep;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPathStepIndex (Lorg/partiql/ast/v1/expr/ExprPathStep$Index;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPathStepSymbol (Lorg/partiql/ast/v1/expr/ExprPathStep$Symbol;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPathStepUnpivot (Lorg/partiql/ast/v1/expr/ExprPathStep$Unpivot;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPathStepWildcard (Lorg/partiql/ast/v1/expr/ExprPathStep$Wildcard;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprPosition (Lorg/partiql/ast/v1/expr/ExprPosition;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprQuerySet (Lorg/partiql/ast/v1/expr/ExprQuerySet;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprSessionAttribute (Lorg/partiql/ast/v1/expr/ExprSessionAttribute;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprStruct (Lorg/partiql/ast/v1/expr/ExprStruct;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprStructField (Lorg/partiql/ast/v1/expr/ExprStruct$Field;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprSubstring (Lorg/partiql/ast/v1/expr/ExprSubstring;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprTrim (Lorg/partiql/ast/v1/expr/ExprTrim;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprValues (Lorg/partiql/ast/v1/expr/ExprValues;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprValuesRow (Lorg/partiql/ast/v1/expr/ExprValues$Row;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprVar (Lorg/partiql/ast/v1/expr/ExprVar;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprWindow (Lorg/partiql/ast/v1/expr/ExprWindow;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprWindowOver (Lorg/partiql/ast/v1/expr/ExprWindow$Over;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitFrom (Lorg/partiql/ast/v1/From;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitFromJoin (Lorg/partiql/ast/v1/From$Join;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitFromValue (Lorg/partiql/ast/v1/From$Value;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatch (Lorg/partiql/ast/v1/GraphMatch;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchLabel (Lorg/partiql/ast/v1/GraphMatch$Label;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchLabelConj (Lorg/partiql/ast/v1/GraphMatch$Label$Conj;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchLabelDisj (Lorg/partiql/ast/v1/GraphMatch$Label$Disj;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchLabelName (Lorg/partiql/ast/v1/GraphMatch$Label$Name;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchLabelNegation (Lorg/partiql/ast/v1/GraphMatch$Label$Negation;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchLabelWildcard (Lorg/partiql/ast/v1/GraphMatch$Label$Wildcard;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchPattern (Lorg/partiql/ast/v1/GraphMatch$Pattern;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchPatternPart (Lorg/partiql/ast/v1/GraphMatch$Pattern$Part;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchPatternPartEdge (Lorg/partiql/ast/v1/GraphMatch$Pattern$Part$Edge;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchPatternPartNode (Lorg/partiql/ast/v1/GraphMatch$Pattern$Part$Node;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchPatternPartPattern (Lorg/partiql/ast/v1/GraphMatch$Pattern$Part$Pattern;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchQuantifier (Lorg/partiql/ast/v1/GraphMatch$Quantifier;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchSelector (Lorg/partiql/ast/v1/GraphMatch$Selector;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchSelectorAllShortest (Lorg/partiql/ast/v1/GraphMatch$Selector$AllShortest;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchSelectorAny (Lorg/partiql/ast/v1/GraphMatch$Selector$Any;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchSelectorAnyK (Lorg/partiql/ast/v1/GraphMatch$Selector$AnyK;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchSelectorAnyShortest (Lorg/partiql/ast/v1/GraphMatch$Selector$AnyShortest;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchSelectorShortestK (Lorg/partiql/ast/v1/GraphMatch$Selector$ShortestK;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitGraphMatchSelectorShortestKGroup (Lorg/partiql/ast/v1/GraphMatch$Selector$ShortestKGroup;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitFromJoin (Lorg/partiql/ast/v1/FromJoin;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitFromValue (Lorg/partiql/ast/v1/FromValue;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphLabel (Lorg/partiql/ast/v1/graph/GraphLabel;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphLabelConj (Lorg/partiql/ast/v1/graph/GraphLabel$Conj;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphLabelDisj (Lorg/partiql/ast/v1/graph/GraphLabel$Disj;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphLabelName (Lorg/partiql/ast/v1/graph/GraphLabel$Name;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphLabelNegation (Lorg/partiql/ast/v1/graph/GraphLabel$Negation;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphLabelWildcard (Lorg/partiql/ast/v1/graph/GraphLabel$Wildcard;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatch (Lorg/partiql/ast/v1/graph/GraphMatch;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphMatchPattern (Lorg/partiql/ast/v1/graph/GraphPattern;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphPart (Lorg/partiql/ast/v1/graph/GraphPart;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphPartEdge (Lorg/partiql/ast/v1/graph/GraphPart$Edge;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphPartNode (Lorg/partiql/ast/v1/graph/GraphPart$Node;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphPartPattern (Lorg/partiql/ast/v1/graph/GraphPart$Pattern;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphQuantifier (Lorg/partiql/ast/v1/graph/GraphQuantifier;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphSelector (Lorg/partiql/ast/v1/graph/GraphSelector;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphSelectorAllShortest (Lorg/partiql/ast/v1/graph/GraphSelector$AllShortest;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphSelectorAny (Lorg/partiql/ast/v1/graph/GraphSelector$Any;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphSelectorAnyK (Lorg/partiql/ast/v1/graph/GraphSelector$AnyK;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphSelectorAnyShortest (Lorg/partiql/ast/v1/graph/GraphSelector$AnyShortest;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphSelectorShortestK (Lorg/partiql/ast/v1/graph/GraphSelector$ShortestK;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitGraphSelectorShortestKGroup (Lorg/partiql/ast/v1/graph/GraphSelector$ShortestKGroup;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitGroupBy (Lorg/partiql/ast/v1/GroupBy;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitGroupByKey (Lorg/partiql/ast/v1/GroupBy$Key;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitIdentifier (Lorg/partiql/ast/v1/Identifier;Ljava/lang/Object;)Ljava/lang/Object; @@ -5632,1226 +5644,1177 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitLet (Lorg/partiql/ast/v1/Let;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitLetBinding (Lorg/partiql/ast/v1/Let$Binding;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitOrderBy (Lorg/partiql/ast/v1/OrderBy;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitPath (Lorg/partiql/ast/v1/PathLit;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitPathStep (Lorg/partiql/ast/v1/PathLit$Step;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitPathStepIndex (Lorg/partiql/ast/v1/PathLit$Step$Index;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitPathStepSymbol (Lorg/partiql/ast/v1/PathLit$Step$Symbol;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathLit (Lorg/partiql/ast/v1/PathLit;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathLitStep (Lorg/partiql/ast/v1/PathLitStep;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathLitStepIndex (Lorg/partiql/ast/v1/PathLitStep$Index;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathLitStepSymbol (Lorg/partiql/ast/v1/PathLitStep$Symbol;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitProjectItem (Lorg/partiql/ast/v1/ProjectItem;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitProjectItemAll (Lorg/partiql/ast/v1/ProjectItem$All;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitProjectItemExpression (Lorg/partiql/ast/v1/ProjectItem$Expression;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitQuery (Lorg/partiql/ast/v1/Query;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQueryBody (Lorg/partiql/ast/v1/QueryBody;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQueryBodySFW (Lorg/partiql/ast/v1/QueryBody$SFW;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQueryBodySetOp (Lorg/partiql/ast/v1/QueryBody$SetOp;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSelect (Lorg/partiql/ast/v1/Select;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitSelectPivot (Lorg/partiql/ast/v1/Select$Pivot;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitSelectProject (Lorg/partiql/ast/v1/Select$Project;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitSelectProjectItem (Lorg/partiql/ast/v1/Select$Project$Item;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitSelectProjectItemAll (Lorg/partiql/ast/v1/Select$Project$Item$All;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitSelectProjectItemExpression (Lorg/partiql/ast/v1/Select$Project$Item$Expression;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitSelectStar (Lorg/partiql/ast/v1/Select$Star;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitSelectValue (Lorg/partiql/ast/v1/Select$Value;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectPivot (Lorg/partiql/ast/v1/SelectPivot;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectProject (Lorg/partiql/ast/v1/SelectProject;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectStar (Lorg/partiql/ast/v1/SelectStar;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectValue (Lorg/partiql/ast/v1/SelectValue;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSetOp (Lorg/partiql/ast/v1/SetOp;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSort (Lorg/partiql/ast/v1/Sort;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitStatement (Lorg/partiql/ast/v1/Statement;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitStatementDDL (Lorg/partiql/ast/v1/Statement$DDL;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitStatementDDLCreateIndex (Lorg/partiql/ast/v1/Statement$DDL$CreateIndex;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitStatementDDLCreateTable (Lorg/partiql/ast/v1/Statement$DDL$CreateTable;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitStatementDDLDropIndex (Lorg/partiql/ast/v1/Statement$DDL$DropIndex;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitStatementDDLDropTable (Lorg/partiql/ast/v1/Statement$DDL$DropTable;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitStatementExplain (Lorg/partiql/ast/v1/Statement$Explain;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitStatementExplainTarget (Lorg/partiql/ast/v1/Statement$Explain$Target;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitStatementExplainTargetDomain (Lorg/partiql/ast/v1/Statement$Explain$Target$Domain;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitStatementQuery (Lorg/partiql/ast/v1/Statement$Query;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTableDefinition (Lorg/partiql/ast/v1/TableDefinition;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTableDefinitionColumn (Lorg/partiql/ast/v1/TableDefinition$Column;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTableDefinitionColumnConstraint (Lorg/partiql/ast/v1/TableDefinition$Column$Constraint;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTableDefinitionColumnConstraintBody (Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTableDefinitionColumnConstraintBodyCheck (Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body$Check;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTableDefinitionColumnConstraintBodyNotNull (Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body$NotNull;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTableDefinitionColumnConstraintBodyNullable (Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body$Nullable;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitType (Lorg/partiql/ast/v1/Type;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeAny (Lorg/partiql/ast/v1/Type$Any;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBag (Lorg/partiql/ast/v1/Type$Bag;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBigint (Lorg/partiql/ast/v1/Type$Bigint;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBit (Lorg/partiql/ast/v1/Type$Bit;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBitVarying (Lorg/partiql/ast/v1/Type$BitVarying;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBlob (Lorg/partiql/ast/v1/Type$Blob;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBool (Lorg/partiql/ast/v1/Type$Bool;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeByteString (Lorg/partiql/ast/v1/Type$ByteString;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeChar (Lorg/partiql/ast/v1/Type$Char;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeClob (Lorg/partiql/ast/v1/Type$Clob;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeCustom (Lorg/partiql/ast/v1/Type$Custom;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeDate (Lorg/partiql/ast/v1/Type$Date;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeDecimal (Lorg/partiql/ast/v1/Type$Decimal;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeFloat32 (Lorg/partiql/ast/v1/Type$Float32;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeFloat64 (Lorg/partiql/ast/v1/Type$Float64;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeInt (Lorg/partiql/ast/v1/Type$Int;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeInt2 (Lorg/partiql/ast/v1/Type$Int2;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeInt4 (Lorg/partiql/ast/v1/Type$Int4;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeInt8 (Lorg/partiql/ast/v1/Type$Int8;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeInterval (Lorg/partiql/ast/v1/Type$Interval;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeList (Lorg/partiql/ast/v1/Type$List;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeMissing (Lorg/partiql/ast/v1/Type$Missing;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeNull (Lorg/partiql/ast/v1/Type$Null;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeNumeric (Lorg/partiql/ast/v1/Type$Numeric;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeReal (Lorg/partiql/ast/v1/Type$Real;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeSexp (Lorg/partiql/ast/v1/Type$Sexp;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeSmallint (Lorg/partiql/ast/v1/Type$Smallint;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeString (Lorg/partiql/ast/v1/Type$String;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeStruct (Lorg/partiql/ast/v1/Type$Struct;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeSymbol (Lorg/partiql/ast/v1/Type$Symbol;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTime (Lorg/partiql/ast/v1/Type$Time;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTimeWithTz (Lorg/partiql/ast/v1/Type$TimeWithTz;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTimestamp (Lorg/partiql/ast/v1/Type$Timestamp;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTimestampWithTz (Lorg/partiql/ast/v1/Type$TimestampWithTz;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTinyint (Lorg/partiql/ast/v1/Type$Tinyint;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTuple (Lorg/partiql/ast/v1/Type$Tuple;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeVarchar (Lorg/partiql/ast/v1/Type$Varchar;Ljava/lang/Object;)Ljava/lang/Object; -} - -public final class org/partiql/ast/v1/DatetimeField : java/lang/Enum { - public static final field DAY Lorg/partiql/ast/v1/DatetimeField; - public static final field HOUR Lorg/partiql/ast/v1/DatetimeField; - public static final field MINUTE Lorg/partiql/ast/v1/DatetimeField; - public static final field MONTH Lorg/partiql/ast/v1/DatetimeField; - public static final field OTHER Lorg/partiql/ast/v1/DatetimeField; - public static final field SECOND Lorg/partiql/ast/v1/DatetimeField; - public static final field TIMEZONE_HOUR Lorg/partiql/ast/v1/DatetimeField; - public static final field TIMEZONE_MINUTE Lorg/partiql/ast/v1/DatetimeField; - public static final field YEAR Lorg/partiql/ast/v1/DatetimeField; + public abstract fun visitTarget (Lorg/partiql/ast/v1/Target;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTargetDomain (Lorg/partiql/ast/v1/Target$Domain;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitType (Lorg/partiql/ast/v1/type/Type;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeAny (Lorg/partiql/ast/v1/type/TypeAny;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBag (Lorg/partiql/ast/v1/type/TypeBag;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBigint (Lorg/partiql/ast/v1/type/TypeBigint;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBit (Lorg/partiql/ast/v1/type/TypeBit;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBitVarying (Lorg/partiql/ast/v1/type/TypeBitVarying;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBlob (Lorg/partiql/ast/v1/type/TypeBlob;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeBool (Lorg/partiql/ast/v1/type/TypeBool;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeByteString (Lorg/partiql/ast/v1/type/TypeByteString;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeChar (Lorg/partiql/ast/v1/type/TypeChar;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeClob (Lorg/partiql/ast/v1/type/TypeClob;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeCustom (Lorg/partiql/ast/v1/type/TypeCustom;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeDate (Lorg/partiql/ast/v1/type/TypeDate;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeDecimal (Lorg/partiql/ast/v1/type/TypeDecimal;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeFloat32 (Lorg/partiql/ast/v1/type/TypeFloat32;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeFloat64 (Lorg/partiql/ast/v1/type/TypeFloat64;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeInt (Lorg/partiql/ast/v1/type/TypeInt;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeInt2 (Lorg/partiql/ast/v1/type/TypeInt2;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeInt4 (Lorg/partiql/ast/v1/type/TypeInt4;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeInt8 (Lorg/partiql/ast/v1/type/TypeInt8;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeInterval (Lorg/partiql/ast/v1/type/TypeInterval;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeList (Lorg/partiql/ast/v1/type/TypeList;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeMissing (Lorg/partiql/ast/v1/type/TypeMissing;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeNull (Lorg/partiql/ast/v1/type/TypeNull;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeNumeric (Lorg/partiql/ast/v1/type/TypeNumeric;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeReal (Lorg/partiql/ast/v1/type/TypeReal;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeSexp (Lorg/partiql/ast/v1/type/TypeSexp;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeSmallint (Lorg/partiql/ast/v1/type/TypeSmallint;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeString (Lorg/partiql/ast/v1/type/TypeString;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeStruct (Lorg/partiql/ast/v1/type/TypeStruct;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeSymbol (Lorg/partiql/ast/v1/type/TypeSymbol;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTime (Lorg/partiql/ast/v1/type/TypeTime;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTimeWithTz (Lorg/partiql/ast/v1/type/TypeTimeWithTz;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTimestamp (Lorg/partiql/ast/v1/type/TypeTimestamp;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTimestampWithTz (Lorg/partiql/ast/v1/type/TypeTimestampWithTz;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTinyint (Lorg/partiql/ast/v1/type/TypeTinyint;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeTuple (Lorg/partiql/ast/v1/type/TypeTuple;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeVarchar (Lorg/partiql/ast/v1/type/TypeVarchar;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/CaseSensitivity : java/lang/Enum { + public static final field INSENSITIVE Lorg/partiql/ast/v1/CaseSensitivity; + public static final field OTHER Lorg/partiql/ast/v1/CaseSensitivity; + public static final field SENSITIVE Lorg/partiql/ast/v1/CaseSensitivity; public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/DatetimeField; - public static fun values ()[Lorg/partiql/ast/v1/DatetimeField; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/CaseSensitivity; + public static fun values ()[Lorg/partiql/ast/v1/CaseSensitivity; } -public final class org/partiql/ast/v1/Exclude : org/partiql/ast/v1/AstNode { - public field items Ljava/util/List; - public fun (Ljava/util/List;)V +public final class org/partiql/ast/v1/Column : org/partiql/ast/v1/AstNode { + public field constraints Ljava/util/List; + public field name Ljava/lang/String; + public field type Lorg/partiql/ast/v1/type/Type; + public fun (Ljava/lang/String;Lorg/partiql/ast/v1/type/Type;Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Exclude$Item : org/partiql/ast/v1/AstNode { - public field root Lorg/partiql/ast/v1/Expr$Var; - public field steps Ljava/util/List; - public fun (Lorg/partiql/ast/v1/Expr$Var;Ljava/util/List;)V +public final class org/partiql/ast/v1/Constraint : org/partiql/ast/v1/AstNode { + public field constraintBody Lorg/partiql/ast/v1/ConstraintBody; + public field name Ljava/lang/String; + public fun (Ljava/lang/String;Lorg/partiql/ast/v1/ConstraintBody;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/Exclude$Step : org/partiql/ast/v1/AstNode { +public abstract class org/partiql/ast/v1/ConstraintBody : org/partiql/ast/v1/AstNode { public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/Exclude$Step$CollIndex : org/partiql/ast/v1/Exclude$Step { - public field index I - public fun (I)V +public final class org/partiql/ast/v1/ConstraintBody$Check : org/partiql/ast/v1/ConstraintBody { + public field expr Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Exclude$Step$CollWildcard : org/partiql/ast/v1/Exclude$Step { - public static final field INSTANCE Lorg/partiql/ast/v1/Exclude$Step$CollWildcard; +public final class org/partiql/ast/v1/ConstraintBody$NotNull : org/partiql/ast/v1/ConstraintBody { + public static final field INSTANCE Lorg/partiql/ast/v1/ConstraintBody$NotNull; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Exclude$Step$StructField : org/partiql/ast/v1/Exclude$Step { - public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; - public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V +public final class org/partiql/ast/v1/ConstraintBody$Nullable : org/partiql/ast/v1/ConstraintBody { + public static final field INSTANCE Lorg/partiql/ast/v1/ConstraintBody$Nullable; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Exclude$Step$StructWildcard : org/partiql/ast/v1/Exclude$Step { - public static final field INSTANCE Lorg/partiql/ast/v1/Exclude$Step$StructWildcard; +public final class org/partiql/ast/v1/CreateIndex : org/partiql/ast/v1/DDL { + public field fields Ljava/util/List; + public field index Lorg/partiql/ast/v1/Identifier; + public field table Lorg/partiql/ast/v1/Identifier; + public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/Expr : org/partiql/ast/v1/AstNode { - public fun ()V +public final class org/partiql/ast/v1/CreateTable : org/partiql/ast/v1/DDL { + public field definition Lorg/partiql/ast/v1/TableDefinition; + public field name Lorg/partiql/ast/v1/Identifier; + public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/TableDefinition;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$And : org/partiql/ast/v1/Expr { - public field lhs Lorg/partiql/ast/v1/Expr; - public field rhs Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public abstract class org/partiql/ast/v1/DDL : org/partiql/ast/v1/Statement { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; } -public final class org/partiql/ast/v1/Expr$Between : org/partiql/ast/v1/Expr { - public field from Lorg/partiql/ast/v1/Expr; - public field not Ljava/lang/Boolean; - public field to Lorg/partiql/ast/v1/Expr; - public field value Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Ljava/lang/Boolean;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; +public final class org/partiql/ast/v1/DatetimeField : java/lang/Enum { + public static final field DAY Lorg/partiql/ast/v1/DatetimeField; + public static final field HOUR Lorg/partiql/ast/v1/DatetimeField; + public static final field MINUTE Lorg/partiql/ast/v1/DatetimeField; + public static final field MONTH Lorg/partiql/ast/v1/DatetimeField; + public static final field OTHER Lorg/partiql/ast/v1/DatetimeField; + public static final field SECOND Lorg/partiql/ast/v1/DatetimeField; + public static final field TIMEZONE_HOUR Lorg/partiql/ast/v1/DatetimeField; + public static final field TIMEZONE_MINUTE Lorg/partiql/ast/v1/DatetimeField; + public static final field YEAR Lorg/partiql/ast/v1/DatetimeField; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/DatetimeField; + public static fun values ()[Lorg/partiql/ast/v1/DatetimeField; } -public final class org/partiql/ast/v1/Expr$Call : org/partiql/ast/v1/Expr { - public field args Ljava/util/List; - public field function Lorg/partiql/ast/v1/Identifier; - public field setq Lorg/partiql/ast/v1/SetQuantifier; - public fun (Lorg/partiql/ast/v1/Identifier;Ljava/util/List;Lorg/partiql/ast/v1/SetQuantifier;)V +public final class org/partiql/ast/v1/DropIndex : org/partiql/ast/v1/DDL { + public field index Lorg/partiql/ast/v1/Identifier; + public field table Lorg/partiql/ast/v1/Identifier; + public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Case : org/partiql/ast/v1/Expr { - public field branches Ljava/util/List; - public field default Lorg/partiql/ast/v1/Expr; - public field expr Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Ljava/util/List;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/DropTable : org/partiql/ast/v1/DDL { + public field table Lorg/partiql/ast/v1/Identifier; + public fun (Lorg/partiql/ast/v1/Identifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Case$Branch : org/partiql/ast/v1/AstNode { - public field condition Lorg/partiql/ast/v1/Expr; - public field expr Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/Exclude : org/partiql/ast/v1/AstNode { + public field excludePaths Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Cast : org/partiql/ast/v1/Expr { - public field asType Lorg/partiql/ast/v1/Type; - public field value Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Type;)V +public final class org/partiql/ast/v1/ExcludePath : org/partiql/ast/v1/AstNode { + public field excludeSteps Ljava/util/List; + public field root Lorg/partiql/ast/v1/expr/ExprVar; + public fun (Lorg/partiql/ast/v1/expr/ExprVar;Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Coalesce : org/partiql/ast/v1/Expr { - public field args Ljava/util/List; - public fun (Ljava/util/List;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; +public abstract class org/partiql/ast/v1/ExcludeStep : org/partiql/ast/v1/AstNode { + public fun ()V } -public final class org/partiql/ast/v1/Expr$Collection : org/partiql/ast/v1/Expr { - public field type Lorg/partiql/ast/v1/Expr$Collection$Type; - public field values Ljava/util/List; - public fun (Lorg/partiql/ast/v1/Expr$Collection$Type;Ljava/util/List;)V +public final class org/partiql/ast/v1/ExcludeStep$CollIndex : org/partiql/ast/v1/ExcludeStep { + public field index I + public fun (I)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Collection$Type : java/lang/Enum { - public static final field ARRAY Lorg/partiql/ast/v1/Expr$Collection$Type; - public static final field BAG Lorg/partiql/ast/v1/Expr$Collection$Type; - public static final field LIST Lorg/partiql/ast/v1/Expr$Collection$Type; - public static final field OTHER Lorg/partiql/ast/v1/Expr$Collection$Type; - public static final field SEXP Lorg/partiql/ast/v1/Expr$Collection$Type; - public static final field VALUES Lorg/partiql/ast/v1/Expr$Collection$Type; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Expr$Collection$Type; - public static fun values ()[Lorg/partiql/ast/v1/Expr$Collection$Type; +public final class org/partiql/ast/v1/ExcludeStep$CollWildcard : org/partiql/ast/v1/ExcludeStep { + public static final field INSTANCE Lorg/partiql/ast/v1/ExcludeStep$CollWildcard; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$DateAdd : org/partiql/ast/v1/Expr { - public field field Lorg/partiql/ast/v1/DatetimeField; - public field lhs Lorg/partiql/ast/v1/Expr; - public field rhs Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/ExcludeStep$StructField : org/partiql/ast/v1/ExcludeStep { + public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; + public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$DateDiff : org/partiql/ast/v1/Expr { - public field field Lorg/partiql/ast/v1/DatetimeField; - public field lhs Lorg/partiql/ast/v1/Expr; - public field rhs Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/ExcludeStep$StructWildcard : org/partiql/ast/v1/ExcludeStep { + public static final field INSTANCE Lorg/partiql/ast/v1/ExcludeStep$StructWildcard; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Extract : org/partiql/ast/v1/Expr { - public field field Lorg/partiql/ast/v1/DatetimeField; - public field source Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/Explain : org/partiql/ast/v1/Statement { + public field target Lorg/partiql/ast/v1/Target; + public fun (Lorg/partiql/ast/v1/Target;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$InCollection : org/partiql/ast/v1/Expr { - public field lhs Lorg/partiql/ast/v1/Expr; - public field not Ljava/lang/Boolean; - public field rhs Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Ljava/lang/Boolean;)V +public abstract class org/partiql/ast/v1/From : org/partiql/ast/v1/AstNode { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; } -public final class org/partiql/ast/v1/Expr$Ion : org/partiql/ast/v1/Expr { - public field value Lcom/amazon/ionelement/api/IonElement; - public fun (Lcom/amazon/ionelement/api/IonElement;)V +public final class org/partiql/ast/v1/FromJoin : org/partiql/ast/v1/From { + public field condition Lorg/partiql/ast/v1/expr/Expr; + public field lhs Lorg/partiql/ast/v1/From; + public field rhs Lorg/partiql/ast/v1/From; + public field type Lorg/partiql/ast/v1/FromJoin$Type; + public fun (Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/FromJoin$Type;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$IsType : org/partiql/ast/v1/Expr { - public field not Ljava/lang/Boolean; - public field type Lorg/partiql/ast/v1/Type; - public field value Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Type;Ljava/lang/Boolean;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; +public final class org/partiql/ast/v1/FromJoin$Type : java/lang/Enum { + public static final field COMMA Lorg/partiql/ast/v1/FromJoin$Type; + public static final field CROSS Lorg/partiql/ast/v1/FromJoin$Type; + public static final field FULL Lorg/partiql/ast/v1/FromJoin$Type; + public static final field FULL_OUTER Lorg/partiql/ast/v1/FromJoin$Type; + public static final field INNER Lorg/partiql/ast/v1/FromJoin$Type; + public static final field LEFT Lorg/partiql/ast/v1/FromJoin$Type; + public static final field LEFT_OUTER Lorg/partiql/ast/v1/FromJoin$Type; + public static final field OTHER Lorg/partiql/ast/v1/FromJoin$Type; + public static final field RIGHT Lorg/partiql/ast/v1/FromJoin$Type; + public static final field RIGHT_OUTER Lorg/partiql/ast/v1/FromJoin$Type; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/FromJoin$Type; + public static fun values ()[Lorg/partiql/ast/v1/FromJoin$Type; } -public final class org/partiql/ast/v1/Expr$Like : org/partiql/ast/v1/Expr { - public field escape Lorg/partiql/ast/v1/Expr; - public field not Ljava/lang/Boolean; - public field pattern Lorg/partiql/ast/v1/Expr; - public field value Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Ljava/lang/Boolean;)V +public final class org/partiql/ast/v1/FromValue : org/partiql/ast/v1/From { + public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field atAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field byAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field expr Lorg/partiql/ast/v1/expr/Expr; + public field type Lorg/partiql/ast/v1/FromValue$Type; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/FromValue$Type;Lorg/partiql/ast/v1/Identifier$Symbol;Lorg/partiql/ast/v1/Identifier$Symbol;Lorg/partiql/ast/v1/Identifier$Symbol;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Lit : org/partiql/ast/v1/Expr { - public field value Lorg/partiql/value/PartiQLValue; - public fun (Lorg/partiql/value/PartiQLValue;)V +public final class org/partiql/ast/v1/FromValue$Type : java/lang/Enum { + public static final field OTHER Lorg/partiql/ast/v1/FromValue$Type; + public static final field SCAN Lorg/partiql/ast/v1/FromValue$Type; + public static final field UNPIVOT Lorg/partiql/ast/v1/FromValue$Type; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/FromValue$Type; + public static fun values ()[Lorg/partiql/ast/v1/FromValue$Type; +} + +public final class org/partiql/ast/v1/GroupBy : org/partiql/ast/v1/AstNode { + public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field keys Ljava/util/List; + public field strategy Lorg/partiql/ast/v1/GroupBy$Strategy; + public fun (Lorg/partiql/ast/v1/GroupBy$Strategy;Ljava/util/List;Lorg/partiql/ast/v1/Identifier$Symbol;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Match : org/partiql/ast/v1/Expr { - public field expr Lorg/partiql/ast/v1/Expr; - public field pattern Lorg/partiql/ast/v1/GraphMatch; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/GraphMatch;)V +public final class org/partiql/ast/v1/GroupBy$Key : org/partiql/ast/v1/AstNode { + public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field expr Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Not : org/partiql/ast/v1/Expr { - public field value Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/GroupBy$Strategy : java/lang/Enum { + public static final field FULL Lorg/partiql/ast/v1/GroupBy$Strategy; + public static final field OTHER Lorg/partiql/ast/v1/GroupBy$Strategy; + public static final field PARTIAL Lorg/partiql/ast/v1/GroupBy$Strategy; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/GroupBy$Strategy; + public static fun values ()[Lorg/partiql/ast/v1/GroupBy$Strategy; +} + +public abstract class org/partiql/ast/v1/Identifier : org/partiql/ast/v1/AstNode { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; } -public final class org/partiql/ast/v1/Expr$NullIf : org/partiql/ast/v1/Expr { - public field nullifier Lorg/partiql/ast/v1/Expr; - public field value Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/Identifier$Qualified : org/partiql/ast/v1/Identifier { + public field root Lorg/partiql/ast/v1/Identifier$Symbol; + public field steps Ljava/util/List; + public fun (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Operator : org/partiql/ast/v1/Expr { - public field lhs Lorg/partiql/ast/v1/Expr; - public field rhs Lorg/partiql/ast/v1/Expr; +public final class org/partiql/ast/v1/Identifier$Symbol : org/partiql/ast/v1/Identifier { + public field caseSensitivity Lorg/partiql/ast/v1/CaseSensitivity; public field symbol Ljava/lang/String; - public fun (Ljava/lang/String;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V + public fun (Ljava/lang/String;Lorg/partiql/ast/v1/CaseSensitivity;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Or : org/partiql/ast/v1/Expr { - public field lhs Lorg/partiql/ast/v1/Expr; - public field rhs Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/Let : org/partiql/ast/v1/AstNode { + public field bindings Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Overlay : org/partiql/ast/v1/Expr { - public field length Lorg/partiql/ast/v1/Expr; - public field overlay Lorg/partiql/ast/v1/Expr; - public field start Lorg/partiql/ast/v1/Expr; - public field value Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/Let$Binding : org/partiql/ast/v1/AstNode { + public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field expr Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Parameter : org/partiql/ast/v1/Expr { - public field index I - public fun (I)V +public final class org/partiql/ast/v1/OrderBy : org/partiql/ast/v1/AstNode { + public field sorts Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Path : org/partiql/ast/v1/Expr { - public field root Lorg/partiql/ast/v1/Expr; +public final class org/partiql/ast/v1/PathLit : org/partiql/ast/v1/AstNode { + public field root Lorg/partiql/ast/v1/Identifier$Symbol; public field steps Ljava/util/List; - public fun (Lorg/partiql/ast/v1/Expr;Ljava/util/List;)V + public fun (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/Expr$Path$Step : org/partiql/ast/v1/AstNode { +public abstract class org/partiql/ast/v1/PathLitStep : org/partiql/ast/v1/AstNode { public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/Expr$Path$Step$Index : org/partiql/ast/v1/Expr$Path$Step { - public field key Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/PathLitStep$Index : org/partiql/ast/v1/PathLitStep { + public field index I + public fun (I)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Path$Step$Symbol : org/partiql/ast/v1/Expr$Path$Step { +public final class org/partiql/ast/v1/PathLitStep$Symbol : org/partiql/ast/v1/PathLitStep { public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; -} - -public final class org/partiql/ast/v1/Expr$Path$Step$Unpivot : org/partiql/ast/v1/Expr$Path$Step { - public static final field INSTANCE Lorg/partiql/ast/v1/Expr$Path$Step$Unpivot; - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Path$Step$Wildcard : org/partiql/ast/v1/Expr$Path$Step { - public static final field INSTANCE Lorg/partiql/ast/v1/Expr$Path$Step$Wildcard; +public abstract class org/partiql/ast/v1/ProjectItem : org/partiql/ast/v1/AstNode { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; } -public final class org/partiql/ast/v1/Expr$Position : org/partiql/ast/v1/Expr { - public field lhs Lorg/partiql/ast/v1/Expr; - public field rhs Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/ProjectItem$All : org/partiql/ast/v1/ProjectItem { + public field expr Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$QuerySet : org/partiql/ast/v1/Expr { - public field body Lorg/partiql/ast/v1/QueryBody; - public field limit Lorg/partiql/ast/v1/Expr; - public field offset Lorg/partiql/ast/v1/Expr; - public field orderBy Lorg/partiql/ast/v1/OrderBy; - public fun (Lorg/partiql/ast/v1/QueryBody;Lorg/partiql/ast/v1/OrderBy;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/ProjectItem$Expression : org/partiql/ast/v1/ProjectItem { + public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field expr Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$SessionAttribute : org/partiql/ast/v1/Expr { - public field attribute Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; - public fun (Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute;)V +public final class org/partiql/ast/v1/Query : org/partiql/ast/v1/Statement { + public field expr Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; -} - -public final class org/partiql/ast/v1/Expr$SessionAttribute$Attribute : java/lang/Enum { - public static final field CURRENT_DATE Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; - public static final field CURRENT_USER Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; - public static final field OTHER Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; - public static fun values ()[Lorg/partiql/ast/v1/Expr$SessionAttribute$Attribute; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Struct : org/partiql/ast/v1/Expr { - public field fields Ljava/util/List; - public fun (Ljava/util/List;)V +public abstract class org/partiql/ast/v1/QueryBody : org/partiql/ast/v1/AstNode { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; } -public final class org/partiql/ast/v1/Expr$Struct$Field : org/partiql/ast/v1/AstNode { - public field name Lorg/partiql/ast/v1/Expr; - public field value Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/QueryBody$SFW : org/partiql/ast/v1/QueryBody { + public field exclude Lorg/partiql/ast/v1/Exclude; + public field from Lorg/partiql/ast/v1/From; + public field groupBy Lorg/partiql/ast/v1/GroupBy; + public field having Lorg/partiql/ast/v1/expr/Expr; + public field let Lorg/partiql/ast/v1/Let; + public field select Lorg/partiql/ast/v1/Select; + public field where Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/Select;Lorg/partiql/ast/v1/Exclude;Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/Let;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/GroupBy;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Substring : org/partiql/ast/v1/Expr { - public field length Lorg/partiql/ast/v1/Expr; - public field start Lorg/partiql/ast/v1/Expr; - public field value Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/QueryBody$SetOp : org/partiql/ast/v1/QueryBody { + public field isOuter Z + public field lhs Lorg/partiql/ast/v1/expr/Expr; + public field rhs Lorg/partiql/ast/v1/expr/Expr; + public field type Lorg/partiql/ast/v1/SetOp; + public fun (Lorg/partiql/ast/v1/SetOp;ZLorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Trim : org/partiql/ast/v1/Expr { - public field chars Lorg/partiql/ast/v1/Expr; - public field spec Lorg/partiql/ast/v1/Expr$Trim$Spec; - public field value Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr$Trim$Spec;)V +public abstract class org/partiql/ast/v1/Select : org/partiql/ast/v1/AstNode { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; -} - -public final class org/partiql/ast/v1/Expr$Trim$Spec : java/lang/Enum { - public static final field BOTH Lorg/partiql/ast/v1/Expr$Trim$Spec; - public static final field LEADING Lorg/partiql/ast/v1/Expr$Trim$Spec; - public static final field OTHER Lorg/partiql/ast/v1/Expr$Trim$Spec; - public static final field TRAILING Lorg/partiql/ast/v1/Expr$Trim$Spec; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Expr$Trim$Spec; - public static fun values ()[Lorg/partiql/ast/v1/Expr$Trim$Spec; } -public final class org/partiql/ast/v1/Expr$Values : org/partiql/ast/v1/Expr { - public field rows Ljava/util/List; - public fun (Ljava/util/List;)V +public final class org/partiql/ast/v1/SelectPivot : org/partiql/ast/v1/Select { + public field key Lorg/partiql/ast/v1/expr/Expr; + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Values$Row : org/partiql/ast/v1/AstNode { +public final class org/partiql/ast/v1/SelectProject : org/partiql/ast/v1/Select { public field items Ljava/util/List; - public fun (Ljava/util/List;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; -} - -public final class org/partiql/ast/v1/Expr$Var : org/partiql/ast/v1/Expr { - public field identifier Lorg/partiql/ast/v1/Identifier; - public field scope Lorg/partiql/ast/v1/Expr$Var$Scope; - public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Expr$Var$Scope;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; -} - -public final class org/partiql/ast/v1/Expr$Var$Scope : java/lang/Enum { - public static final field DEFAULT Lorg/partiql/ast/v1/Expr$Var$Scope; - public static final field LOCAL Lorg/partiql/ast/v1/Expr$Var$Scope; - public static final field OTHER Lorg/partiql/ast/v1/Expr$Var$Scope; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Expr$Var$Scope; - public static fun values ()[Lorg/partiql/ast/v1/Expr$Var$Scope; -} - -public final class org/partiql/ast/v1/Expr$Window : org/partiql/ast/v1/Expr { - public field default Lorg/partiql/ast/v1/Expr; - public field expression Lorg/partiql/ast/v1/Expr; - public field function Lorg/partiql/ast/v1/Expr$Window$Function; - public field offset Lorg/partiql/ast/v1/Expr; - public field over Lorg/partiql/ast/v1/Expr$Window$Over; - public fun (Lorg/partiql/ast/v1/Expr$Window$Function;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr$Window$Over;)V + public field setq Lorg/partiql/ast/v1/SetQuantifier; + public fun (Ljava/util/List;Lorg/partiql/ast/v1/SetQuantifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; -} - -public final class org/partiql/ast/v1/Expr$Window$Function : java/lang/Enum { - public static final field LAG Lorg/partiql/ast/v1/Expr$Window$Function; - public static final field LEAD Lorg/partiql/ast/v1/Expr$Window$Function; - public static final field OTHER Lorg/partiql/ast/v1/Expr$Window$Function; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Expr$Window$Function; - public static fun values ()[Lorg/partiql/ast/v1/Expr$Window$Function; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Expr$Window$Over : org/partiql/ast/v1/AstNode { - public field partitions Ljava/util/List; - public field sorts Ljava/util/List; - public fun (Ljava/util/List;Ljava/util/List;)V +public final class org/partiql/ast/v1/SelectStar : org/partiql/ast/v1/Select { + public field setq Lorg/partiql/ast/v1/SetQuantifier; + public fun (Lorg/partiql/ast/v1/SetQuantifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/From : org/partiql/ast/v1/AstNode { - public fun ()V +public final class org/partiql/ast/v1/SelectValue : org/partiql/ast/v1/Select { + public field constructor Lorg/partiql/ast/v1/expr/Expr; + public field setq Lorg/partiql/ast/v1/SetQuantifier; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/SetQuantifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/From$Join : org/partiql/ast/v1/From { - public field condition Lorg/partiql/ast/v1/Expr; - public field lhs Lorg/partiql/ast/v1/From; - public field rhs Lorg/partiql/ast/v1/From; - public field type Lorg/partiql/ast/v1/From$Join$Type; - public fun (Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/From$Join$Type;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/SetOp : org/partiql/ast/v1/AstNode { + public field setq Lorg/partiql/ast/v1/SetQuantifier; + public field type Lorg/partiql/ast/v1/SetOp$Type; + public fun (Lorg/partiql/ast/v1/SetOp$Type;Lorg/partiql/ast/v1/SetQuantifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/From$Join$Type : java/lang/Enum { - public static final field COMMA Lorg/partiql/ast/v1/From$Join$Type; - public static final field CROSS Lorg/partiql/ast/v1/From$Join$Type; - public static final field FULL Lorg/partiql/ast/v1/From$Join$Type; - public static final field FULL_OUTER Lorg/partiql/ast/v1/From$Join$Type; - public static final field INNER Lorg/partiql/ast/v1/From$Join$Type; - public static final field LEFT Lorg/partiql/ast/v1/From$Join$Type; - public static final field LEFT_OUTER Lorg/partiql/ast/v1/From$Join$Type; - public static final field OTHER Lorg/partiql/ast/v1/From$Join$Type; - public static final field RIGHT Lorg/partiql/ast/v1/From$Join$Type; - public static final field RIGHT_OUTER Lorg/partiql/ast/v1/From$Join$Type; +public final class org/partiql/ast/v1/SetOp$Type : java/lang/Enum { + public static final field EXCEPT Lorg/partiql/ast/v1/SetOp$Type; + public static final field INTERSECT Lorg/partiql/ast/v1/SetOp$Type; + public static final field OTHER Lorg/partiql/ast/v1/SetOp$Type; + public static final field UNION Lorg/partiql/ast/v1/SetOp$Type; public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/From$Join$Type; - public static fun values ()[Lorg/partiql/ast/v1/From$Join$Type; -} - -public final class org/partiql/ast/v1/From$Value : org/partiql/ast/v1/From { - public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; - public field atAlias Lorg/partiql/ast/v1/Identifier$Symbol; - public field byAlias Lorg/partiql/ast/v1/Identifier$Symbol; - public field expr Lorg/partiql/ast/v1/Expr; - public field type Lorg/partiql/ast/v1/From$Value$Type; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/From$Value$Type;Lorg/partiql/ast/v1/Identifier$Symbol;Lorg/partiql/ast/v1/Identifier$Symbol;Lorg/partiql/ast/v1/Identifier$Symbol;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/SetOp$Type; + public static fun values ()[Lorg/partiql/ast/v1/SetOp$Type; } -public final class org/partiql/ast/v1/From$Value$Type : java/lang/Enum { - public static final field OTHER Lorg/partiql/ast/v1/From$Value$Type; - public static final field SCAN Lorg/partiql/ast/v1/From$Value$Type; - public static final field UNPIVOT Lorg/partiql/ast/v1/From$Value$Type; +public final class org/partiql/ast/v1/SetQuantifier : java/lang/Enum { + public static final field ALL Lorg/partiql/ast/v1/SetQuantifier; + public static final field DISTINCT Lorg/partiql/ast/v1/SetQuantifier; + public static final field OTHER Lorg/partiql/ast/v1/SetQuantifier; public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/From$Value$Type; - public static fun values ()[Lorg/partiql/ast/v1/From$Value$Type; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/SetQuantifier; + public static fun values ()[Lorg/partiql/ast/v1/SetQuantifier; } -public final class org/partiql/ast/v1/GraphMatch : org/partiql/ast/v1/AstNode { - public field patterns Ljava/util/List; - public field selector Lorg/partiql/ast/v1/GraphMatch$Selector; - public fun (Ljava/util/List;Lorg/partiql/ast/v1/GraphMatch$Selector;)V +public final class org/partiql/ast/v1/Sort : org/partiql/ast/v1/AstNode { + public field dir Lorg/partiql/ast/v1/Sort$Dir; + public field expr Lorg/partiql/ast/v1/expr/Expr; + public field nulls Lorg/partiql/ast/v1/Sort$Nulls; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Sort$Dir;Lorg/partiql/ast/v1/Sort$Nulls;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Direction : java/lang/Enum { - public static final field LEFT Lorg/partiql/ast/v1/GraphMatch$Direction; - public static final field LEFT_OR_RIGHT Lorg/partiql/ast/v1/GraphMatch$Direction; - public static final field LEFT_OR_UNDIRECTED Lorg/partiql/ast/v1/GraphMatch$Direction; - public static final field LEFT_UNDIRECTED_OR_RIGHT Lorg/partiql/ast/v1/GraphMatch$Direction; - public static final field OTHER Lorg/partiql/ast/v1/GraphMatch$Direction; - public static final field RIGHT Lorg/partiql/ast/v1/GraphMatch$Direction; - public static final field UNDIRECTED Lorg/partiql/ast/v1/GraphMatch$Direction; - public static final field UNDIRECTED_OR_RIGHT Lorg/partiql/ast/v1/GraphMatch$Direction; +public final class org/partiql/ast/v1/Sort$Dir : java/lang/Enum { + public static final field ASC Lorg/partiql/ast/v1/Sort$Dir; + public static final field DESC Lorg/partiql/ast/v1/Sort$Dir; + public static final field OTHER Lorg/partiql/ast/v1/Sort$Dir; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Sort$Dir; + public static fun values ()[Lorg/partiql/ast/v1/Sort$Dir; +} + +public final class org/partiql/ast/v1/Sort$Nulls : java/lang/Enum { + public static final field FIRST Lorg/partiql/ast/v1/Sort$Nulls; + public static final field LAST Lorg/partiql/ast/v1/Sort$Nulls; + public static final field OTHER Lorg/partiql/ast/v1/Sort$Nulls; public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/GraphMatch$Direction; - public static fun values ()[Lorg/partiql/ast/v1/GraphMatch$Direction; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Sort$Nulls; + public static fun values ()[Lorg/partiql/ast/v1/Sort$Nulls; } -public abstract class org/partiql/ast/v1/GraphMatch$Label : org/partiql/ast/v1/AstNode { +public abstract class org/partiql/ast/v1/Statement : org/partiql/ast/v1/AstNode { public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/GraphMatch$Label$Conj : org/partiql/ast/v1/GraphMatch$Label { - public field lhs Lorg/partiql/ast/v1/GraphMatch$Label; - public field rhs Lorg/partiql/ast/v1/GraphMatch$Label; - public fun (Lorg/partiql/ast/v1/GraphMatch$Label;Lorg/partiql/ast/v1/GraphMatch$Label;)V +public final class org/partiql/ast/v1/TableDefinition : org/partiql/ast/v1/AstNode { + public field columns Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Label$Disj : org/partiql/ast/v1/GraphMatch$Label { - public field lhs Lorg/partiql/ast/v1/GraphMatch$Label; - public field rhs Lorg/partiql/ast/v1/GraphMatch$Label; - public fun (Lorg/partiql/ast/v1/GraphMatch$Label;Lorg/partiql/ast/v1/GraphMatch$Label;)V +public abstract class org/partiql/ast/v1/Target : org/partiql/ast/v1/AstNode { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Label$Name : org/partiql/ast/v1/GraphMatch$Label { - public field name Ljava/lang/String; - public fun (Ljava/lang/String;)V +public final class org/partiql/ast/v1/Target$Domain : org/partiql/ast/v1/Target { + public field format Ljava/lang/String; + public field statement Lorg/partiql/ast/v1/Statement; + public field type Ljava/lang/String; + public fun (Lorg/partiql/ast/v1/Statement;Ljava/lang/String;Ljava/lang/String;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Label$Negation : org/partiql/ast/v1/GraphMatch$Label { - public field arg Lorg/partiql/ast/v1/GraphMatch$Label; - public fun (Lorg/partiql/ast/v1/GraphMatch$Label;)V +public abstract class org/partiql/ast/v1/expr/Expr : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public final class org/partiql/ast/v1/expr/ExprAnd : org/partiql/ast/v1/expr/Expr { + public field lhs Lorg/partiql/ast/v1/expr/Expr; + public field rhs Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Label$Wildcard : org/partiql/ast/v1/GraphMatch$Label { - public static final field INSTANCE Lorg/partiql/ast/v1/GraphMatch$Label$Wildcard; +public final class org/partiql/ast/v1/expr/ExprBetween : org/partiql/ast/v1/expr/Expr { + public field from Lorg/partiql/ast/v1/expr/Expr; + public field not Ljava/lang/Boolean; + public field to Lorg/partiql/ast/v1/expr/Expr; + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/Boolean;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Pattern : org/partiql/ast/v1/AstNode { - public field parts Ljava/util/List; - public field prefilter Lorg/partiql/ast/v1/Expr; - public field quantifier Lorg/partiql/ast/v1/GraphMatch$Quantifier; - public field restrictor Lorg/partiql/ast/v1/GraphMatch$Restrictor; - public field variable Ljava/lang/String; - public fun (Lorg/partiql/ast/v1/GraphMatch$Restrictor;Lorg/partiql/ast/v1/Expr;Ljava/lang/String;Lorg/partiql/ast/v1/GraphMatch$Quantifier;Ljava/util/List;)V +public final class org/partiql/ast/v1/expr/ExprCall : org/partiql/ast/v1/expr/Expr { + public field args Ljava/util/List; + public field function Lorg/partiql/ast/v1/Identifier; + public field setq Lorg/partiql/ast/v1/SetQuantifier; + public fun (Lorg/partiql/ast/v1/Identifier;Ljava/util/List;Lorg/partiql/ast/v1/SetQuantifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/GraphMatch$Pattern$Part : org/partiql/ast/v1/AstNode { - public fun ()V +public final class org/partiql/ast/v1/expr/ExprCase : org/partiql/ast/v1/expr/Expr { + public field branches Ljava/util/List; + public field default Lorg/partiql/ast/v1/expr/Expr; + public field expr Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Ljava/util/List;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Pattern$Part$Edge : org/partiql/ast/v1/GraphMatch$Pattern$Part { - public field direction Lorg/partiql/ast/v1/GraphMatch$Direction; - public field label Lorg/partiql/ast/v1/GraphMatch$Label; - public field prefilter Lorg/partiql/ast/v1/Expr; - public field quantifier Lorg/partiql/ast/v1/GraphMatch$Quantifier; - public field variable Ljava/lang/String; - public fun (Lorg/partiql/ast/v1/GraphMatch$Direction;Lorg/partiql/ast/v1/GraphMatch$Quantifier;Lorg/partiql/ast/v1/Expr;Ljava/lang/String;Lorg/partiql/ast/v1/GraphMatch$Label;)V +public final class org/partiql/ast/v1/expr/ExprCase$Branch : org/partiql/ast/v1/AstNode { + public field condition Lorg/partiql/ast/v1/expr/Expr; + public field expr Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Pattern$Part$Node : org/partiql/ast/v1/GraphMatch$Pattern$Part { - public field label Lorg/partiql/ast/v1/GraphMatch$Label; - public field prefilter Lorg/partiql/ast/v1/Expr; - public field variable Ljava/lang/String; - public fun (Lorg/partiql/ast/v1/Expr;Ljava/lang/String;Lorg/partiql/ast/v1/GraphMatch$Label;)V +public final class org/partiql/ast/v1/expr/ExprCast : org/partiql/ast/v1/expr/Expr { + public field asType Lorg/partiql/ast/v1/type/Type; + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/type/Type;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Pattern$Part$Pattern : org/partiql/ast/v1/GraphMatch$Pattern$Part { - public field pattern Lorg/partiql/ast/v1/GraphMatch$Pattern; - public fun (Lorg/partiql/ast/v1/GraphMatch$Pattern;)V +public final class org/partiql/ast/v1/expr/ExprCoalesce : org/partiql/ast/v1/expr/Expr { + public field args Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Quantifier : org/partiql/ast/v1/AstNode { - public field lower J - public field upper Ljava/lang/Long; - public fun (JLjava/lang/Long;)V +public final class org/partiql/ast/v1/expr/ExprCollection : org/partiql/ast/v1/expr/Expr { + public field type Lorg/partiql/ast/v1/expr/ExprCollection$Type; + public field values Ljava/util/List; + public fun (Lorg/partiql/ast/v1/expr/ExprCollection$Type;Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Restrictor : java/lang/Enum { - public static final field ACYCLIC Lorg/partiql/ast/v1/GraphMatch$Restrictor; - public static final field OTHER Lorg/partiql/ast/v1/GraphMatch$Restrictor; - public static final field SIMPLE Lorg/partiql/ast/v1/GraphMatch$Restrictor; - public static final field TRAIL Lorg/partiql/ast/v1/GraphMatch$Restrictor; +public final class org/partiql/ast/v1/expr/ExprCollection$Type : java/lang/Enum { + public static final field ARRAY Lorg/partiql/ast/v1/expr/ExprCollection$Type; + public static final field BAG Lorg/partiql/ast/v1/expr/ExprCollection$Type; + public static final field LIST Lorg/partiql/ast/v1/expr/ExprCollection$Type; + public static final field OTHER Lorg/partiql/ast/v1/expr/ExprCollection$Type; + public static final field SEXP Lorg/partiql/ast/v1/expr/ExprCollection$Type; + public static final field VALUES Lorg/partiql/ast/v1/expr/ExprCollection$Type; public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/GraphMatch$Restrictor; - public static fun values ()[Lorg/partiql/ast/v1/GraphMatch$Restrictor; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprCollection$Type; + public static fun values ()[Lorg/partiql/ast/v1/expr/ExprCollection$Type; } -public abstract class org/partiql/ast/v1/GraphMatch$Selector : org/partiql/ast/v1/AstNode { - public fun ()V +public final class org/partiql/ast/v1/expr/ExprDateAdd : org/partiql/ast/v1/expr/Expr { + public field field Lorg/partiql/ast/v1/DatetimeField; + public field lhs Lorg/partiql/ast/v1/expr/Expr; + public field rhs Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Selector$AllShortest : org/partiql/ast/v1/GraphMatch$Selector { - public static final field INSTANCE Lorg/partiql/ast/v1/GraphMatch$Selector$AllShortest; +public final class org/partiql/ast/v1/expr/ExprDateDiff : org/partiql/ast/v1/expr/Expr { + public field field Lorg/partiql/ast/v1/DatetimeField; + public field lhs Lorg/partiql/ast/v1/expr/Expr; + public field rhs Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Selector$Any : org/partiql/ast/v1/GraphMatch$Selector { - public static final field INSTANCE Lorg/partiql/ast/v1/GraphMatch$Selector$Any; +public final class org/partiql/ast/v1/expr/ExprExtract : org/partiql/ast/v1/expr/Expr { + public field field Lorg/partiql/ast/v1/DatetimeField; + public field source Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Selector$AnyK : org/partiql/ast/v1/GraphMatch$Selector { - public field k J - public fun (J)V +public final class org/partiql/ast/v1/expr/ExprInCollection : org/partiql/ast/v1/expr/Expr { + public field lhs Lorg/partiql/ast/v1/expr/Expr; + public field not Ljava/lang/Boolean; + public field rhs Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/Boolean;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Selector$AnyShortest : org/partiql/ast/v1/GraphMatch$Selector { - public static final field INSTANCE Lorg/partiql/ast/v1/GraphMatch$Selector$AnyShortest; +public final class org/partiql/ast/v1/expr/ExprIon : org/partiql/ast/v1/expr/Expr { + public field value Lcom/amazon/ionelement/api/IonElement; + public fun (Lcom/amazon/ionelement/api/IonElement;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; } -public final class org/partiql/ast/v1/GraphMatch$Selector$ShortestK : org/partiql/ast/v1/GraphMatch$Selector { - public field k J - public fun (J)V +public final class org/partiql/ast/v1/expr/ExprIsType : org/partiql/ast/v1/expr/Expr { + public field not Ljava/lang/Boolean; + public field type Lorg/partiql/ast/v1/type/Type; + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/type/Type;Ljava/lang/Boolean;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GraphMatch$Selector$ShortestKGroup : org/partiql/ast/v1/GraphMatch$Selector { - public field k J - public fun (J)V +public final class org/partiql/ast/v1/expr/ExprLike : org/partiql/ast/v1/expr/Expr { + public field escape Lorg/partiql/ast/v1/expr/Expr; + public field not Ljava/lang/Boolean; + public field pattern Lorg/partiql/ast/v1/expr/Expr; + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/Boolean;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GroupBy : org/partiql/ast/v1/AstNode { - public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; - public field keys Ljava/util/List; - public field strategy Lorg/partiql/ast/v1/GroupBy$Strategy; - public fun (Lorg/partiql/ast/v1/GroupBy$Strategy;Ljava/util/List;Lorg/partiql/ast/v1/Identifier$Symbol;)V +public final class org/partiql/ast/v1/expr/ExprLit : org/partiql/ast/v1/expr/Expr { + public field value Lorg/partiql/value/PartiQLValue; + public fun (Lorg/partiql/value/PartiQLValue;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GroupBy$Key : org/partiql/ast/v1/AstNode { - public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; - public field expr Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V +public final class org/partiql/ast/v1/expr/ExprMatch : org/partiql/ast/v1/expr/Expr { + public field expr Lorg/partiql/ast/v1/expr/Expr; + public field pattern Lorg/partiql/ast/v1/graph/GraphMatch; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/graph/GraphMatch;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GroupBy$Strategy : java/lang/Enum { - public static final field FULL Lorg/partiql/ast/v1/GroupBy$Strategy; - public static final field OTHER Lorg/partiql/ast/v1/GroupBy$Strategy; - public static final field PARTIAL Lorg/partiql/ast/v1/GroupBy$Strategy; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/GroupBy$Strategy; - public static fun values ()[Lorg/partiql/ast/v1/GroupBy$Strategy; -} - -public abstract class org/partiql/ast/v1/Identifier : org/partiql/ast/v1/AstNode { - public fun ()V +public final class org/partiql/ast/v1/expr/ExprNot : org/partiql/ast/v1/expr/Expr { + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Identifier$CaseSensitivity : java/lang/Enum { - public static final field INSENSITIVE Lorg/partiql/ast/v1/Identifier$CaseSensitivity; - public static final field OTHER Lorg/partiql/ast/v1/Identifier$CaseSensitivity; - public static final field SENSITIVE Lorg/partiql/ast/v1/Identifier$CaseSensitivity; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Identifier$CaseSensitivity; - public static fun values ()[Lorg/partiql/ast/v1/Identifier$CaseSensitivity; -} - -public final class org/partiql/ast/v1/Identifier$Qualified : org/partiql/ast/v1/Identifier { - public field root Lorg/partiql/ast/v1/Identifier$Symbol; - public field steps Ljava/util/List; - public fun (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/util/List;)V +public final class org/partiql/ast/v1/expr/ExprNullIf : org/partiql/ast/v1/expr/Expr { + public field nullifier Lorg/partiql/ast/v1/expr/Expr; + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Identifier$Symbol : org/partiql/ast/v1/Identifier { - public field caseSensitivity Lorg/partiql/ast/v1/Identifier$CaseSensitivity; +public final class org/partiql/ast/v1/expr/ExprOperator : org/partiql/ast/v1/expr/Expr { + public field lhs Lorg/partiql/ast/v1/expr/Expr; + public field rhs Lorg/partiql/ast/v1/expr/Expr; public field symbol Ljava/lang/String; - public fun (Ljava/lang/String;Lorg/partiql/ast/v1/Identifier$CaseSensitivity;)V + public fun (Ljava/lang/String;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Let : org/partiql/ast/v1/AstNode { - public field bindings Ljava/util/List; - public fun (Ljava/util/List;)V +public final class org/partiql/ast/v1/expr/ExprOr : org/partiql/ast/v1/expr/Expr { + public field lhs Lorg/partiql/ast/v1/expr/Expr; + public field rhs Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Let$Binding : org/partiql/ast/v1/AstNode { - public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; - public field expr Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V +public final class org/partiql/ast/v1/expr/ExprOverlay : org/partiql/ast/v1/expr/Expr { + public field length Lorg/partiql/ast/v1/expr/Expr; + public field overlay Lorg/partiql/ast/v1/expr/Expr; + public field start Lorg/partiql/ast/v1/expr/Expr; + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/OrderBy : org/partiql/ast/v1/AstNode { - public field sorts Ljava/util/List; - public fun (Ljava/util/List;)V +public final class org/partiql/ast/v1/expr/ExprParameter : org/partiql/ast/v1/expr/Expr { + public field index I + public fun (I)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/PathLit : org/partiql/ast/v1/AstNode { - public field root Lorg/partiql/ast/v1/Identifier$Symbol; +public final class org/partiql/ast/v1/expr/ExprPath : org/partiql/ast/v1/expr/Expr { + public field root Lorg/partiql/ast/v1/expr/Expr; public field steps Ljava/util/List; - public fun (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/util/List;)V + public fun (Lorg/partiql/ast/v1/expr/Expr;Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/PathLit$Step : org/partiql/ast/v1/AstNode { +public abstract class org/partiql/ast/v1/expr/ExprPathStep : org/partiql/ast/v1/AstNode { public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/PathLit$Step$Index : org/partiql/ast/v1/PathLit$Step { - public field index I - public fun (I)V +public final class org/partiql/ast/v1/expr/ExprPathStep$Index : org/partiql/ast/v1/expr/ExprPathStep { + public field key Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/PathLit$Step$Symbol : org/partiql/ast/v1/PathLit$Step { +public final class org/partiql/ast/v1/expr/ExprPathStep$Symbol : org/partiql/ast/v1/expr/ExprPathStep { public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/QueryBody : org/partiql/ast/v1/AstNode { - public fun ()V +public final class org/partiql/ast/v1/expr/ExprPathStep$Unpivot : org/partiql/ast/v1/expr/ExprPathStep { + public static final field INSTANCE Lorg/partiql/ast/v1/expr/ExprPathStep$Unpivot; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/QueryBody$SFW : org/partiql/ast/v1/QueryBody { - public field exclude Lorg/partiql/ast/v1/Exclude; - public field from Lorg/partiql/ast/v1/From; - public field groupBy Lorg/partiql/ast/v1/GroupBy; - public field having Lorg/partiql/ast/v1/Expr; - public field let Lorg/partiql/ast/v1/Let; - public field select Lorg/partiql/ast/v1/Select; - public field where Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Select;Lorg/partiql/ast/v1/Exclude;Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/Let;Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/GroupBy;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/expr/ExprPathStep$Wildcard : org/partiql/ast/v1/expr/ExprPathStep { + public static final field INSTANCE Lorg/partiql/ast/v1/expr/ExprPathStep$Wildcard; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/QueryBody$SetOp : org/partiql/ast/v1/QueryBody { - public field isOuter Z - public field lhs Lorg/partiql/ast/v1/Expr; - public field rhs Lorg/partiql/ast/v1/Expr; - public field type Lorg/partiql/ast/v1/SetOp; - public fun (Lorg/partiql/ast/v1/SetOp;ZLorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/expr/ExprPosition : org/partiql/ast/v1/expr/Expr { + public field lhs Lorg/partiql/ast/v1/expr/Expr; + public field rhs Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/Select : org/partiql/ast/v1/AstNode { - public fun ()V +public final class org/partiql/ast/v1/expr/ExprQuerySet : org/partiql/ast/v1/expr/Expr { + public field body Lorg/partiql/ast/v1/QueryBody; + public field limit Lorg/partiql/ast/v1/expr/Expr; + public field offset Lorg/partiql/ast/v1/expr/Expr; + public field orderBy Lorg/partiql/ast/v1/OrderBy; + public fun (Lorg/partiql/ast/v1/QueryBody;Lorg/partiql/ast/v1/OrderBy;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Select$Pivot : org/partiql/ast/v1/Select { - public field key Lorg/partiql/ast/v1/Expr; - public field value Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/expr/ExprSessionAttribute : org/partiql/ast/v1/expr/Expr { + public field attribute Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; + public fun (Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Select$Project : org/partiql/ast/v1/Select { - public field items Ljava/util/List; - public field setq Lorg/partiql/ast/v1/SetQuantifier; - public fun (Ljava/util/List;Lorg/partiql/ast/v1/SetQuantifier;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; +public final class org/partiql/ast/v1/expr/ExprSessionAttribute$Attribute : java/lang/Enum { + public static final field CURRENT_DATE Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; + public static final field CURRENT_USER Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; + public static final field OTHER Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; + public static fun values ()[Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; } -public abstract class org/partiql/ast/v1/Select$Project$Item : org/partiql/ast/v1/AstNode { - public fun ()V +public final class org/partiql/ast/v1/expr/ExprStruct : org/partiql/ast/v1/expr/Expr { + public field fields Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Select$Project$Item$All : org/partiql/ast/v1/Select$Project$Item { - public field expr Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/expr/ExprStruct$Field : org/partiql/ast/v1/AstNode { + public field name Lorg/partiql/ast/v1/expr/Expr; + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Select$Project$Item$Expression : org/partiql/ast/v1/Select$Project$Item { - public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; - public field expr Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V +public final class org/partiql/ast/v1/expr/ExprSubstring : org/partiql/ast/v1/expr/Expr { + public field length Lorg/partiql/ast/v1/expr/Expr; + public field start Lorg/partiql/ast/v1/expr/Expr; + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Select$Star : org/partiql/ast/v1/Select { - public field setq Lorg/partiql/ast/v1/SetQuantifier; - public fun (Lorg/partiql/ast/v1/SetQuantifier;)V +public final class org/partiql/ast/v1/expr/ExprTrim : org/partiql/ast/v1/expr/Expr { + public field chars Lorg/partiql/ast/v1/expr/Expr; + public field spec Lorg/partiql/ast/v1/expr/ExprTrim$Spec; + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/ExprTrim$Spec;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Select$Value : org/partiql/ast/v1/Select { - public field constructor Lorg/partiql/ast/v1/Expr; - public field setq Lorg/partiql/ast/v1/SetQuantifier; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/SetQuantifier;)V +public final class org/partiql/ast/v1/expr/ExprTrim$Spec : java/lang/Enum { + public static final field BOTH Lorg/partiql/ast/v1/expr/ExprTrim$Spec; + public static final field LEADING Lorg/partiql/ast/v1/expr/ExprTrim$Spec; + public static final field OTHER Lorg/partiql/ast/v1/expr/ExprTrim$Spec; + public static final field TRAILING Lorg/partiql/ast/v1/expr/ExprTrim$Spec; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprTrim$Spec; + public static fun values ()[Lorg/partiql/ast/v1/expr/ExprTrim$Spec; +} + +public final class org/partiql/ast/v1/expr/ExprValues : org/partiql/ast/v1/expr/Expr { + public field rows Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/SetOp : org/partiql/ast/v1/AstNode { - public field setq Lorg/partiql/ast/v1/SetQuantifier; - public field type Lorg/partiql/ast/v1/SetOp$Type; - public fun (Lorg/partiql/ast/v1/SetOp$Type;Lorg/partiql/ast/v1/SetQuantifier;)V +public final class org/partiql/ast/v1/expr/ExprValues$Row : org/partiql/ast/v1/AstNode { + public field items Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/SetOp$Type : java/lang/Enum { - public static final field EXCEPT Lorg/partiql/ast/v1/SetOp$Type; - public static final field INTERSECT Lorg/partiql/ast/v1/SetOp$Type; - public static final field OTHER Lorg/partiql/ast/v1/SetOp$Type; - public static final field UNION Lorg/partiql/ast/v1/SetOp$Type; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/SetOp$Type; - public static fun values ()[Lorg/partiql/ast/v1/SetOp$Type; +public final class org/partiql/ast/v1/expr/ExprVar : org/partiql/ast/v1/expr/Expr { + public field identifier Lorg/partiql/ast/v1/Identifier; + public field scope Lorg/partiql/ast/v1/expr/ExprVar$Scope; + public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/expr/ExprVar$Scope;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/SetQuantifier : java/lang/Enum { - public static final field ALL Lorg/partiql/ast/v1/SetQuantifier; - public static final field DISTINCT Lorg/partiql/ast/v1/SetQuantifier; - public static final field OTHER Lorg/partiql/ast/v1/SetQuantifier; +public final class org/partiql/ast/v1/expr/ExprVar$Scope : java/lang/Enum { + public static final field DEFAULT Lorg/partiql/ast/v1/expr/ExprVar$Scope; + public static final field LOCAL Lorg/partiql/ast/v1/expr/ExprVar$Scope; + public static final field OTHER Lorg/partiql/ast/v1/expr/ExprVar$Scope; public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/SetQuantifier; - public static fun values ()[Lorg/partiql/ast/v1/SetQuantifier; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprVar$Scope; + public static fun values ()[Lorg/partiql/ast/v1/expr/ExprVar$Scope; } -public final class org/partiql/ast/v1/Sort : org/partiql/ast/v1/AstNode { - public field dir Lorg/partiql/ast/v1/Sort$Dir; - public field expr Lorg/partiql/ast/v1/Expr; - public field nulls Lorg/partiql/ast/v1/Sort$Nulls; - public fun (Lorg/partiql/ast/v1/Expr;Lorg/partiql/ast/v1/Sort$Dir;Lorg/partiql/ast/v1/Sort$Nulls;)V +public final class org/partiql/ast/v1/expr/ExprWindow : org/partiql/ast/v1/expr/Expr { + public field default Lorg/partiql/ast/v1/expr/Expr; + public field expression Lorg/partiql/ast/v1/expr/Expr; + public field function Lorg/partiql/ast/v1/expr/ExprWindow$Function; + public field offset Lorg/partiql/ast/v1/expr/Expr; + public field over Lorg/partiql/ast/v1/expr/ExprWindow$Over; + public fun (Lorg/partiql/ast/v1/expr/ExprWindow$Function;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/ExprWindow$Over;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Sort$Dir : java/lang/Enum { - public static final field ASC Lorg/partiql/ast/v1/Sort$Dir; - public static final field DESC Lorg/partiql/ast/v1/Sort$Dir; - public static final field OTHER Lorg/partiql/ast/v1/Sort$Dir; +public final class org/partiql/ast/v1/expr/ExprWindow$Function : java/lang/Enum { + public static final field LAG Lorg/partiql/ast/v1/expr/ExprWindow$Function; + public static final field LEAD Lorg/partiql/ast/v1/expr/ExprWindow$Function; + public static final field OTHER Lorg/partiql/ast/v1/expr/ExprWindow$Function; public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Sort$Dir; - public static fun values ()[Lorg/partiql/ast/v1/Sort$Dir; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprWindow$Function; + public static fun values ()[Lorg/partiql/ast/v1/expr/ExprWindow$Function; } -public final class org/partiql/ast/v1/Sort$Nulls : java/lang/Enum { - public static final field FIRST Lorg/partiql/ast/v1/Sort$Nulls; - public static final field LAST Lorg/partiql/ast/v1/Sort$Nulls; - public static final field OTHER Lorg/partiql/ast/v1/Sort$Nulls; +public final class org/partiql/ast/v1/expr/ExprWindow$Over : org/partiql/ast/v1/AstNode { + public field partitions Ljava/util/List; + public field sorts Ljava/util/List; + public fun (Ljava/util/List;Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/graph/GraphDirection : java/lang/Enum { + public static final field LEFT Lorg/partiql/ast/v1/graph/GraphDirection; + public static final field LEFT_OR_RIGHT Lorg/partiql/ast/v1/graph/GraphDirection; + public static final field LEFT_OR_UNDIRECTED Lorg/partiql/ast/v1/graph/GraphDirection; + public static final field LEFT_UNDIRECTED_OR_RIGHT Lorg/partiql/ast/v1/graph/GraphDirection; + public static final field OTHER Lorg/partiql/ast/v1/graph/GraphDirection; + public static final field RIGHT Lorg/partiql/ast/v1/graph/GraphDirection; + public static final field UNDIRECTED Lorg/partiql/ast/v1/graph/GraphDirection; + public static final field UNDIRECTED_OR_RIGHT Lorg/partiql/ast/v1/graph/GraphDirection; public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Sort$Nulls; - public static fun values ()[Lorg/partiql/ast/v1/Sort$Nulls; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/graph/GraphDirection; + public static fun values ()[Lorg/partiql/ast/v1/graph/GraphDirection; } -public abstract class org/partiql/ast/v1/Statement : org/partiql/ast/v1/AstNode { +public abstract class org/partiql/ast/v1/graph/GraphLabel : org/partiql/ast/v1/AstNode { public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public abstract class org/partiql/ast/v1/Statement$DDL : org/partiql/ast/v1/Statement { - public fun ()V +public final class org/partiql/ast/v1/graph/GraphLabel$Conj : org/partiql/ast/v1/graph/GraphLabel { + public field lhs Lorg/partiql/ast/v1/graph/GraphLabel; + public field rhs Lorg/partiql/ast/v1/graph/GraphLabel; + public fun (Lorg/partiql/ast/v1/graph/GraphLabel;Lorg/partiql/ast/v1/graph/GraphLabel;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Statement$DDL$CreateIndex : org/partiql/ast/v1/Statement$DDL { - public field fields Ljava/util/List; - public field index Lorg/partiql/ast/v1/Identifier; - public field table Lorg/partiql/ast/v1/Identifier; - public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;Ljava/util/List;)V +public final class org/partiql/ast/v1/graph/GraphLabel$Disj : org/partiql/ast/v1/graph/GraphLabel { + public field lhs Lorg/partiql/ast/v1/graph/GraphLabel; + public field rhs Lorg/partiql/ast/v1/graph/GraphLabel; + public fun (Lorg/partiql/ast/v1/graph/GraphLabel;Lorg/partiql/ast/v1/graph/GraphLabel;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Statement$DDL$CreateTable : org/partiql/ast/v1/Statement$DDL { - public field definition Lorg/partiql/ast/v1/TableDefinition; - public field name Lorg/partiql/ast/v1/Identifier; - public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/TableDefinition;)V +public final class org/partiql/ast/v1/graph/GraphLabel$Name : org/partiql/ast/v1/graph/GraphLabel { + public field name Ljava/lang/String; + public fun (Ljava/lang/String;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Statement$DDL$DropIndex : org/partiql/ast/v1/Statement$DDL { - public field index Lorg/partiql/ast/v1/Identifier; - public field table Lorg/partiql/ast/v1/Identifier; - public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;)V +public final class org/partiql/ast/v1/graph/GraphLabel$Negation : org/partiql/ast/v1/graph/GraphLabel { + public field arg Lorg/partiql/ast/v1/graph/GraphLabel; + public fun (Lorg/partiql/ast/v1/graph/GraphLabel;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Statement$DDL$DropTable : org/partiql/ast/v1/Statement$DDL { - public field table Lorg/partiql/ast/v1/Identifier; - public fun (Lorg/partiql/ast/v1/Identifier;)V +public final class org/partiql/ast/v1/graph/GraphLabel$Wildcard : org/partiql/ast/v1/graph/GraphLabel { + public static final field INSTANCE Lorg/partiql/ast/v1/graph/GraphLabel$Wildcard; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Statement$Explain : org/partiql/ast/v1/Statement { - public field target Lorg/partiql/ast/v1/Statement$Explain$Target; - public fun (Lorg/partiql/ast/v1/Statement$Explain$Target;)V +public final class org/partiql/ast/v1/graph/GraphMatch : org/partiql/ast/v1/AstNode { + public field patterns Ljava/util/List; + public field selector Lorg/partiql/ast/v1/graph/GraphSelector; + public fun (Ljava/util/List;Lorg/partiql/ast/v1/graph/GraphSelector;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/Statement$Explain$Target : org/partiql/ast/v1/AstNode { +public abstract class org/partiql/ast/v1/graph/GraphPart : org/partiql/ast/v1/AstNode { public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/Statement$Explain$Target$Domain : org/partiql/ast/v1/Statement$Explain$Target { - public field format Ljava/lang/String; - public field statement Lorg/partiql/ast/v1/Statement; - public field type Ljava/lang/String; - public fun (Lorg/partiql/ast/v1/Statement;Ljava/lang/String;Ljava/lang/String;)V +public final class org/partiql/ast/v1/graph/GraphPart$Edge : org/partiql/ast/v1/graph/GraphPart { + public field direction Lorg/partiql/ast/v1/graph/GraphDirection; + public field label Lorg/partiql/ast/v1/graph/GraphLabel; + public field prefilter Lorg/partiql/ast/v1/expr/Expr; + public field quantifier Lorg/partiql/ast/v1/graph/GraphQuantifier; + public field variable Ljava/lang/String; + public fun (Lorg/partiql/ast/v1/graph/GraphDirection;Lorg/partiql/ast/v1/graph/GraphQuantifier;Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/String;Lorg/partiql/ast/v1/graph/GraphLabel;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Statement$Query : org/partiql/ast/v1/Statement { - public field expr Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/graph/GraphPart$Node : org/partiql/ast/v1/graph/GraphPart { + public field label Lorg/partiql/ast/v1/graph/GraphLabel; + public field prefilter Lorg/partiql/ast/v1/expr/Expr; + public field variable Ljava/lang/String; + public fun (Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/String;Lorg/partiql/ast/v1/graph/GraphLabel;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/TableDefinition : org/partiql/ast/v1/AstNode { - public field columns Ljava/util/List; - public fun (Ljava/util/List;)V +public final class org/partiql/ast/v1/graph/GraphPart$Pattern : org/partiql/ast/v1/graph/GraphPart { + public field pattern Lorg/partiql/ast/v1/graph/GraphPattern; + public fun (Lorg/partiql/ast/v1/graph/GraphPattern;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/TableDefinition$Column : org/partiql/ast/v1/AstNode { - public field constraints Ljava/util/List; - public field name Ljava/lang/String; - public field type Lorg/partiql/ast/v1/Type; - public fun (Ljava/lang/String;Lorg/partiql/ast/v1/Type;Ljava/util/List;)V +public final class org/partiql/ast/v1/graph/GraphPattern : org/partiql/ast/v1/AstNode { + public field parts Ljava/util/List; + public field prefilter Lorg/partiql/ast/v1/expr/Expr; + public field quantifier Lorg/partiql/ast/v1/graph/GraphQuantifier; + public field restrictor Lorg/partiql/ast/v1/graph/GraphRestrictor; + public field variable Ljava/lang/String; + public fun (Lorg/partiql/ast/v1/graph/GraphRestrictor;Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/String;Lorg/partiql/ast/v1/graph/GraphQuantifier;Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/TableDefinition$Column$Constraint : org/partiql/ast/v1/AstNode { - public field body Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body; - public field name Ljava/lang/String; - public fun (Ljava/lang/String;Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body;)V +public final class org/partiql/ast/v1/graph/GraphQuantifier : org/partiql/ast/v1/AstNode { + public field lower J + public field upper Ljava/lang/Long; + public fun (JLjava/lang/Long;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/TableDefinition$Column$Constraint$Body : org/partiql/ast/v1/AstNode { +public final class org/partiql/ast/v1/graph/GraphRestrictor : java/lang/Enum { + public static final field ACYCLIC Lorg/partiql/ast/v1/graph/GraphRestrictor; + public static final field OTHER Lorg/partiql/ast/v1/graph/GraphRestrictor; + public static final field SIMPLE Lorg/partiql/ast/v1/graph/GraphRestrictor; + public static final field TRAIL Lorg/partiql/ast/v1/graph/GraphRestrictor; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/graph/GraphRestrictor; + public static fun values ()[Lorg/partiql/ast/v1/graph/GraphRestrictor; +} + +public abstract class org/partiql/ast/v1/graph/GraphSelector : org/partiql/ast/v1/AstNode { public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/TableDefinition$Column$Constraint$Body$Check : org/partiql/ast/v1/TableDefinition$Column$Constraint$Body { - public field expr Lorg/partiql/ast/v1/Expr; - public fun (Lorg/partiql/ast/v1/Expr;)V +public final class org/partiql/ast/v1/graph/GraphSelector$AllShortest : org/partiql/ast/v1/graph/GraphSelector { + public static final field INSTANCE Lorg/partiql/ast/v1/graph/GraphSelector$AllShortest; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/graph/GraphSelector$Any : org/partiql/ast/v1/graph/GraphSelector { + public static final field INSTANCE Lorg/partiql/ast/v1/graph/GraphSelector$Any; + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/graph/GraphSelector$AnyK : org/partiql/ast/v1/graph/GraphSelector { + public field k J + public fun (J)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public final class org/partiql/ast/v1/graph/GraphSelector$AnyShortest : org/partiql/ast/v1/graph/GraphSelector { + public static final field INSTANCE Lorg/partiql/ast/v1/graph/GraphSelector$AnyShortest; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/TableDefinition$Column$Constraint$Body$NotNull : org/partiql/ast/v1/TableDefinition$Column$Constraint$Body { - public static final field INSTANCE Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body$NotNull; +public final class org/partiql/ast/v1/graph/GraphSelector$ShortestK : org/partiql/ast/v1/graph/GraphSelector { + public field k J + public fun (J)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/TableDefinition$Column$Constraint$Body$Nullable : org/partiql/ast/v1/TableDefinition$Column$Constraint$Body { - public static final field INSTANCE Lorg/partiql/ast/v1/TableDefinition$Column$Constraint$Body$Nullable; +public final class org/partiql/ast/v1/graph/GraphSelector$ShortestKGroup : org/partiql/ast/v1/graph/GraphSelector { + public field k J + public fun (J)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/Type : org/partiql/ast/v1/AstNode { +public abstract class org/partiql/ast/v1/type/Type : org/partiql/ast/v1/AstNode { public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/Type$Any : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Any; +public final class org/partiql/ast/v1/type/TypeAny : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeAny; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Bag : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Bag; +public final class org/partiql/ast/v1/type/TypeBag : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeBag; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Bigint : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Bigint; +public final class org/partiql/ast/v1/type/TypeBigint : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeBigint; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Bit : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeBit : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$BitVarying : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeBitVarying : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Blob : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeBlob : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Bool : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Bool; +public final class org/partiql/ast/v1/type/TypeBool : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeBool; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$ByteString : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeByteString : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Char : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeChar : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Clob : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeClob : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Custom : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeCustom : org/partiql/ast/v1/type/Type { public field name Ljava/lang/String; public fun (Ljava/lang/String;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Date : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Date; +public final class org/partiql/ast/v1/type/TypeDate : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeDate; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Decimal : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeDecimal : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public field scale Ljava/lang/Integer; public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V @@ -6859,68 +6822,68 @@ public final class org/partiql/ast/v1/Type$Decimal : org/partiql/ast/v1/Type { public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Float32 : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Float32; +public final class org/partiql/ast/v1/type/TypeFloat32 : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeFloat32; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Float64 : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Float64; +public final class org/partiql/ast/v1/type/TypeFloat64 : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeFloat64; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Int : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Int; +public final class org/partiql/ast/v1/type/TypeInt : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeInt; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Int2 : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Int2; +public final class org/partiql/ast/v1/type/TypeInt2 : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeInt2; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Int4 : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Int4; +public final class org/partiql/ast/v1/type/TypeInt4 : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeInt4; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Int8 : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Int8; +public final class org/partiql/ast/v1/type/TypeInt8 : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeInt8; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Interval : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeInterval : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$List : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$List; +public final class org/partiql/ast/v1/type/TypeList : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeList; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Missing : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Missing; +public final class org/partiql/ast/v1/type/TypeMissing : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeMissing; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Null : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Null; +public final class org/partiql/ast/v1/type/TypeNull : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeNull; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Numeric : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeNumeric : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public field scale Ljava/lang/Integer; public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V @@ -6928,84 +6891,84 @@ public final class org/partiql/ast/v1/Type$Numeric : org/partiql/ast/v1/Type { public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Real : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Real; +public final class org/partiql/ast/v1/type/TypeReal : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeReal; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Sexp : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Sexp; +public final class org/partiql/ast/v1/type/TypeSexp : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeSexp; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Smallint : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Smallint; +public final class org/partiql/ast/v1/type/TypeSmallint : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeSmallint; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$String : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeString : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Struct : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Struct; +public final class org/partiql/ast/v1/type/TypeStruct : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeStruct; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Symbol : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Symbol; +public final class org/partiql/ast/v1/type/TypeSymbol : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeSymbol; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Time : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeTime : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$TimeWithTz : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeTimeWithTz : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Timestamp : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeTimestamp : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$TimestampWithTz : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeTimestampWithTz : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Tinyint : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Tinyint; +public final class org/partiql/ast/v1/type/TypeTinyint : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeTinyint; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Tuple : org/partiql/ast/v1/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/Type$Tuple; +public final class org/partiql/ast/v1/type/TypeTuple : org/partiql/ast/v1/type/Type { + public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeTuple; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Type$Varchar : org/partiql/ast/v1/Type { +public final class org/partiql/ast/v1/type/TypeVarchar : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt index 7b72c82cb5..31b1c1a57b 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt @@ -1,5 +1,84 @@ package org.partiql.ast.v1 +import org.partiql.ast.v1.expr.Expr +import org.partiql.ast.v1.expr.ExprAnd +import org.partiql.ast.v1.expr.ExprBetween +import org.partiql.ast.v1.expr.ExprCall +import org.partiql.ast.v1.expr.ExprCase +import org.partiql.ast.v1.expr.ExprCast +import org.partiql.ast.v1.expr.ExprCoalesce +import org.partiql.ast.v1.expr.ExprCollection +import org.partiql.ast.v1.expr.ExprDateAdd +import org.partiql.ast.v1.expr.ExprDateDiff +import org.partiql.ast.v1.expr.ExprExtract +import org.partiql.ast.v1.expr.ExprInCollection +import org.partiql.ast.v1.expr.ExprIon +import org.partiql.ast.v1.expr.ExprIsType +import org.partiql.ast.v1.expr.ExprLike +import org.partiql.ast.v1.expr.ExprLit +import org.partiql.ast.v1.expr.ExprMatch +import org.partiql.ast.v1.expr.ExprNot +import org.partiql.ast.v1.expr.ExprNullIf +import org.partiql.ast.v1.expr.ExprOperator +import org.partiql.ast.v1.expr.ExprOr +import org.partiql.ast.v1.expr.ExprOverlay +import org.partiql.ast.v1.expr.ExprParameter +import org.partiql.ast.v1.expr.ExprPath +import org.partiql.ast.v1.expr.ExprPathStep +import org.partiql.ast.v1.expr.ExprPosition +import org.partiql.ast.v1.expr.ExprQuerySet +import org.partiql.ast.v1.expr.ExprSessionAttribute +import org.partiql.ast.v1.expr.ExprStruct +import org.partiql.ast.v1.expr.ExprSubstring +import org.partiql.ast.v1.expr.ExprTrim +import org.partiql.ast.v1.expr.ExprValues +import org.partiql.ast.v1.expr.ExprVar +import org.partiql.ast.v1.expr.ExprWindow +import org.partiql.ast.v1.graph.GraphLabel +import org.partiql.ast.v1.graph.GraphMatch +import org.partiql.ast.v1.graph.GraphPart +import org.partiql.ast.v1.graph.GraphPattern +import org.partiql.ast.v1.graph.GraphQuantifier +import org.partiql.ast.v1.graph.GraphSelector +import org.partiql.ast.v1.type.Type +import org.partiql.ast.v1.type.TypeAny +import org.partiql.ast.v1.type.TypeBag +import org.partiql.ast.v1.type.TypeBigint +import org.partiql.ast.v1.type.TypeBit +import org.partiql.ast.v1.type.TypeBitVarying +import org.partiql.ast.v1.type.TypeBlob +import org.partiql.ast.v1.type.TypeBool +import org.partiql.ast.v1.type.TypeByteString +import org.partiql.ast.v1.type.TypeChar +import org.partiql.ast.v1.type.TypeClob +import org.partiql.ast.v1.type.TypeCustom +import org.partiql.ast.v1.type.TypeDate +import org.partiql.ast.v1.type.TypeDecimal +import org.partiql.ast.v1.type.TypeFloat32 +import org.partiql.ast.v1.type.TypeFloat64 +import org.partiql.ast.v1.type.TypeInt +import org.partiql.ast.v1.type.TypeInt2 +import org.partiql.ast.v1.type.TypeInt4 +import org.partiql.ast.v1.type.TypeInt8 +import org.partiql.ast.v1.type.TypeInterval +import org.partiql.ast.v1.type.TypeList +import org.partiql.ast.v1.type.TypeMissing +import org.partiql.ast.v1.type.TypeNull +import org.partiql.ast.v1.type.TypeNumeric +import org.partiql.ast.v1.type.TypeReal +import org.partiql.ast.v1.type.TypeSexp +import org.partiql.ast.v1.type.TypeSmallint +import org.partiql.ast.v1.type.TypeString +import org.partiql.ast.v1.type.TypeStruct +import org.partiql.ast.v1.type.TypeSymbol +import org.partiql.ast.v1.type.TypeTime +import org.partiql.ast.v1.type.TypeTimeWithTz +import org.partiql.ast.v1.type.TypeTimestamp +import org.partiql.ast.v1.type.TypeTimestampWithTz +import org.partiql.ast.v1.type.TypeTinyint +import org.partiql.ast.v1.type.TypeTuple +import org.partiql.ast.v1.type.TypeVarchar + /** * TODO docs, equals, hashcode */ @@ -8,99 +87,99 @@ public interface AstVisitor { public fun visitStatement(node: Statement, ctx: C): R - public fun visitStatementQuery(node: Statement.Query, ctx: C): R + public fun visitQuery(node: Query, ctx: C): R - public fun visitStatementDDL(node: Statement.DDL, ctx: C): R + public fun visitDDL(node: DDL, ctx: C): R - public fun visitStatementDDLCreateTable(node: Statement.DDL.CreateTable, ctx: C): R + public fun visitCreateTable(node: CreateTable, ctx: C): R - public fun visitStatementDDLCreateIndex(node: Statement.DDL.CreateIndex, ctx: C): R + public fun visitCreateIndex(node: CreateIndex, ctx: C): R - public fun visitStatementDDLDropTable(node: Statement.DDL.DropTable, ctx: C): R + public fun visitDropTable(node: DropTable, ctx: C): R - public fun visitStatementDDLDropIndex(node: Statement.DDL.DropIndex, ctx: C): R + public fun visitDropIndex(node: DropIndex, ctx: C): R - public fun visitStatementExplain(node: Statement.Explain, ctx: C): R + public fun visitExplain(node: Explain, ctx: C): R - public fun visitStatementExplainTarget(node: Statement.Explain.Target, ctx: C): R + public fun visitTarget(node: Target, ctx: C): R - public fun visitStatementExplainTargetDomain(node: Statement.Explain.Target.Domain, ctx: C): R + public fun visitTargetDomain(node: Target.Domain, ctx: C): R public fun visitType(node: Type, ctx: C): R - public fun visitTypeNull(node: Type.Null, ctx: C): R + public fun visitTypeNull(node: TypeNull, ctx: C): R - public fun visitTypeMissing(node: Type.Missing, ctx: C): R + public fun visitTypeMissing(node: TypeMissing, ctx: C): R - public fun visitTypeBool(node: Type.Bool, ctx: C): R + public fun visitTypeBool(node: TypeBool, ctx: C): R - public fun visitTypeTinyint(node: Type.Tinyint, ctx: C): R + public fun visitTypeTinyint(node: TypeTinyint, ctx: C): R - public fun visitTypeSmallint(node: Type.Smallint, ctx: C): R + public fun visitTypeSmallint(node: TypeSmallint, ctx: C): R - public fun visitTypeInt2(node: Type.Int2, ctx: C): R + public fun visitTypeInt2(node: TypeInt2, ctx: C): R - public fun visitTypeInt4(node: Type.Int4, ctx: C): R + public fun visitTypeInt4(node: TypeInt4, ctx: C): R - public fun visitTypeBigint(node: Type.Bigint, ctx: C): R + public fun visitTypeBigint(node: TypeBigint, ctx: C): R - public fun visitTypeInt8(node: Type.Int8, ctx: C): R + public fun visitTypeInt8(node: TypeInt8, ctx: C): R - public fun visitTypeInt(node: Type.Int, ctx: C): R + public fun visitTypeInt(node: TypeInt, ctx: C): R - public fun visitTypeReal(node: Type.Real, ctx: C): R + public fun visitTypeReal(node: TypeReal, ctx: C): R - public fun visitTypeFloat32(node: Type.Float32, ctx: C): R + public fun visitTypeFloat32(node: TypeFloat32, ctx: C): R - public fun visitTypeFloat64(node: Type.Float64, ctx: C): R + public fun visitTypeFloat64(node: TypeFloat64, ctx: C): R - public fun visitTypeDecimal(node: Type.Decimal, ctx: C): R + public fun visitTypeDecimal(node: TypeDecimal, ctx: C): R - public fun visitTypeNumeric(node: Type.Numeric, ctx: C): R + public fun visitTypeNumeric(node: TypeNumeric, ctx: C): R - public fun visitTypeChar(node: Type.Char, ctx: C): R + public fun visitTypeChar(node: TypeChar, ctx: C): R - public fun visitTypeVarchar(node: Type.Varchar, ctx: C): R + public fun visitTypeVarchar(node: TypeVarchar, ctx: C): R - public fun visitTypeString(node: Type.String, ctx: C): R + public fun visitTypeString(node: TypeString, ctx: C): R - public fun visitTypeSymbol(node: Type.Symbol, ctx: C): R + public fun visitTypeSymbol(node: TypeSymbol, ctx: C): R - public fun visitTypeBit(node: Type.Bit, ctx: C): R + public fun visitTypeBit(node: TypeBit, ctx: C): R - public fun visitTypeBitVarying(node: Type.BitVarying, ctx: C): R + public fun visitTypeBitVarying(node: TypeBitVarying, ctx: C): R - public fun visitTypeByteString(node: Type.ByteString, ctx: C): R + public fun visitTypeByteString(node: TypeByteString, ctx: C): R - public fun visitTypeBlob(node: Type.Blob, ctx: C): R + public fun visitTypeBlob(node: TypeBlob, ctx: C): R - public fun visitTypeClob(node: Type.Clob, ctx: C): R + public fun visitTypeClob(node: TypeClob, ctx: C): R - public fun visitTypeDate(node: Type.Date, ctx: C): R + public fun visitTypeDate(node: TypeDate, ctx: C): R - public fun visitTypeTime(node: Type.Time, ctx: C): R + public fun visitTypeTime(node: TypeTime, ctx: C): R - public fun visitTypeTimeWithTz(node: Type.TimeWithTz, ctx: C): R + public fun visitTypeTimeWithTz(node: TypeTimeWithTz, ctx: C): R - public fun visitTypeTimestamp(node: Type.Timestamp, ctx: C): R + public fun visitTypeTimestamp(node: TypeTimestamp, ctx: C): R - public fun visitTypeTimestampWithTz(node: Type.TimestampWithTz, ctx: C): R + public fun visitTypeTimestampWithTz(node: TypeTimestampWithTz, ctx: C): R - public fun visitTypeInterval(node: Type.Interval, ctx: C): R + public fun visitTypeInterval(node: TypeInterval, ctx: C): R - public fun visitTypeBag(node: Type.Bag, ctx: C): R + public fun visitTypeBag(node: TypeBag, ctx: C): R - public fun visitTypeList(node: Type.List, ctx: C): R + public fun visitTypeList(node: TypeList, ctx: C): R - public fun visitTypeSexp(node: Type.Sexp, ctx: C): R + public fun visitTypeSexp(node: TypeSexp, ctx: C): R - public fun visitTypeTuple(node: Type.Tuple, ctx: C): R + public fun visitTypeTuple(node: TypeTuple, ctx: C): R - public fun visitTypeStruct(node: Type.Struct, ctx: C): R + public fun visitTypeStruct(node: TypeStruct, ctx: C): R - public fun visitTypeAny(node: Type.Any, ctx: C): R + public fun visitTypeAny(node: TypeAny, ctx: C): R - public fun visitTypeCustom(node: Type.Custom, ctx: C): R + public fun visitTypeCustom(node: TypeCustom, ctx: C): R public fun visitIdentifier(node: Identifier, ctx: C): R @@ -108,97 +187,97 @@ public interface AstVisitor { public fun visitIdentifierQualified(node: Identifier.Qualified, ctx: C): R - public fun visitPath(node: PathLit, ctx: C): R + public fun visitPathLit(node: PathLit, ctx: C): R - public fun visitPathStep(node: PathLit.Step, ctx: C): R + public fun visitPathLitStep(node: PathLitStep, ctx: C): R - public fun visitPathStepSymbol(node: PathLit.Step.Symbol, ctx: C): R + public fun visitPathLitStepSymbol(node: PathLitStep.Symbol, ctx: C): R - public fun visitPathStepIndex(node: PathLit.Step.Index, ctx: C): R + public fun visitPathLitStepIndex(node: PathLitStep.Index, ctx: C): R public fun visitExpr(node: Expr, ctx: C): R - public fun visitExprLit(node: Expr.Lit, ctx: C): R + public fun visitExprLit(node: ExprLit, ctx: C): R - public fun visitExprIon(node: Expr.Ion, ctx: C): R + public fun visitExprIon(node: ExprIon, ctx: C): R - public fun visitExprVar(node: Expr.Var, ctx: C): R + public fun visitExprVar(node: ExprVar, ctx: C): R - public fun visitExprSessionAttribute(node: Expr.SessionAttribute, ctx: C): R + public fun visitExprSessionAttribute(node: ExprSessionAttribute, ctx: C): R - public fun visitExprPath(node: Expr.Path, ctx: C): R + public fun visitExprPath(node: ExprPath, ctx: C): R - public fun visitExprPathStep(node: Expr.Path.Step, ctx: C): R + public fun visitExprPathStep(node: ExprPathStep, ctx: C): R - public fun visitExprPathStepSymbol(node: Expr.Path.Step.Symbol, ctx: C): R + public fun visitExprPathStepSymbol(node: ExprPathStep.Symbol, ctx: C): R - public fun visitExprPathStepIndex(node: Expr.Path.Step.Index, ctx: C): R + public fun visitExprPathStepIndex(node: ExprPathStep.Index, ctx: C): R - public fun visitExprPathStepWildcard(node: Expr.Path.Step.Wildcard, ctx: C): R + public fun visitExprPathStepWildcard(node: ExprPathStep.Wildcard, ctx: C): R - public fun visitExprPathStepUnpivot(node: Expr.Path.Step.Unpivot, ctx: C): R + public fun visitExprPathStepUnpivot(node: ExprPathStep.Unpivot, ctx: C): R - public fun visitExprCall(node: Expr.Call, ctx: C): R + public fun visitExprCall(node: ExprCall, ctx: C): R - public fun visitExprParameter(node: Expr.Parameter, ctx: C): R + public fun visitExprParameter(node: ExprParameter, ctx: C): R - public fun visitExprOperator(node: Expr.Operator, ctx: C): R + public fun visitExprOperator(node: ExprOperator, ctx: C): R - public fun visitExprNot(node: Expr.Not, ctx: C): R + public fun visitExprNot(node: ExprNot, ctx: C): R - public fun visitExprAnd(node: Expr.And, ctx: C): R + public fun visitExprAnd(node: ExprAnd, ctx: C): R - public fun visitExprOr(node: Expr.Or, ctx: C): R + public fun visitExprOr(node: ExprOr, ctx: C): R - public fun visitExprValues(node: Expr.Values, ctx: C): R + public fun visitExprValues(node: ExprValues, ctx: C): R - public fun visitExprValuesRow(node: Expr.Values.Row, ctx: C): R + public fun visitExprValuesRow(node: ExprValues.Row, ctx: C): R - public fun visitExprCollection(node: Expr.Collection, ctx: C): R + public fun visitExprCollection(node: ExprCollection, ctx: C): R - public fun visitExprStruct(node: Expr.Struct, ctx: C): R + public fun visitExprStruct(node: ExprStruct, ctx: C): R - public fun visitExprStructField(node: Expr.Struct.Field, ctx: C): R + public fun visitExprStructField(node: ExprStruct.Field, ctx: C): R - public fun visitExprLike(node: Expr.Like, ctx: C): R + public fun visitExprLike(node: ExprLike, ctx: C): R - public fun visitExprBetween(node: Expr.Between, ctx: C): R + public fun visitExprBetween(node: ExprBetween, ctx: C): R - public fun visitExprInCollection(node: Expr.InCollection, ctx: C): R + public fun visitExprInCollection(node: ExprInCollection, ctx: C): R - public fun visitExprIsType(node: Expr.IsType, ctx: C): R + public fun visitExprIsType(node: ExprIsType, ctx: C): R - public fun visitExprCase(node: Expr.Case, ctx: C): R + public fun visitExprCase(node: ExprCase, ctx: C): R - public fun visitExprCaseBranch(node: Expr.Case.Branch, ctx: C): R + public fun visitExprCaseBranch(node: ExprCase.Branch, ctx: C): R - public fun visitExprCoalesce(node: Expr.Coalesce, ctx: C): R + public fun visitExprCoalesce(node: ExprCoalesce, ctx: C): R - public fun visitExprNullIf(node: Expr.NullIf, ctx: C): R + public fun visitExprNullIf(node: ExprNullIf, ctx: C): R - public fun visitExprSubstring(node: Expr.Substring, ctx: C): R + public fun visitExprSubstring(node: ExprSubstring, ctx: C): R - public fun visitExprPosition(node: Expr.Position, ctx: C): R + public fun visitExprPosition(node: ExprPosition, ctx: C): R - public fun visitExprTrim(node: Expr.Trim, ctx: C): R + public fun visitExprTrim(node: ExprTrim, ctx: C): R - public fun visitExprOverlay(node: Expr.Overlay, ctx: C): R + public fun visitExprOverlay(node: ExprOverlay, ctx: C): R - public fun visitExprExtract(node: Expr.Extract, ctx: C): R + public fun visitExprExtract(node: ExprExtract, ctx: C): R - public fun visitExprCast(node: Expr.Cast, ctx: C): R + public fun visitExprCast(node: ExprCast, ctx: C): R - public fun visitExprDateAdd(node: Expr.DateAdd, ctx: C): R + public fun visitExprDateAdd(node: ExprDateAdd, ctx: C): R - public fun visitExprDateDiff(node: Expr.DateDiff, ctx: C): R + public fun visitExprDateDiff(node: ExprDateDiff, ctx: C): R - public fun visitExprQuerySet(node: Expr.QuerySet, ctx: C): R + public fun visitExprQuerySet(node: ExprQuerySet, ctx: C): R - public fun visitExprMatch(node: Expr.Match, ctx: C): R + public fun visitExprMatch(node: ExprMatch, ctx: C): R - public fun visitExprWindow(node: Expr.Window, ctx: C): R + public fun visitExprWindow(node: ExprWindow, ctx: C): R - public fun visitExprWindowOver(node: Expr.Window.Over, ctx: C): R + public fun visitExprWindowOver(node: ExprWindow.Over, ctx: C): R public fun visitQueryBody(node: QueryBody, ctx: C): R @@ -208,39 +287,39 @@ public interface AstVisitor { public fun visitSelect(node: Select, ctx: C): R - public fun visitSelectStar(node: Select.Star, ctx: C): R + public fun visitSelectStar(node: SelectStar, ctx: C): R - public fun visitSelectProject(node: Select.Project, ctx: C): R + public fun visitSelectProject(node: SelectProject, ctx: C): R - public fun visitSelectProjectItem(node: Select.Project.Item, ctx: C): R + public fun visitProjectItem(node: ProjectItem, ctx: C): R - public fun visitSelectProjectItemAll(node: Select.Project.Item.All, ctx: C): R + public fun visitProjectItemAll(node: ProjectItem.All, ctx: C): R - public fun visitSelectProjectItemExpression(node: Select.Project.Item.Expression, ctx: C): R + public fun visitProjectItemExpression(node: ProjectItem.Expression, ctx: C): R - public fun visitSelectPivot(node: Select.Pivot, ctx: C): R + public fun visitSelectPivot(node: SelectPivot, ctx: C): R - public fun visitSelectValue(node: Select.Value, ctx: C): R + public fun visitSelectValue(node: SelectValue, ctx: C): R public fun visitExclude(node: Exclude, ctx: C): R - public fun visitExcludeItem(node: Exclude.Item, ctx: C): R + public fun visitExcludePath(node: ExcludePath, ctx: C): R - public fun visitExcludeStep(node: Exclude.Step, ctx: C): R + public fun visitExcludeStep(node: ExcludeStep, ctx: C): R - public fun visitExcludeStepStructField(node: Exclude.Step.StructField, ctx: C): R + public fun visitExcludeStepStructField(node: ExcludeStep.StructField, ctx: C): R - public fun visitExcludeStepCollIndex(node: Exclude.Step.CollIndex, ctx: C): R + public fun visitExcludeStepCollIndex(node: ExcludeStep.CollIndex, ctx: C): R - public fun visitExcludeStepStructWildcard(node: Exclude.Step.StructWildcard, ctx: C): R + public fun visitExcludeStepStructWildcard(node: ExcludeStep.StructWildcard, ctx: C): R - public fun visitExcludeStepCollWildcard(node: Exclude.Step.CollWildcard, ctx: C): R + public fun visitExcludeStepCollWildcard(node: ExcludeStep.CollWildcard, ctx: C): R public fun visitFrom(node: From, ctx: C): R - public fun visitFromValue(node: From.Value, ctx: C): R + public fun visitFromValue(node: FromValue, ctx: C): R - public fun visitFromJoin(node: From.Join, ctx: C): R + public fun visitFromJoin(node: FromJoin, ctx: C): R public fun visitLet(node: Let, ctx: C): R @@ -258,74 +337,74 @@ public interface AstVisitor { public fun visitGraphMatch(node: GraphMatch, ctx: C): R - public fun visitGraphMatchPattern(node: GraphMatch.Pattern, ctx: C): R + public fun visitGraphMatchPattern(node: GraphPattern, ctx: C): R - public fun visitGraphMatchPatternPart(node: GraphMatch.Pattern.Part, ctx: C): R + public fun visitGraphPart(node: GraphPart, ctx: C): R - public fun visitGraphMatchPatternPartNode(node: GraphMatch.Pattern.Part.Node, ctx: C): R + public fun visitGraphPartNode(node: GraphPart.Node, ctx: C): R - public fun visitGraphMatchPatternPartEdge(node: GraphMatch.Pattern.Part.Edge, ctx: C): R + public fun visitGraphPartEdge(node: GraphPart.Edge, ctx: C): R - public fun visitGraphMatchPatternPartPattern(node: GraphMatch.Pattern.Part.Pattern, ctx: C): R + public fun visitGraphPartPattern(node: GraphPart.Pattern, ctx: C): R - public fun visitGraphMatchQuantifier(node: GraphMatch.Quantifier, ctx: C): R + public fun visitGraphQuantifier(node: GraphQuantifier, ctx: C): R - public fun visitGraphMatchSelector(node: GraphMatch.Selector, ctx: C): R + public fun visitGraphSelector(node: GraphSelector, ctx: C): R - public fun visitGraphMatchSelectorAnyShortest(node: GraphMatch.Selector.AnyShortest, ctx: C): R + public fun visitGraphSelectorAnyShortest(node: GraphSelector.AnyShortest, ctx: C): R - public fun visitGraphMatchSelectorAllShortest(node: GraphMatch.Selector.AllShortest, ctx: C): R + public fun visitGraphSelectorAllShortest(node: GraphSelector.AllShortest, ctx: C): R - public fun visitGraphMatchSelectorAny(node: GraphMatch.Selector.Any, ctx: C): R + public fun visitGraphSelectorAny(node: GraphSelector.Any, ctx: C): R - public fun visitGraphMatchSelectorAnyK(node: GraphMatch.Selector.AnyK, ctx: C): R + public fun visitGraphSelectorAnyK(node: GraphSelector.AnyK, ctx: C): R - public fun visitGraphMatchSelectorShortestK(node: GraphMatch.Selector.ShortestK, ctx: C): R + public fun visitGraphSelectorShortestK(node: GraphSelector.ShortestK, ctx: C): R - public fun visitGraphMatchSelectorShortestKGroup( - node: GraphMatch.Selector.ShortestKGroup, + public fun visitGraphSelectorShortestKGroup( + node: GraphSelector.ShortestKGroup, ctx: C ): R - public fun visitGraphMatchLabel(node: GraphMatch.Label, ctx: C): R + public fun visitGraphLabel(node: GraphLabel, ctx: C): R - public fun visitGraphMatchLabelName(node: GraphMatch.Label.Name, ctx: C): R + public fun visitGraphLabelName(node: GraphLabel.Name, ctx: C): R - public fun visitGraphMatchLabelWildcard(node: GraphMatch.Label.Wildcard, ctx: C): R + public fun visitGraphLabelWildcard(node: GraphLabel.Wildcard, ctx: C): R - public fun visitGraphMatchLabelNegation(node: GraphMatch.Label.Negation, ctx: C): R + public fun visitGraphLabelNegation(node: GraphLabel.Negation, ctx: C): R - public fun visitGraphMatchLabelConj(node: GraphMatch.Label.Conj, ctx: C): R + public fun visitGraphLabelConj(node: GraphLabel.Conj, ctx: C): R - public fun visitGraphMatchLabelDisj(node: GraphMatch.Label.Disj, ctx: C): R + public fun visitGraphLabelDisj(node: GraphLabel.Disj, ctx: C): R public fun visitTableDefinition(node: TableDefinition, ctx: C): R - public fun visitTableDefinitionColumn(node: TableDefinition.Column, ctx: C): R + public fun visitColumn(node: Column, ctx: C): R - public fun visitTableDefinitionColumnConstraint(node: TableDefinition.Column.Constraint, ctx: C): + public fun visitConstraint(node: Constraint, ctx: C): R - public fun visitTableDefinitionColumnConstraintBody( - node: TableDefinition.Column.Constraint.Body, + public fun visitConstraintBody( + node: ConstraintBody, ctx: C ): R public - fun visitTableDefinitionColumnConstraintBodyNullable( - node: TableDefinition.Column.Constraint.Body.Nullable, + fun visitConstraintBodyNullable( + node: ConstraintBody.Nullable, ctx: C ): R public - fun visitTableDefinitionColumnConstraintBodyNotNull( - node: TableDefinition.Column.Constraint.Body.NotNull, + fun visitConstraintBodyNotNull( + node: ConstraintBody.NotNull, ctx: C ): R public - fun visitTableDefinitionColumnConstraintBodyCheck( - node: TableDefinition.Column.Constraint.Body.Check, + fun visitConstraintBodyCheck( + node: ConstraintBody.Check, ctx: C ): R } diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CaseSensitivity.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CaseSensitivity.kt new file mode 100644 index 0000000000..79d221f0e0 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CaseSensitivity.kt @@ -0,0 +1,10 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public enum class CaseSensitivity { + SENSITIVE, + INSENSITIVE, + OTHER, +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Column.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Column.kt new file mode 100644 index 0000000000..2a53708bda --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Column.kt @@ -0,0 +1,25 @@ +package org.partiql.ast.v1 + +import org.partiql.ast.v1.type.Type + +/** + * TODO docs, equals, hashcode + */ +public class Column( + @JvmField + public var name: String, + @JvmField + public var type: Type, + @JvmField + public var constraints: List, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(type) + kids.addAll(constraints) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitColumn(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Constraint.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Constraint.kt new file mode 100644 index 0000000000..102609d8d6 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Constraint.kt @@ -0,0 +1,20 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class Constraint( + @JvmField + public var name: String?, + @JvmField + public var constraintBody: ConstraintBody, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(constraintBody) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitConstraint(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ConstraintBody.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ConstraintBody.kt new file mode 100644 index 0000000000..aa1e6b0c83 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ConstraintBody.kt @@ -0,0 +1,52 @@ +package org.partiql.ast.v1 + +import org.partiql.ast.v1.expr.Expr + +/** + * TODO docs, equals, hashcode + */ +public abstract class ConstraintBody : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Nullable -> visitor.visitConstraintBodyNullable(this, ctx) + is NotNull -> visitor.visitConstraintBodyNotNull(this, ctx) + is Check -> visitor.visitConstraintBodyCheck(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public object Nullable : ConstraintBody() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitConstraintBodyNullable(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object NotNull : ConstraintBody() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitConstraintBodyNotNull(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Check( + @JvmField + public var expr: Expr, + ) : ConstraintBody() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitConstraintBodyCheck(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateIndex.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateIndex.kt new file mode 100644 index 0000000000..14f40f19f7 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateIndex.kt @@ -0,0 +1,24 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class CreateIndex( + @JvmField + public var index: Identifier?, + @JvmField + public var table: Identifier, + @JvmField + public var fields: List, +) : DDL() { + public override fun children(): Collection { + val kids = mutableListOf() + index?.let { kids.add(it) } + kids.add(table) + kids.addAll(fields) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitCreateIndex(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateTable.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateTable.kt new file mode 100644 index 0000000000..0769158151 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateTable.kt @@ -0,0 +1,21 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class CreateTable( + @JvmField + public var name: Identifier, + @JvmField + public var definition: TableDefinition?, +) : DDL() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(name) + definition?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitCreateTable(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DDL.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DDL.kt new file mode 100644 index 0000000000..7d01f8db6f --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DDL.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public abstract class DDL : Statement() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is CreateTable -> visitor.visitCreateTable(this, ctx) + is CreateIndex -> visitor.visitCreateIndex(this, ctx) + is DropTable -> visitor.visitDropTable(this, ctx) + is DropIndex -> visitor.visitDropIndex(this, ctx) + else -> throw NotImplementedError() + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropIndex.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropIndex.kt new file mode 100644 index 0000000000..907e7afdf0 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropIndex.kt @@ -0,0 +1,21 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class DropIndex( + @JvmField + public var index: Identifier, + @JvmField + public var table: Identifier, +) : DDL() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(index) + kids.add(table) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitDropIndex(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropTable.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropTable.kt new file mode 100644 index 0000000000..b74afae51b --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropTable.kt @@ -0,0 +1,18 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class DropTable( + @JvmField + public var table: Identifier, +) : DDL() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(table) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitDropTable(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt index 9a94e12a3f..9982c77f3e 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt @@ -5,89 +5,14 @@ package org.partiql.ast.v1 */ public class Exclude( @JvmField - public var items: List, + public var excludePaths: List, ) : AstNode() { public override fun children(): Collection { val kids = mutableListOf() - kids.addAll(items) + kids.addAll(excludePaths) return kids.filterNotNull() } public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitExclude(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public class Item( - @JvmField - public var root: Expr.Var, - @JvmField - public var steps: List, - ) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(root) - kids.addAll(steps) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExcludeItem(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public abstract class Step : AstNode() { - /** - * TODO docs, equals, hashcode - */ - public class StructField( - @JvmField - public var symbol: Identifier.Symbol, - ) : Step() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(symbol) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExcludeStepStructField(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class CollIndex( - @JvmField - public var index: Int, - ) : Step() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExcludeStepCollIndex(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object StructWildcard : Step() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExcludeStepStructWildcard(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object CollWildcard : Step() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExcludeStepCollWildcard(this, ctx) - } - } } diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludePath.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludePath.kt new file mode 100644 index 0000000000..d0bfc72bf4 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludePath.kt @@ -0,0 +1,23 @@ +package org.partiql.ast.v1 + +import org.partiql.ast.v1.expr.ExprVar + +/** + * TODO docs, equals, hashcode + */ +public class ExcludePath( + @JvmField + public var root: ExprVar, + @JvmField + public var excludeSteps: List, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(root) + kids.addAll(excludeSteps) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExcludePath(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludeStep.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludeStep.kt new file mode 100644 index 0000000000..c94a9150c3 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludeStep.kt @@ -0,0 +1,56 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public abstract class ExcludeStep : AstNode() { + /** + * TODO docs, equals, hashcode + */ + public class StructField( + @JvmField + public var symbol: Identifier.Symbol, + ) : ExcludeStep() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(symbol) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExcludeStepStructField(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class CollIndex( + @JvmField + public var index: Int, + ) : ExcludeStep() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExcludeStepCollIndex(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object StructWildcard : ExcludeStep() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExcludeStepStructWildcard(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object CollWildcard : ExcludeStep() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExcludeStepCollWildcard(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Explain.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Explain.kt new file mode 100644 index 0000000000..15b2708536 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Explain.kt @@ -0,0 +1,18 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class Explain( + @JvmField + public var target: Target, +) : Statement() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(target) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExplain(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Expr.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Expr.kt deleted file mode 100644 index 62c6fb8521..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Expr.kt +++ /dev/null @@ -1,884 +0,0 @@ -package org.partiql.ast.v1 - -import com.amazon.ionelement.api.IonElement -import org.partiql.value.PartiQLValue -import org.partiql.value.PartiQLValueExperimental - -/** - * TODO docs, equals, hashcode - */ -public abstract class Expr : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Lit -> visitor.visitExprLit(this, ctx) - is Ion -> visitor.visitExprIon(this, ctx) - is Var -> visitor.visitExprVar(this, ctx) - is SessionAttribute -> visitor.visitExprSessionAttribute(this, ctx) - is Path -> visitor.visitExprPath(this, ctx) - is Call -> visitor.visitExprCall(this, ctx) - is Parameter -> visitor.visitExprParameter(this, ctx) - is Operator -> visitor.visitExprOperator(this, ctx) - is Not -> visitor.visitExprNot(this, ctx) - is And -> visitor.visitExprAnd(this, ctx) - is Or -> visitor.visitExprOr(this, ctx) - is Values -> visitor.visitExprValues(this, ctx) - is Collection -> visitor.visitExprCollection(this, ctx) - is Struct -> visitor.visitExprStruct(this, ctx) - is Like -> visitor.visitExprLike(this, ctx) - is Between -> visitor.visitExprBetween(this, ctx) - is InCollection -> visitor.visitExprInCollection(this, ctx) - is IsType -> visitor.visitExprIsType(this, ctx) - is Case -> visitor.visitExprCase(this, ctx) - is Coalesce -> visitor.visitExprCoalesce(this, ctx) - is NullIf -> visitor.visitExprNullIf(this, ctx) - is Substring -> visitor.visitExprSubstring(this, ctx) - is Position -> visitor.visitExprPosition(this, ctx) - is Trim -> visitor.visitExprTrim(this, ctx) - is Overlay -> visitor.visitExprOverlay(this, ctx) - is Extract -> visitor.visitExprExtract(this, ctx) - is Cast -> visitor.visitExprCast(this, ctx) - is DateAdd -> visitor.visitExprDateAdd(this, ctx) - is DateDiff -> visitor.visitExprDateDiff(this, ctx) - is QuerySet -> visitor.visitExprQuerySet(this, ctx) - is Match -> visitor.visitExprMatch(this, ctx) - is Window -> visitor.visitExprWindow(this, ctx) - else -> throw NotImplementedError() - } - - @OptIn(PartiQLValueExperimental::class) - /** - * TODO docs, equals, hashcode - */ - public class Lit( - @JvmField - public var `value`: PartiQLValue, - ) : Expr() { - public override fun children(): kotlin.collections.Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprLit(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Ion( - @JvmField - public var `value`: IonElement, - ) : Expr() { - public override fun children(): kotlin.collections.Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprIon(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Var( - @JvmField - public var identifier: Identifier, - @JvmField - public var scope: Scope, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(identifier) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprVar(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Scope { - DEFAULT, - LOCAL, - OTHER, - } - } - - /** - * TODO docs, equals, hashcode - */ - public class SessionAttribute( - @JvmField - public var attribute: Attribute, - ) : Expr() { - public override fun children(): List = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprSessionAttribute(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Attribute { - CURRENT_USER, - CURRENT_DATE, - OTHER, - } - } - - /** - * TODO docs, equals, hashcode - */ - public class Path( - @JvmField - public var root: Expr, - @JvmField - public var steps: List, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(root) - kids.addAll(steps) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPath(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public abstract class Step : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Symbol -> visitor.visitExprPathStepSymbol(this, ctx) - is Index -> visitor.visitExprPathStepIndex(this, ctx) - is Wildcard -> visitor.visitExprPathStepWildcard(this, ctx) - is Unpivot -> visitor.visitExprPathStepUnpivot(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class Symbol( - @JvmField - public var symbol: Identifier.Symbol, - ) : Step() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(symbol) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPathStepSymbol(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Index( - @JvmField - public var key: Expr, - ) : Step() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(key) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPathStepIndex(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Wildcard : Step() { - public override fun children(): List = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPathStepWildcard(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Unpivot : Step() { - public override fun children(): List = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPathStepUnpivot(this, ctx) - } - } - } - - /** - * TODO docs, equals, hashcode - */ - public class Call( - @JvmField - public var function: Identifier, - @JvmField - public var args: List, - @JvmField - public var setq: SetQuantifier?, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(function) - kids.addAll(args) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCall(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Parameter( - @JvmField - public var index: Int, - ) : Expr() { - public override fun children(): List = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprParameter(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Operator( - @JvmField - public var symbol: String, - @JvmField - public var lhs: Expr?, - @JvmField - public var rhs: Expr, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - lhs?.let { kids.add(it) } - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprOperator(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Not( - @JvmField - public var `value`: Expr, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(value) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprNot(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class And( - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprAnd(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Or( - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprOr(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Values( - @JvmField - public var rows: List, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.addAll(rows) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprValues(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public class Row( - @JvmField - public var items: List, - ) : AstNode() { - public override fun children(): List { - val kids = mutableListOf() - kids.addAll(items) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprValuesRow(this, ctx) - } - } - - /** - * TODO docs, equals, hashcode - */ - public class Collection( - @JvmField - public var type: Type, - @JvmField - public var values: List, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.addAll(values) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCollection(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Type { - BAG, - ARRAY, - VALUES, - LIST, - SEXP, - OTHER, - } - } - - /** - * TODO docs, equals, hashcode - */ - public class Struct( - @JvmField - public var fields: List, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.addAll(fields) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprStruct(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public class Field( - @JvmField - public var name: Expr, - @JvmField - public var `value`: Expr, - ) : AstNode() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(name) - kids.add(value) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprStructField(this, ctx) - } - } - - /** - * TODO docs, equals, hashcode - */ - public class Like( - @JvmField - public var `value`: Expr, - @JvmField - public var pattern: Expr, - @JvmField - public var escape: Expr?, - @JvmField - public var not: Boolean?, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(value) - kids.add(pattern) - escape?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprLike(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Between( - @JvmField - public var `value`: Expr, - @JvmField - public var from: Expr, - @JvmField - public var to: Expr, - @JvmField - public var not: Boolean?, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(value) - kids.add(from) - kids.add(to) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprBetween(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class InCollection( - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, - @JvmField - public var not: Boolean?, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprInCollection(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class IsType( - @JvmField - public var `value`: Expr, - @JvmField - public var type: Type, - @JvmField - public var not: Boolean?, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(value) - kids.add(type) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprIsType(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Case( - @JvmField - public var expr: Expr?, - @JvmField - public var branches: List, - @JvmField - public var default: Expr?, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - expr?.let { kids.add(it) } - kids.addAll(branches) - default?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCase(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public class Branch( - @JvmField - public var condition: Expr, - @JvmField - public var expr: Expr, - ) : AstNode() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(condition) - kids.add(expr) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCaseBranch(this, ctx) - } - } - - /** - * TODO docs, equals, hashcode - */ - public class Coalesce( - @JvmField - public var args: List, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.addAll(args) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCoalesce(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class NullIf( - @JvmField - public var `value`: Expr, - @JvmField - public var nullifier: Expr, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(value) - kids.add(nullifier) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprNullIf(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Substring( - @JvmField - public var `value`: Expr, - @JvmField - public var start: Expr?, - @JvmField - public var length: Expr?, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(value) - start?.let { kids.add(it) } - length?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprSubstring(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Position( - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPosition(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Trim( - @JvmField - public var `value`: Expr, - @JvmField - public var chars: Expr?, - @JvmField - public var spec: Spec?, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(value) - chars?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprTrim(this, ctx) - - public enum class Spec { - LEADING, - TRAILING, - BOTH, - OTHER, - } - } - - /** - * TODO docs, equals, hashcode - */ - public class Overlay( - @JvmField - public var `value`: Expr, - @JvmField - public var overlay: Expr, - @JvmField - public var start: Expr, - @JvmField - public var length: Expr?, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(value) - kids.add(overlay) - kids.add(start) - length?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprOverlay(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Extract( - @JvmField - public var `field`: DatetimeField, - @JvmField - public var source: Expr, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(source) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprExtract(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Cast( - @JvmField - public var `value`: Expr, - @JvmField - public var asType: Type, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(value) - kids.add(asType) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCast(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class DateAdd( - @JvmField - public var `field`: DatetimeField, - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprDateAdd(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class DateDiff( - @JvmField - public var `field`: DatetimeField, - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprDateDiff(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class QuerySet( - @JvmField - public var body: QueryBody, - @JvmField - public var orderBy: OrderBy?, - @JvmField - public var limit: Expr?, - @JvmField - public var offset: Expr?, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(body) - orderBy?.let { kids.add(it) } - limit?.let { kids.add(it) } - offset?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprQuerySet(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Match( - @JvmField - public var expr: Expr, - @JvmField - public var pattern: GraphMatch, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(expr) - kids.add(pattern) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprMatch(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Window( - @JvmField - public var function: Function, - @JvmField - public var expression: Expr, - @JvmField - public var offset: Expr?, - @JvmField - public var default: Expr?, - @JvmField - public var over: Over, - ) : Expr() { - public override fun children(): List { - val kids = mutableListOf() - kids.add(expression) - offset?.let { kids.add(it) } - default?.let { kids.add(it) } - kids.add(over) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprWindow(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Function { - LAG, - LEAD, - OTHER, - } - - /** - * TODO docs, equals, hashcode - */ - public class Over( - @JvmField - public var partitions: List?, - @JvmField - public var sorts: List?, - ) : AstNode() { - public override fun children(): List { - val kids = mutableListOf() - partitions?.let { kids.addAll(it) } - sorts?.let { kids.addAll(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprWindowOver(this, ctx) - } - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt index 3a8c56d5d5..41c54acdd4 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt @@ -5,86 +5,8 @@ package org.partiql.ast.v1 */ public abstract class From : AstNode() { public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Value -> visitor.visitFromValue(this, ctx) - is Join -> visitor.visitFromJoin(this, ctx) + is FromValue -> visitor.visitFromValue(this, ctx) + is FromJoin -> visitor.visitFromJoin(this, ctx) else -> throw NotImplementedError() } - - /** - * TODO docs, equals, hashcode - */ - public class Value( - @JvmField - public var expr: Expr, - @JvmField - public var type: Type, - @JvmField - public var asAlias: Identifier.Symbol?, - @JvmField - public var atAlias: Identifier.Symbol?, - @JvmField - public var byAlias: Identifier.Symbol?, - ) : From() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - asAlias?.let { kids.add(it) } - atAlias?.let { kids.add(it) } - byAlias?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitFromValue(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Type { - SCAN, - UNPIVOT, - OTHER, - } - } - - /** - * TODO docs, equals, hashcode - */ - public class Join( - @JvmField - public var lhs: From, - @JvmField - public var rhs: From, - @JvmField - public var type: Type?, - @JvmField - public var condition: Expr?, - ) : From() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - condition?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitFromJoin(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Type { - INNER, - LEFT, - LEFT_OUTER, - RIGHT, - RIGHT_OUTER, - FULL, - FULL_OUTER, - CROSS, - COMMA, - OTHER, - } - } } diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromJoin.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromJoin.kt new file mode 100644 index 0000000000..17ede7dc30 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromJoin.kt @@ -0,0 +1,44 @@ +package org.partiql.ast.v1 + +import org.partiql.ast.v1.expr.Expr + +/** + * TODO docs, equals, hashcode + */ +public class FromJoin( + @JvmField + public var lhs: From, + @JvmField + public var rhs: From, + @JvmField + public var type: Type?, + @JvmField + public var condition: Expr?, +) : From() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + condition?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitFromJoin(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Type { + INNER, + LEFT, + LEFT_OUTER, + RIGHT, + RIGHT_OUTER, + FULL, + FULL_OUTER, + CROSS, + COMMA, + OTHER, + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromValue.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromValue.kt new file mode 100644 index 0000000000..cd9a8025b7 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromValue.kt @@ -0,0 +1,40 @@ +package org.partiql.ast.v1 + +import org.partiql.ast.v1.expr.Expr + +/** + * TODO docs, equals, hashcode + */ +public class FromValue( + @JvmField + public var expr: Expr, + @JvmField + public var type: Type, + @JvmField + public var asAlias: Identifier.Symbol?, + @JvmField + public var atAlias: Identifier.Symbol?, + @JvmField + public var byAlias: Identifier.Symbol?, +) : From() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + asAlias?.let { kids.add(it) } + atAlias?.let { kids.add(it) } + byAlias?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitFromValue(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Type { + SCAN, + UNPIVOT, + OTHER, + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GraphMatch.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GraphMatch.kt deleted file mode 100644 index d92b120014..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GraphMatch.kt +++ /dev/null @@ -1,343 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class GraphMatch( - @JvmField - public var patterns: List, - @JvmField - public var selector: Selector?, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(patterns) - selector?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatch(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Direction { - LEFT, - UNDIRECTED, - RIGHT, - LEFT_OR_UNDIRECTED, - UNDIRECTED_OR_RIGHT, - LEFT_OR_RIGHT, - LEFT_UNDIRECTED_OR_RIGHT, - OTHER, - } - - /** - * TODO docs, equals, hashcode - */ - public enum class Restrictor { - TRAIL, - ACYCLIC, - SIMPLE, - OTHER, - } - - /** - * TODO docs, equals, hashcode - */ - public class Pattern( - @JvmField - public var restrictor: Restrictor?, - @JvmField - public var prefilter: Expr?, - @JvmField - public var variable: String?, - @JvmField - public var quantifier: Quantifier?, - @JvmField - public var parts: List, - ) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - prefilter?.let { kids.add(it) } - quantifier?.let { kids.add(it) } - kids.addAll(parts) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchPattern(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public abstract class Part : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Node -> visitor.visitGraphMatchPatternPartNode(this, ctx) - is Edge -> visitor.visitGraphMatchPatternPartEdge(this, ctx) - is Pattern -> visitor.visitGraphMatchPatternPartPattern(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class Node( - @JvmField - public var prefilter: Expr?, - @JvmField - public var variable: String?, - @JvmField - public var label: Label?, - ) : Part() { - public override fun children(): Collection { - val kids = mutableListOf() - prefilter?.let { kids.add(it) } - label?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchPatternPartNode(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Edge( - @JvmField - public var direction: Direction, - @JvmField - public var quantifier: Quantifier?, - @JvmField - public var prefilter: Expr?, - @JvmField - public var variable: String?, - @JvmField - public var label: Label?, - ) : Part() { - public override fun children(): Collection { - val kids = mutableListOf() - quantifier?.let { kids.add(it) } - prefilter?.let { kids.add(it) } - label?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchPatternPartEdge(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Pattern( - @JvmField - public var pattern: GraphMatch.Pattern, - ) : Part() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(pattern) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchPatternPartPattern(this, ctx) - } - } - } - - /** - * TODO docs, equals, hashcode - */ - public class Quantifier( - @JvmField - public var lower: Long, - @JvmField - public var upper: Long?, - ) : AstNode() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchQuantifier(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public abstract class Selector : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is AnyShortest -> visitor.visitGraphMatchSelectorAnyShortest(this, ctx) - is AllShortest -> visitor.visitGraphMatchSelectorAllShortest(this, ctx) - is Any -> visitor.visitGraphMatchSelectorAny(this, ctx) - is AnyK -> visitor.visitGraphMatchSelectorAnyK(this, ctx) - is ShortestK -> visitor.visitGraphMatchSelectorShortestK(this, ctx) - is ShortestKGroup -> visitor.visitGraphMatchSelectorShortestKGroup(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public object AnyShortest : Selector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchSelectorAnyShortest(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object AllShortest : Selector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchSelectorAllShortest(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Any : Selector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchSelectorAny(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class AnyK( - @JvmField - public var k: Long, - ) : Selector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchSelectorAnyK(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class ShortestK( - @JvmField - public var k: Long, - ) : Selector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchSelectorShortestK(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class ShortestKGroup( - @JvmField - public var k: Long, - ) : Selector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchSelectorShortestKGroup(this, ctx) - } - } - - /** - * TODO docs, equals, hashcode - */ - public abstract class Label : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Name -> visitor.visitGraphMatchLabelName(this, ctx) - is Wildcard -> visitor.visitGraphMatchLabelWildcard(this, ctx) - is Negation -> visitor.visitGraphMatchLabelNegation(this, ctx) - is Conj -> visitor.visitGraphMatchLabelConj(this, ctx) - is Disj -> visitor.visitGraphMatchLabelDisj(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class Name( - @JvmField - public var name: String, - ) : Label() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchLabelName(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Wildcard : Label() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchLabelWildcard(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Negation( - @JvmField - public var arg: Label, - ) : Label() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(arg) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchLabelNegation(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Conj( - @JvmField - public var lhs: Label, - @JvmField - public var rhs: Label, - ) : Label() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchLabelConj(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Disj( - @JvmField - public var lhs: Label, - @JvmField - public var rhs: Label, - ) : Label() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchLabelDisj(this, ctx) - } - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt index 9d0246d0b7..a4d347197e 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt @@ -1,5 +1,7 @@ package org.partiql.ast.v1 +import org.partiql.ast.v1.expr.Expr + /** * TODO docs, equals, hashcode */ diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt index 3f142a9010..be21d7005b 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt @@ -10,15 +10,6 @@ public abstract class Identifier : AstNode() { else -> throw NotImplementedError() } - /** - * TODO docs, equals, hashcode - */ - public enum class CaseSensitivity { - SENSITIVE, - INSENSITIVE, - OTHER, - } - /** * TODO docs, equals, hashcode */ diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt index 2f7ca49541..43e853e34b 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt @@ -1,5 +1,7 @@ package org.partiql.ast.v1 +import org.partiql.ast.v1.expr.Expr + /** * TODO docs, equals, hashcode */ diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt index 43c0164c6e..996801953c 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt @@ -1,7 +1,5 @@ package org.partiql.ast.v1 -import kotlin.Int - /** * TODO docs, equals, hashcode */ @@ -9,7 +7,7 @@ public class PathLit( @JvmField public var root: Identifier.Symbol, @JvmField - public var steps: List, + public var steps: List, ) : AstNode() { public override fun children(): Collection { val kids = mutableListOf() @@ -18,43 +16,8 @@ public class PathLit( return kids.filterNotNull() } - public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitPath( + public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitPathLit( this, ctx ) - - /** - * TODO docs, equals, hashcode - */ - public abstract class Step : AstNode() { - /** - * TODO docs, equals, hashcode - */ - public class Symbol( - @JvmField - public var symbol: Identifier.Symbol, - ) : Step() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(symbol) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitPathStepSymbol(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Index( - @JvmField - public var index: Int, - ) : Step() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitPathStepIndex(this, ctx) - } - } } diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLitStep.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLitStep.kt new file mode 100644 index 0000000000..286da60753 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLitStep.kt @@ -0,0 +1,36 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public abstract class PathLitStep : AstNode() { + /** + * TODO docs, equals, hashcode + */ + public class Symbol( + @JvmField + public var symbol: Identifier.Symbol, + ) : PathLitStep() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(symbol) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitPathLitStepSymbol(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Index( + @JvmField + public var index: Int, + ) : PathLitStep() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitPathLitStepIndex(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ProjectItem.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ProjectItem.kt new file mode 100644 index 0000000000..2a60b608b7 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ProjectItem.kt @@ -0,0 +1,51 @@ +package org.partiql.ast.v1 + +import org.partiql.ast.v1.expr.Expr + +/** + * TODO docs, equals, hashcode + */ +public abstract class ProjectItem : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is All -> visitor.visitProjectItemAll(this, ctx) + is Expression -> visitor.visitProjectItemExpression(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class All( + @JvmField + public var expr: Expr, + ) : ProjectItem() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitProjectItemAll(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Expression( + @JvmField + public var expr: Expr, + @JvmField + public var asAlias: Identifier.Symbol?, + ) : ProjectItem() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + asAlias?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitProjectItemExpression(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Query.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Query.kt new file mode 100644 index 0000000000..097a19b01c --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Query.kt @@ -0,0 +1,20 @@ +package org.partiql.ast.v1 + +import org.partiql.ast.v1.expr.Expr + +/** + * TODO docs, equals, hashcode + */ +public class Query( + @JvmField + public var expr: Expr, +) : Statement() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitQuery(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt index 4e50bed9c8..249dc69938 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt @@ -1,5 +1,7 @@ package org.partiql.ast.v1 +import org.partiql.ast.v1.expr.Expr + /** * TODO docs, equals, hashcode */ diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt index 81fc4d5536..1ffa12a71c 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt @@ -5,129 +5,10 @@ package org.partiql.ast.v1 */ public abstract class Select : AstNode() { public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Star -> visitor.visitSelectStar(this, ctx) - is Project -> visitor.visitSelectProject(this, ctx) - is Pivot -> visitor.visitSelectPivot(this, ctx) - is Value -> visitor.visitSelectValue(this, ctx) + is SelectStar -> visitor.visitSelectStar(this, ctx) + is SelectProject -> visitor.visitSelectProject(this, ctx) + is SelectPivot -> visitor.visitSelectPivot(this, ctx) + is SelectValue -> visitor.visitSelectValue(this, ctx) else -> throw NotImplementedError() } - - /** - * TODO docs, equals, hashcode - */ - public class Star( - @JvmField - public var setq: SetQuantifier?, - ) : Select() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitSelectStar(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Project( - @JvmField - public var items: List, - @JvmField - public var setq: SetQuantifier?, - ) : Select() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(items) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitSelectProject(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public abstract class Item : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is All -> visitor.visitSelectProjectItemAll(this, ctx) - is Expression -> visitor.visitSelectProjectItemExpression(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class All( - @JvmField - public var expr: Expr, - ) : Item() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitSelectProjectItemAll(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Expression( - @JvmField - public var expr: Expr, - @JvmField - public var asAlias: Identifier.Symbol?, - ) : Item() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - asAlias?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitSelectProjectItemExpression(this, ctx) - } - } - } - - /** - * TODO docs, equals, hashcode - */ - public class Pivot( - @JvmField - public var key: Expr, - @JvmField - public var `value`: Expr, - ) : Select() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(key) - kids.add(value) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitSelectPivot(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Value( - @JvmField - public var `constructor`: Expr, - @JvmField - public var setq: SetQuantifier?, - ) : Select() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(constructor) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitSelectValue(this, ctx) - } } diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectPivot.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectPivot.kt new file mode 100644 index 0000000000..e31da28e44 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectPivot.kt @@ -0,0 +1,23 @@ +package org.partiql.ast.v1 + +import org.partiql.ast.v1.expr.Expr + +/** + * TODO docs, equals, hashcode + */ +public class SelectPivot( + @JvmField + public var key: Expr, + @JvmField + public var `value`: Expr, +) : Select() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(key) + kids.add(value) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitSelectPivot(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectProject.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectProject.kt new file mode 100644 index 0000000000..ea421bb7e7 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectProject.kt @@ -0,0 +1,20 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class SelectProject( + @JvmField + public var items: List, + @JvmField + public var setq: SetQuantifier?, +) : Select() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(items) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitSelectProject(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectStar.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectStar.kt new file mode 100644 index 0000000000..1a5c489232 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectStar.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public class SelectStar( + @JvmField + public var setq: SetQuantifier?, +) : Select() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitSelectStar(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectValue.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectValue.kt new file mode 100644 index 0000000000..d1b94187a3 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectValue.kt @@ -0,0 +1,22 @@ +package org.partiql.ast.v1 + +import org.partiql.ast.v1.expr.Expr + +/** + * TODO docs, equals, hashcode + */ +public class SelectValue( + @JvmField + public var `constructor`: Expr, + @JvmField + public var setq: SetQuantifier?, +) : Select() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(constructor) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitSelectValue(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt index a4320ee715..95fd3a6ca1 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt @@ -1,5 +1,7 @@ package org.partiql.ast.v1 +import org.partiql.ast.v1.expr.Expr + /** * TODO docs, equals, hashcode */ diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt index 7203fb74f3..78572bffa5 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt @@ -5,167 +5,9 @@ package org.partiql.ast.v1 */ public abstract class Statement : AstNode() { public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Query -> visitor.visitStatementQuery(this, ctx) - is DDL -> visitor.visitStatementDDL(this, ctx) - is Explain -> visitor.visitStatementExplain(this, ctx) + is Query -> visitor.visitQuery(this, ctx) + is DDL -> visitor.visitDDL(this, ctx) + is Explain -> visitor.visitExplain(this, ctx) else -> throw NotImplementedError() } - - /** - * TODO docs, equals, hashcode - */ - public class Query( - @JvmField - public var expr: Expr, - ) : Statement() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitStatementQuery(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public abstract class DDL : Statement() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is CreateTable -> visitor.visitStatementDDLCreateTable(this, ctx) - is CreateIndex -> visitor.visitStatementDDLCreateIndex(this, ctx) - is DropTable -> visitor.visitStatementDDLDropTable(this, ctx) - is DropIndex -> visitor.visitStatementDDLDropIndex(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class CreateTable( - @JvmField - public var name: Identifier, - @JvmField - public var definition: TableDefinition?, - ) : DDL() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(name) - definition?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitStatementDDLCreateTable(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class CreateIndex( - @JvmField - public var index: Identifier?, - @JvmField - public var table: Identifier, - @JvmField - public var fields: List, - ) : DDL() { - public override fun children(): Collection { - val kids = mutableListOf() - index?.let { kids.add(it) } - kids.add(table) - kids.addAll(fields) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitStatementDDLCreateIndex(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class DropTable( - @JvmField - public var table: Identifier, - ) : DDL() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(table) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitStatementDDLDropTable(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class DropIndex( - @JvmField - public var index: Identifier, - @JvmField - public var table: Identifier, - ) : DDL() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(index) - kids.add(table) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitStatementDDLDropIndex(this, ctx) - } - } - - /** - * TODO docs, equals, hashcode - */ - public class Explain( - @JvmField - public var target: Target, - ) : Statement() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(target) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitStatementExplain(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public abstract class Target : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Domain -> visitor.visitStatementExplainTargetDomain(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class Domain( - @JvmField - public var statement: Statement, - @JvmField - public var type: String?, - @JvmField - public var format: String?, - ) : Target() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(statement) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitStatementExplainTargetDomain(this, ctx) - } - } - } } diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt index 0393a31d2a..cb7cd1b0cf 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt @@ -15,94 +15,4 @@ public class TableDefinition( public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitTableDefinition(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public class Column( - @JvmField - public var name: String, - @JvmField - public var type: Type, - @JvmField - public var constraints: List, - ) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(type) - kids.addAll(constraints) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTableDefinitionColumn(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public class Constraint( - @JvmField - public var name: String?, - @JvmField - public var body: Body, - ) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(body) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTableDefinitionColumnConstraint(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public abstract class Body : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Nullable -> visitor.visitTableDefinitionColumnConstraintBodyNullable(this, ctx) - is NotNull -> visitor.visitTableDefinitionColumnConstraintBodyNotNull(this, ctx) - is Check -> visitor.visitTableDefinitionColumnConstraintBodyCheck(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public object Nullable : Body() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTableDefinitionColumnConstraintBodyNullable(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object NotNull : Body() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTableDefinitionColumnConstraintBodyNotNull(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Check( - @JvmField - public var expr: Expr, - ) : Body() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTableDefinitionColumnConstraintBodyCheck(this, ctx) - } - } - } - } } diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Target.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Target.kt new file mode 100644 index 0000000000..56d8e9113c --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Target.kt @@ -0,0 +1,32 @@ +package org.partiql.ast.v1 + +/** + * TODO docs, equals, hashcode + */ +public abstract class Target : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Domain -> visitor.visitTargetDomain(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class Domain( + @JvmField + public var statement: Statement, + @JvmField + public var type: String?, + @JvmField + public var format: String?, + ) : Target() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(statement) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTargetDomain(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Type.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Type.kt deleted file mode 100644 index a770497fb1..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Type.kt +++ /dev/null @@ -1,469 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public abstract class Type : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Null -> visitor.visitTypeNull(this, ctx) - is Missing -> visitor.visitTypeMissing(this, ctx) - is Bool -> visitor.visitTypeBool(this, ctx) - is Tinyint -> visitor.visitTypeTinyint(this, ctx) - is Smallint -> visitor.visitTypeSmallint(this, ctx) - is Int2 -> visitor.visitTypeInt2(this, ctx) - is Int4 -> visitor.visitTypeInt4(this, ctx) - is Bigint -> visitor.visitTypeBigint(this, ctx) - is Int8 -> visitor.visitTypeInt8(this, ctx) - is Int -> visitor.visitTypeInt(this, ctx) - is Real -> visitor.visitTypeReal(this, ctx) - is Float32 -> visitor.visitTypeFloat32(this, ctx) - is Float64 -> visitor.visitTypeFloat64(this, ctx) - is Decimal -> visitor.visitTypeDecimal(this, ctx) - is Numeric -> visitor.visitTypeNumeric(this, ctx) - is Char -> visitor.visitTypeChar(this, ctx) - is Varchar -> visitor.visitTypeVarchar(this, ctx) - is String -> visitor.visitTypeString(this, ctx) - is Symbol -> visitor.visitTypeSymbol(this, ctx) - is Bit -> visitor.visitTypeBit(this, ctx) - is BitVarying -> visitor.visitTypeBitVarying(this, ctx) - is ByteString -> visitor.visitTypeByteString(this, ctx) - is Blob -> visitor.visitTypeBlob(this, ctx) - is Clob -> visitor.visitTypeClob(this, ctx) - is Date -> visitor.visitTypeDate(this, ctx) - is Time -> visitor.visitTypeTime(this, ctx) - is TimeWithTz -> visitor.visitTypeTimeWithTz(this, ctx) - is Timestamp -> visitor.visitTypeTimestamp(this, ctx) - is TimestampWithTz -> visitor.visitTypeTimestampWithTz(this, ctx) - is Interval -> visitor.visitTypeInterval(this, ctx) - is Bag -> visitor.visitTypeBag(this, ctx) - is List -> visitor.visitTypeList(this, ctx) - is Sexp -> visitor.visitTypeSexp(this, ctx) - is Tuple -> visitor.visitTypeTuple(this, ctx) - is Struct -> visitor.visitTypeStruct(this, ctx) - is Any -> visitor.visitTypeAny(this, ctx) - is Custom -> visitor.visitTypeCustom(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public object Null : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeNull(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Missing : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeMissing(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Bool : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBool(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Tinyint : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTinyint(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Smallint : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeSmallint(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Int2 : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeInt2(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Int4 : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeInt4(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Bigint : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBigint(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Int8 : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeInt8(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Int : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeInt(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Real : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeReal(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Float32 : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeFloat32(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Float64 : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeFloat64(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Decimal( - @JvmField - public var precision: kotlin.Int?, - @JvmField - public var scale: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeDecimal(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Numeric( - @JvmField - public var precision: kotlin.Int?, - @JvmField - public var scale: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeNumeric(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Char( - @JvmField - public var length: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeChar(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Varchar( - @JvmField - public var length: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeVarchar(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class String( - @JvmField - public var length: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeString(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Symbol : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeSymbol(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Bit( - @JvmField - public var length: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBit(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class BitVarying( - @JvmField - public var length: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBitVarying(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class ByteString( - @JvmField - public var length: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeByteString(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Blob( - @JvmField - public var length: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBlob(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Clob( - @JvmField - public var length: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeClob(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Date : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeDate(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Time( - @JvmField - public var precision: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTime(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class TimeWithTz( - @JvmField - public var precision: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTimeWithTz(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Timestamp( - @JvmField - public var precision: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTimestamp(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class TimestampWithTz( - @JvmField - public var precision: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTimestampWithTz(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Interval( - @JvmField - public var precision: kotlin.Int?, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeInterval(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Bag : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBag(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object List : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeList(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Sexp : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeSexp(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Tuple : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTuple(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Struct : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeStruct(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Any : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeAny(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Custom( - @JvmField - public var name: kotlin.String, - ) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeCustom(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/Expr.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/Expr.kt new file mode 100644 index 0000000000..a2d0546772 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/Expr.kt @@ -0,0 +1,45 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public abstract class Expr : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is ExprLit -> visitor.visitExprLit(this, ctx) + is ExprIon -> visitor.visitExprIon(this, ctx) + is ExprVar -> visitor.visitExprVar(this, ctx) + is ExprSessionAttribute -> visitor.visitExprSessionAttribute(this, ctx) + is ExprPath -> visitor.visitExprPath(this, ctx) + is ExprCall -> visitor.visitExprCall(this, ctx) + is ExprParameter -> visitor.visitExprParameter(this, ctx) + is ExprOperator -> visitor.visitExprOperator(this, ctx) + is ExprNot -> visitor.visitExprNot(this, ctx) + is ExprAnd -> visitor.visitExprAnd(this, ctx) + is ExprOr -> visitor.visitExprOr(this, ctx) + is ExprValues -> visitor.visitExprValues(this, ctx) + is ExprCollection -> visitor.visitExprCollection(this, ctx) + is ExprStruct -> visitor.visitExprStruct(this, ctx) + is ExprLike -> visitor.visitExprLike(this, ctx) + is ExprBetween -> visitor.visitExprBetween(this, ctx) + is ExprInCollection -> visitor.visitExprInCollection(this, ctx) + is ExprIsType -> visitor.visitExprIsType(this, ctx) + is ExprCase -> visitor.visitExprCase(this, ctx) + is ExprCoalesce -> visitor.visitExprCoalesce(this, ctx) + is ExprNullIf -> visitor.visitExprNullIf(this, ctx) + is ExprSubstring -> visitor.visitExprSubstring(this, ctx) + is ExprPosition -> visitor.visitExprPosition(this, ctx) + is ExprTrim -> visitor.visitExprTrim(this, ctx) + is ExprOverlay -> visitor.visitExprOverlay(this, ctx) + is ExprExtract -> visitor.visitExprExtract(this, ctx) + is ExprCast -> visitor.visitExprCast(this, ctx) + is ExprDateAdd -> visitor.visitExprDateAdd(this, ctx) + is ExprDateDiff -> visitor.visitExprDateDiff(this, ctx) + is ExprQuerySet -> visitor.visitExprQuerySet(this, ctx) + is ExprMatch -> visitor.visitExprMatch(this, ctx) + is ExprWindow -> visitor.visitExprWindow(this, ctx) + else -> throw NotImplementedError() + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprAnd.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprAnd.kt new file mode 100644 index 0000000000..b1907ebe72 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprAnd.kt @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprAnd( + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprAnd(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprBetween.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprBetween.kt new file mode 100644 index 0000000000..7a938b6ccc --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprBetween.kt @@ -0,0 +1,29 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprBetween( + @JvmField + public var `value`: Expr, + @JvmField + public var from: Expr, + @JvmField + public var to: Expr, + @JvmField + public var not: Boolean?, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(value) + kids.add(from) + kids.add(to) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprBetween(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCall.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCall.kt new file mode 100644 index 0000000000..7a77fcbf5e --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCall.kt @@ -0,0 +1,28 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.Identifier +import org.partiql.ast.v1.SetQuantifier + +/** + * TODO docs, equals, hashcode + */ +public class ExprCall( + @JvmField + public var function: Identifier, + @JvmField + public var args: List, + @JvmField + public var setq: SetQuantifier?, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(function) + kids.addAll(args) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCall(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCase.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCase.kt new file mode 100644 index 0000000000..282405de67 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCase.kt @@ -0,0 +1,47 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprCase( + @JvmField + public var expr: Expr?, + @JvmField + public var branches: List, + @JvmField + public var default: Expr?, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + expr?.let { kids.add(it) } + kids.addAll(branches) + default?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCase(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public class Branch( + @JvmField + public var condition: Expr, + @JvmField + public var expr: Expr, + ) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(condition) + kids.add(expr) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCaseBranch(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCast.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCast.kt new file mode 100644 index 0000000000..20e1f7941a --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCast.kt @@ -0,0 +1,25 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.type.Type + +/** + * TODO docs, equals, hashcode + */ +public class ExprCast( + @JvmField + public var `value`: Expr, + @JvmField + public var asType: Type, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(value) + kids.add(asType) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCast(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCoalesce.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCoalesce.kt new file mode 100644 index 0000000000..d73e6f5055 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCoalesce.kt @@ -0,0 +1,21 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprCoalesce( + @JvmField + public var args: List, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(args) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCoalesce(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCollection.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCollection.kt new file mode 100644 index 0000000000..2d34b26e9d --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCollection.kt @@ -0,0 +1,35 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprCollection( + @JvmField + public var type: Type, + @JvmField + public var values: List, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(values) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprCollection(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Type { + BAG, + ARRAY, + VALUES, + LIST, + SEXP, + OTHER, + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateAdd.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateAdd.kt new file mode 100644 index 0000000000..9693633659 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateAdd.kt @@ -0,0 +1,27 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.DatetimeField + +/** + * TODO docs, equals, hashcode + */ +public class ExprDateAdd( + @JvmField + public var `field`: DatetimeField, + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprDateAdd(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateDiff.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateDiff.kt new file mode 100644 index 0000000000..6f68b4004e --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateDiff.kt @@ -0,0 +1,27 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.DatetimeField + +/** + * TODO docs, equals, hashcode + */ +public class ExprDateDiff( + @JvmField + public var `field`: DatetimeField, + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprDateDiff(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprExtract.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprExtract.kt new file mode 100644 index 0000000000..c64f9ded1b --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprExtract.kt @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.DatetimeField + +/** + * TODO docs, equals, hashcode + */ +public class ExprExtract( + @JvmField + public var `field`: DatetimeField, + @JvmField + public var source: Expr, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(source) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprExtract(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprInCollection.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprInCollection.kt new file mode 100644 index 0000000000..a8f38a6d72 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprInCollection.kt @@ -0,0 +1,26 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprInCollection( + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, + @JvmField + public var not: Boolean?, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprInCollection(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIon.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIon.kt new file mode 100644 index 0000000000..ca6d1cb36b --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIon.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.expr + +import com.amazon.ionelement.api.IonElement +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprIon( + @JvmField + public var `value`: IonElement, +) : Expr() { + public override fun children(): List = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprIon(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIsType.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIsType.kt new file mode 100644 index 0000000000..2d4a2aa70c --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIsType.kt @@ -0,0 +1,27 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.type.Type + +/** + * TODO docs, equals, hashcode + */ +public class ExprIsType( + @JvmField + public var `value`: Expr, + @JvmField + public var type: Type, + @JvmField + public var not: Boolean?, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(value) + kids.add(type) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprIsType(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLike.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLike.kt new file mode 100644 index 0000000000..987e911f51 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLike.kt @@ -0,0 +1,29 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprLike( + @JvmField + public var `value`: Expr, + @JvmField + public var pattern: Expr, + @JvmField + public var escape: Expr?, + @JvmField + public var not: Boolean?, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(value) + kids.add(pattern) + escape?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprLike(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLit.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLit.kt new file mode 100644 index 0000000000..d1b560e6b5 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLit.kt @@ -0,0 +1,20 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.value.PartiQLValue +import org.partiql.value.PartiQLValueExperimental + +@OptIn(PartiQLValueExperimental::class) +/** + * TODO docs, equals, hashcode + */ +public class ExprLit( + @JvmField + public var `value`: PartiQLValue, +) : Expr() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprLit(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprMatch.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprMatch.kt new file mode 100644 index 0000000000..2c73c1e40c --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprMatch.kt @@ -0,0 +1,25 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.graph.GraphMatch + +/** + * TODO docs, equals, hashcode + */ +public class ExprMatch( + @JvmField + public var expr: Expr, + @JvmField + public var pattern: GraphMatch, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expr) + kids.add(pattern) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprMatch(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNot.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNot.kt new file mode 100644 index 0000000000..9edc25c302 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNot.kt @@ -0,0 +1,21 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprNot( + @JvmField + public var `value`: Expr, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(value) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprNot(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNullIf.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNullIf.kt new file mode 100644 index 0000000000..a76df35bb0 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNullIf.kt @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprNullIf( + @JvmField + public var `value`: Expr, + @JvmField + public var nullifier: Expr, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(value) + kids.add(nullifier) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprNullIf(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOperator.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOperator.kt new file mode 100644 index 0000000000..cac1ffb7df --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOperator.kt @@ -0,0 +1,26 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprOperator( + @JvmField + public var symbol: String, + @JvmField + public var lhs: Expr?, + @JvmField + public var rhs: Expr, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + lhs?.let { kids.add(it) } + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprOperator(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOr.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOr.kt new file mode 100644 index 0000000000..d7486e0c7c --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOr.kt @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprOr( + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprOr(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOverlay.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOverlay.kt new file mode 100644 index 0000000000..5b8b9be5d6 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOverlay.kt @@ -0,0 +1,30 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprOverlay( + @JvmField + public var `value`: Expr, + @JvmField + public var overlay: Expr, + @JvmField + public var start: Expr, + @JvmField + public var length: Expr?, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(value) + kids.add(overlay) + kids.add(start) + length?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprOverlay(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprParameter.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprParameter.kt new file mode 100644 index 0000000000..4493e3353a --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprParameter.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprParameter( + @JvmField + public var index: Int, +) : Expr() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprParameter(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPath.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPath.kt new file mode 100644 index 0000000000..7456f34739 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPath.kt @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprPath( + @JvmField + public var root: Expr, + @JvmField + public var steps: List, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(root) + kids.addAll(steps) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPath(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPathStep.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPathStep.kt new file mode 100644 index 0000000000..9aeebe730c --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPathStep.kt @@ -0,0 +1,72 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.Identifier + +/** + * TODO docs, equals, hashcode + */ +public abstract class ExprPathStep : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Symbol -> visitor.visitExprPathStepSymbol(this, ctx) + is Index -> visitor.visitExprPathStepIndex(this, ctx) + is Wildcard -> visitor.visitExprPathStepWildcard(this, ctx) + is Unpivot -> visitor.visitExprPathStepUnpivot(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class Symbol( + @JvmField + public var symbol: Identifier.Symbol, + ) : ExprPathStep() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(symbol) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPathStepSymbol(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Index( + @JvmField + public var key: Expr, + ) : ExprPathStep() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(key) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPathStepIndex(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Wildcard : ExprPathStep() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPathStepWildcard(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Unpivot : ExprPathStep() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPathStepUnpivot(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPosition.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPosition.kt new file mode 100644 index 0000000000..c0579d3ea9 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPosition.kt @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprPosition( + @JvmField + public var lhs: Expr, + @JvmField + public var rhs: Expr, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprPosition(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprQuerySet.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprQuerySet.kt new file mode 100644 index 0000000000..743c3abe2d --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprQuerySet.kt @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.OrderBy +import org.partiql.ast.v1.QueryBody + +/** + * TODO docs, equals, hashcode + */ +public class ExprQuerySet( + @JvmField + public var body: QueryBody, + @JvmField + public var orderBy: OrderBy?, + @JvmField + public var limit: Expr?, + @JvmField + public var offset: Expr?, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(body) + orderBy?.let { kids.add(it) } + limit?.let { kids.add(it) } + offset?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprQuerySet(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSessionAttribute.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSessionAttribute.kt new file mode 100644 index 0000000000..418b81ac9e --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSessionAttribute.kt @@ -0,0 +1,26 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprSessionAttribute( + @JvmField + public var attribute: Attribute, +) : Expr() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprSessionAttribute(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Attribute { + CURRENT_USER, + CURRENT_DATE, + OTHER, + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprStruct.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprStruct.kt new file mode 100644 index 0000000000..8d59f8e937 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprStruct.kt @@ -0,0 +1,41 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprStruct( + @JvmField + public var fields: List, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(fields) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprStruct(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public class Field( + @JvmField + public var name: Expr, + @JvmField + public var `value`: Expr, + ) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(name) + kids.add(value) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprStructField(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSubstring.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSubstring.kt new file mode 100644 index 0000000000..0048d95ea5 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSubstring.kt @@ -0,0 +1,27 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprSubstring( + @JvmField + public var `value`: Expr, + @JvmField + public var start: Expr?, + @JvmField + public var length: Expr?, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(value) + start?.let { kids.add(it) } + length?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprSubstring(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprTrim.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprTrim.kt new file mode 100644 index 0000000000..09e50dc828 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprTrim.kt @@ -0,0 +1,33 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprTrim( + @JvmField + public var `value`: Expr, + @JvmField + public var chars: Expr?, + @JvmField + public var spec: Spec?, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(value) + chars?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprTrim(this, ctx) + + public enum class Spec { + LEADING, + TRAILING, + BOTH, + OTHER, + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprValues.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprValues.kt new file mode 100644 index 0000000000..8cb0fb2623 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprValues.kt @@ -0,0 +1,38 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class ExprValues( + @JvmField + public var rows: List, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(rows) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprValues(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public class Row( + @JvmField + public var items: List, + ) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(items) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprValuesRow(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprVar.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprVar.kt new file mode 100644 index 0000000000..6a649f461b --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprVar.kt @@ -0,0 +1,33 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.Identifier + +/** + * TODO docs, equals, hashcode + */ +public class ExprVar( + @JvmField + public var identifier: Identifier, + @JvmField + public var scope: Scope, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(identifier) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprVar(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Scope { + DEFAULT, + LOCAL, + OTHER, + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprWindow.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprWindow.kt new file mode 100644 index 0000000000..d20fb49e1d --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprWindow.kt @@ -0,0 +1,62 @@ +package org.partiql.ast.v1.expr + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.Sort + +/** + * TODO docs, equals, hashcode + */ +public class ExprWindow( + @JvmField + public var function: Function, + @JvmField + public var expression: Expr, + @JvmField + public var offset: Expr?, + @JvmField + public var default: Expr?, + @JvmField + public var over: Over, +) : Expr() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(expression) + offset?.let { kids.add(it) } + default?.let { kids.add(it) } + kids.add(over) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprWindow(this, ctx) + + /** + * TODO docs, equals, hashcode + */ + public enum class Function { + LAG, + LEAD, + OTHER, + } + + /** + * TODO docs, equals, hashcode + */ + public class Over( + @JvmField + public var partitions: List?, + @JvmField + public var sorts: List?, + ) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + partitions?.let { kids.addAll(it) } + sorts?.let { kids.addAll(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitExprWindowOver(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphDirection.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphDirection.kt new file mode 100644 index 0000000000..7b33ca4c3c --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphDirection.kt @@ -0,0 +1,15 @@ +package org.partiql.ast.v1.graph + +/** + * TODO docs, equals, hashcode + */ +public enum class GraphDirection { + LEFT, + UNDIRECTED, + RIGHT, + LEFT_OR_UNDIRECTED, + UNDIRECTED_OR_RIGHT, + LEFT_OR_RIGHT, + LEFT_UNDIRECTED_OR_RIGHT, + OTHER, +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphLabel.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphLabel.kt new file mode 100644 index 0000000000..7ee500d74f --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphLabel.kt @@ -0,0 +1,98 @@ +package org.partiql.ast.v1.graph + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public abstract class GraphLabel : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Name -> visitor.visitGraphLabelName(this, ctx) + is Wildcard -> visitor.visitGraphLabelWildcard(this, ctx) + is Negation -> visitor.visitGraphLabelNegation(this, ctx) + is Conj -> visitor.visitGraphLabelConj(this, ctx) + is Disj -> visitor.visitGraphLabelDisj(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class Name( + @JvmField + public var name: String, + ) : GraphLabel() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphLabelName(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Wildcard : GraphLabel() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphLabelWildcard(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Negation( + @JvmField + public var arg: GraphLabel, + ) : GraphLabel() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(arg) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphLabelNegation(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Conj( + @JvmField + public var lhs: GraphLabel, + @JvmField + public var rhs: GraphLabel, + ) : GraphLabel() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphLabelConj(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Disj( + @JvmField + public var lhs: GraphLabel, + @JvmField + public var rhs: GraphLabel, + ) : GraphLabel() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(lhs) + kids.add(rhs) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphLabelDisj(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphMatch.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphMatch.kt new file mode 100644 index 0000000000..98614a4777 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphMatch.kt @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.graph + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class GraphMatch( + @JvmField + public var patterns: List, + @JvmField + public var selector: GraphSelector?, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.addAll(patterns) + selector?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatch(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPart.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPart.kt new file mode 100644 index 0000000000..502c88aff7 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPart.kt @@ -0,0 +1,83 @@ +package org.partiql.ast.v1.graph + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.expr.Expr + +/** + * TODO docs, equals, hashcode + */ +public abstract class GraphPart : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is Node -> visitor.visitGraphPartNode(this, ctx) + is Edge -> visitor.visitGraphPartEdge(this, ctx) + is Pattern -> visitor.visitGraphPartPattern(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public class Node( + @JvmField + public var prefilter: Expr?, + @JvmField + public var variable: String?, + @JvmField + public var label: GraphLabel?, + ) : GraphPart() { + public override fun children(): Collection { + val kids = mutableListOf() + prefilter?.let { kids.add(it) } + label?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphPartNode(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Edge( + @JvmField + public var direction: GraphDirection, + @JvmField + public var quantifier: GraphQuantifier?, + @JvmField + public var prefilter: Expr?, + @JvmField + public var variable: String?, + @JvmField + public var label: GraphLabel?, + ) : GraphPart() { + public override fun children(): Collection { + val kids = mutableListOf() + quantifier?.let { kids.add(it) } + prefilter?.let { kids.add(it) } + label?.let { kids.add(it) } + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphPartEdge(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class Pattern( + @JvmField + public var pattern: GraphPattern, + ) : GraphPart() { + public override fun children(): Collection { + val kids = mutableListOf() + kids.add(pattern) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphPartPattern(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPattern.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPattern.kt new file mode 100644 index 0000000000..823aa8bf62 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPattern.kt @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.graph + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor +import org.partiql.ast.v1.expr.Expr + +/** + * TODO docs, equals, hashcode + */ +public class GraphPattern( + @JvmField + public var restrictor: GraphRestrictor?, + @JvmField + public var prefilter: Expr?, + @JvmField + public var variable: String?, + @JvmField + public var quantifier: GraphQuantifier?, + @JvmField + public var parts: List, +) : AstNode() { + public override fun children(): Collection { + val kids = mutableListOf() + prefilter?.let { kids.add(it) } + quantifier?.let { kids.add(it) } + kids.addAll(parts) + return kids.filterNotNull() + } + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphMatchPattern(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphQuantifier.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphQuantifier.kt new file mode 100644 index 0000000000..25c8158e95 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphQuantifier.kt @@ -0,0 +1,19 @@ +package org.partiql.ast.v1.graph + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class GraphQuantifier( + @JvmField + public var lower: Long, + @JvmField + public var upper: Long?, +) : AstNode() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphQuantifier(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphRestrictor.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphRestrictor.kt new file mode 100644 index 0000000000..90deec4c2b --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphRestrictor.kt @@ -0,0 +1,11 @@ +package org.partiql.ast.v1.graph + +/** + * TODO docs, equals, hashcode + */ +public enum class GraphRestrictor { + TRAIL, + ACYCLIC, + SIMPLE, + OTHER, +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphSelector.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphSelector.kt new file mode 100644 index 0000000000..433b9f29b3 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphSelector.kt @@ -0,0 +1,88 @@ +package org.partiql.ast.v1.graph + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public abstract class GraphSelector : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is AnyShortest -> visitor.visitGraphSelectorAnyShortest(this, ctx) + is AllShortest -> visitor.visitGraphSelectorAllShortest(this, ctx) + is Any -> visitor.visitGraphSelectorAny(this, ctx) + is AnyK -> visitor.visitGraphSelectorAnyK(this, ctx) + is ShortestK -> visitor.visitGraphSelectorShortestK(this, ctx) + is ShortestKGroup -> visitor.visitGraphSelectorShortestKGroup(this, ctx) + else -> throw NotImplementedError() + } + + /** + * TODO docs, equals, hashcode + */ + public object AnyShortest : GraphSelector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphSelectorAnyShortest(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object AllShortest : GraphSelector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphSelectorAllShortest(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public object Any : GraphSelector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphSelectorAny(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class AnyK( + @JvmField + public var k: Long, + ) : GraphSelector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphSelectorAnyK(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class ShortestK( + @JvmField + public var k: Long, + ) : GraphSelector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphSelectorShortestK(this, ctx) + } + + /** + * TODO docs, equals, hashcode + */ + public class ShortestKGroup( + @JvmField + public var k: Long, + ) : GraphSelector() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitGraphSelectorShortestKGroup(this, ctx) + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/Type.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/Type.kt new file mode 100644 index 0000000000..a58362af0a --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/Type.kt @@ -0,0 +1,50 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public abstract class Type : AstNode() { + public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { + is TypeNull -> visitor.visitTypeNull(this, ctx) + is TypeMissing -> visitor.visitTypeMissing(this, ctx) + is TypeBool -> visitor.visitTypeBool(this, ctx) + is TypeTinyint -> visitor.visitTypeTinyint(this, ctx) + is TypeSmallint -> visitor.visitTypeSmallint(this, ctx) + is TypeInt2 -> visitor.visitTypeInt2(this, ctx) + is TypeInt4 -> visitor.visitTypeInt4(this, ctx) + is TypeBigint -> visitor.visitTypeBigint(this, ctx) + is TypeInt8 -> visitor.visitTypeInt8(this, ctx) + is TypeInt -> visitor.visitTypeInt(this, ctx) + is TypeReal -> visitor.visitTypeReal(this, ctx) + is TypeFloat32 -> visitor.visitTypeFloat32(this, ctx) + is TypeFloat64 -> visitor.visitTypeFloat64(this, ctx) + is TypeDecimal -> visitor.visitTypeDecimal(this, ctx) + is TypeNumeric -> visitor.visitTypeNumeric(this, ctx) + is TypeChar -> visitor.visitTypeChar(this, ctx) + is TypeVarchar -> visitor.visitTypeVarchar(this, ctx) + is TypeString -> visitor.visitTypeString(this, ctx) + is TypeSymbol -> visitor.visitTypeSymbol(this, ctx) + is TypeBit -> visitor.visitTypeBit(this, ctx) + is TypeBitVarying -> visitor.visitTypeBitVarying(this, ctx) + is TypeByteString -> visitor.visitTypeByteString(this, ctx) + is TypeBlob -> visitor.visitTypeBlob(this, ctx) + is TypeClob -> visitor.visitTypeClob(this, ctx) + is TypeDate -> visitor.visitTypeDate(this, ctx) + is TypeTime -> visitor.visitTypeTime(this, ctx) + is TypeTimeWithTz -> visitor.visitTypeTimeWithTz(this, ctx) + is TypeTimestamp -> visitor.visitTypeTimestamp(this, ctx) + is TypeTimestampWithTz -> visitor.visitTypeTimestampWithTz(this, ctx) + is TypeInterval -> visitor.visitTypeInterval(this, ctx) + is TypeBag -> visitor.visitTypeBag(this, ctx) + is TypeList -> visitor.visitTypeList(this, ctx) + is TypeSexp -> visitor.visitTypeSexp(this, ctx) + is TypeTuple -> visitor.visitTypeTuple(this, ctx) + is TypeStruct -> visitor.visitTypeStruct(this, ctx) + is TypeAny -> visitor.visitTypeAny(this, ctx) + is TypeCustom -> visitor.visitTypeCustom(this, ctx) + else -> throw NotImplementedError() + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeAny.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeAny.kt new file mode 100644 index 0000000000..a0978e4da1 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeAny.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeAny : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeAny(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBag.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBag.kt new file mode 100644 index 0000000000..f5cbf0aaba --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBag.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeBag : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBag(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBigint.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBigint.kt new file mode 100644 index 0000000000..ac8ced02a4 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBigint.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeBigint : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBigint(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBit.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBit.kt new file mode 100644 index 0000000000..b85cdb4203 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBit.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeBit( + @JvmField + public var length: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBit(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBitVarying.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBitVarying.kt new file mode 100644 index 0000000000..a021ad3348 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBitVarying.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeBitVarying( + @JvmField + public var length: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBitVarying(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBlob.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBlob.kt new file mode 100644 index 0000000000..7facf2f485 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBlob.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeBlob( + @JvmField + public var length: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBlob(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBool.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBool.kt new file mode 100644 index 0000000000..9c368ea706 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBool.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeBool : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeBool(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeByteString.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeByteString.kt new file mode 100644 index 0000000000..b2007af49e --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeByteString.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeByteString( + @JvmField + public var length: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeByteString(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeChar.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeChar.kt new file mode 100644 index 0000000000..c45cf65e39 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeChar.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeChar( + @JvmField + public var length: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeChar(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeClob.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeClob.kt new file mode 100644 index 0000000000..3c60031ded --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeClob.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeClob( + @JvmField + public var length: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeClob(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeCustom.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeCustom.kt new file mode 100644 index 0000000000..34e66813b1 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeCustom.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeCustom( + @JvmField + public var name: String, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeCustom(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDate.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDate.kt new file mode 100644 index 0000000000..e4a5233a56 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDate.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeDate : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeDate(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDecimal.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDecimal.kt new file mode 100644 index 0000000000..6f413777d2 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDecimal.kt @@ -0,0 +1,19 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeDecimal( + @JvmField + public var precision: Int?, + @JvmField + public var scale: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeDecimal(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat32.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat32.kt new file mode 100644 index 0000000000..7aa86e10e2 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat32.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeFloat32 : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeFloat32(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat64.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat64.kt new file mode 100644 index 0000000000..ba0e0689e6 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat64.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeFloat64 : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeFloat64(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt.kt new file mode 100644 index 0000000000..a7cf7198dc --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeInt : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeInt(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt2.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt2.kt new file mode 100644 index 0000000000..4b2c1eee49 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt2.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeInt2 : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeInt2(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt4.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt4.kt new file mode 100644 index 0000000000..55cd3ca77f --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt4.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeInt4 : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeInt4(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt8.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt8.kt new file mode 100644 index 0000000000..aefded3e0d --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt8.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeInt8 : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeInt8(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInterval.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInterval.kt new file mode 100644 index 0000000000..f9da3d9f68 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInterval.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeInterval( + @JvmField + public var precision: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeInterval(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeList.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeList.kt new file mode 100644 index 0000000000..fde85c97cc --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeList.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeList : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeList(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeMissing.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeMissing.kt new file mode 100644 index 0000000000..d1623b63dc --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeMissing.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeMissing : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeMissing(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNull.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNull.kt new file mode 100644 index 0000000000..a29a934c2a --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNull.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeNull : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeNull(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNumeric.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNumeric.kt new file mode 100644 index 0000000000..3e866f4f64 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNumeric.kt @@ -0,0 +1,19 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeNumeric( + @JvmField + public var precision: Int?, + @JvmField + public var scale: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeNumeric(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeReal.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeReal.kt new file mode 100644 index 0000000000..5a53de756c --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeReal.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeReal : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeReal(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSexp.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSexp.kt new file mode 100644 index 0000000000..ebdb5698ce --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSexp.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeSexp : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeSexp(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSmallint.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSmallint.kt new file mode 100644 index 0000000000..558c943fc2 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSmallint.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeSmallint : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeSmallint(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeString.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeString.kt new file mode 100644 index 0000000000..d2b85d12b4 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeString.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeString( + @JvmField + public var length: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeString(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeStruct.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeStruct.kt new file mode 100644 index 0000000000..481c139fd5 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeStruct.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeStruct : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeStruct(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSymbol.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSymbol.kt new file mode 100644 index 0000000000..6531b0e3a6 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSymbol.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeSymbol : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeSymbol(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTime.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTime.kt new file mode 100644 index 0000000000..b4185704a6 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTime.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeTime( + @JvmField + public var precision: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTime(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimeWithTz.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimeWithTz.kt new file mode 100644 index 0000000000..3c0f075f22 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimeWithTz.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeTimeWithTz( + @JvmField + public var precision: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTimeWithTz(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestamp.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestamp.kt new file mode 100644 index 0000000000..eeec01ee33 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestamp.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeTimestamp( + @JvmField + public var precision: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTimestamp(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestampWithTz.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestampWithTz.kt new file mode 100644 index 0000000000..a02f204f6f --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestampWithTz.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeTimestampWithTz( + @JvmField + public var precision: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTimestampWithTz(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTinyint.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTinyint.kt new file mode 100644 index 0000000000..18e04f0d83 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTinyint.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeTinyint : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTinyint(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTuple.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTuple.kt new file mode 100644 index 0000000000..dd9b1cac15 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTuple.kt @@ -0,0 +1,14 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public object TypeTuple : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeTuple(this, ctx) +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeVarchar.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeVarchar.kt new file mode 100644 index 0000000000..c5268a9b47 --- /dev/null +++ b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeVarchar.kt @@ -0,0 +1,17 @@ +package org.partiql.ast.v1.type + +import org.partiql.ast.v1.AstNode +import org.partiql.ast.v1.AstVisitor + +/** + * TODO docs, equals, hashcode + */ +public class TypeVarchar( + @JvmField + public var length: Int?, +) : Type() { + public override fun children(): Collection = emptyList() + + public override fun accept(visitor: AstVisitor, ctx: C): R = + visitor.visitTypeVarchar(this, ctx) +} From afa02a94d6c84110c5a67e140c8ea3b0287f478d Mon Sep 17 00:00:00 2001 From: Alan Cai Date: Mon, 23 Sep 2024 16:45:00 -0700 Subject: [PATCH 03/11] Rewrite Kotlin APIs in Java --- partiql-ast/api/partiql-ast.api | 423 +++++++++--------- .../main/java/org/partiql/ast/v1/AstNode.java | 19 + .../java/org/partiql/ast/v1/AstVisitor.java | 394 ++++++++++++++++ .../org/partiql/ast/v1/CaseSensitivity.java} | 4 +- .../main/java/org/partiql/ast/v1/Column.java | 42 ++ .../java/org/partiql/ast/v1/Constraint.java | 37 ++ .../org/partiql/ast/v1/ConstraintCheck.java | 33 ++ .../org/partiql/ast/v1/ConstraintNotNull.java | 22 + .../partiql/ast/v1/ConstraintNullable.java | 22 + .../org/partiql/ast/v1/ConstraintType.java | 21 + .../java/org/partiql/ast/v1/CreateIndex.java | 45 ++ .../java/org/partiql/ast/v1/CreateTable.java | 40 ++ .../src/main/java/org/partiql/ast/v1/DDL.java | 23 + .../org/partiql/ast/v1/DatetimeField.java} | 4 +- .../java/org/partiql/ast/v1/DropIndex.java | 37 ++ .../java/org/partiql/ast/v1/DropTable.java | 32 ++ .../main/java/org/partiql/ast/v1/Exclude.java | 30 ++ .../java/org/partiql/ast/v1/ExcludePath.java | 38 ++ .../java/org/partiql/ast/v1/ExcludeStep.java | 91 ++++ .../main/java/org/partiql/ast/v1/Explain.java | 32 ++ .../main/java/org/partiql/ast/v1/From.java | 19 + .../java/org/partiql/ast/v1/FromJoin.java | 66 +++ .../java/org/partiql/ast/v1/FromValue.java | 65 +++ .../main/java/org/partiql/ast/v1/GroupBy.java | 85 ++++ .../java/org/partiql/ast/v1/Identifier.java | 80 ++++ .../src/main/java/org/partiql/ast/v1/Let.java | 61 +++ .../main/java/org/partiql/ast/v1/OrderBy.java | 31 ++ .../main/java/org/partiql/ast/v1/PathLit.java | 37 ++ .../java/org/partiql/ast/v1/PathLitStep.java | 59 +++ .../java/org/partiql/ast/v1/ProjectItem.java | 82 ++++ .../main/java/org/partiql/ast/v1/Query.java | 33 ++ .../java/org/partiql/ast/v1/QueryBody.java | 99 ++++ .../main/java/org/partiql/ast/v1/Select.java | 23 + .../java/org/partiql/ast/v1/SelectPivot.java | 38 ++ .../org/partiql/ast/v1/SelectProject.java | 35 ++ .../java/org/partiql/ast/v1/SelectStar.java | 30 ++ .../java/org/partiql/ast/v1/SelectValue.java | 38 ++ .../main/java/org/partiql/ast/v1/SetOp.java | 44 ++ .../org/partiql/ast/v1/SetQuantifier.java} | 4 +- .../main/java/org/partiql/ast/v1/Sort.java | 60 +++ .../java/org/partiql/ast/v1/Statement.java | 21 + .../org/partiql/ast/v1/TableDefinition.java | 30 ++ .../main/java/org/partiql/ast/v1/Target.java | 55 +++ .../java/org/partiql/ast/v1/expr/Expr.java | 81 ++++ .../java/org/partiql/ast/v1/expr/ExprAnd.java | 38 ++ .../org/partiql/ast/v1/expr/ExprBetween.java | 48 ++ .../org/partiql/ast/v1/expr/ExprCall.java | 44 ++ .../org/partiql/ast/v1/expr/ExprCase.java | 79 ++++ .../org/partiql/ast/v1/expr/ExprCast.java | 40 ++ .../org/partiql/ast/v1/expr/ExprCoalesce.java | 32 ++ .../partiql/ast/v1/expr/ExprCollection.java | 48 ++ .../org/partiql/ast/v1/expr/ExprDateAdd.java | 44 ++ .../org/partiql/ast/v1/expr/ExprDateDiff.java | 44 ++ .../org/partiql/ast/v1/expr/ExprExtract.java | 39 ++ .../partiql/ast/v1/expr/ExprInCollection.java | 44 ++ .../java/org/partiql/ast/v1/expr/ExprIon.java | 32 ++ .../org/partiql/ast/v1/expr/ExprIsType.java | 45 ++ .../org/partiql/ast/v1/expr/ExprLike.java | 51 +++ .../java/org/partiql/ast/v1/expr/ExprLit.java | 32 ++ .../org/partiql/ast/v1/expr/ExprMatch.java | 40 ++ .../java/org/partiql/ast/v1/expr/ExprNot.java | 34 ++ .../org/partiql/ast/v1/expr/ExprNullIf.java | 39 ++ .../org/partiql/ast/v1/expr/ExprOperator.java | 46 ++ .../java/org/partiql/ast/v1/expr/ExprOr.java | 39 ++ .../org/partiql/ast/v1/expr/ExprOverlay.java | 49 ++ .../partiql/ast/v1/expr/ExprParameter.java | 30 ++ .../org/partiql/ast/v1/expr/ExprPath.java | 39 ++ .../org/partiql/ast/v1/expr/ExprPathStep.java | 97 ++++ .../org/partiql/ast/v1/expr/ExprPosition.java | 39 ++ .../org/partiql/ast/v1/expr/ExprQuerySet.java | 58 +++ .../ast/v1/expr/ExprSessionAttribute.java | 40 ++ .../org/partiql/ast/v1/expr/ExprStruct.java | 62 +++ .../partiql/ast/v1/expr/ExprSubstring.java | 49 ++ .../org/partiql/ast/v1/expr/ExprTrim.java | 53 +++ .../org/partiql/ast/v1/expr/ExprValues.java | 55 +++ .../java/org/partiql/ast/v1/expr/ExprVar.java | 48 ++ .../org/partiql/ast/v1/expr/ExprWindow.java | 102 +++++ .../partiql/ast/v1/graph/GraphDirection.java} | 4 +- .../org/partiql/ast/v1/graph/GraphLabel.java | 141 ++++++ .../org/partiql/ast/v1/graph/GraphMatch.java | 41 ++ .../org/partiql/ast/v1/graph/GraphPart.java | 142 ++++++ .../partiql/ast/v1/graph/GraphPattern.java | 60 +++ .../partiql/ast/v1/graph/GraphQuantifier.java | 36 ++ .../ast/v1/graph/GraphRestrictor.java} | 4 +- .../partiql/ast/v1/graph/GraphSelector.java | 146 ++++++ .../java/org/partiql/ast/v1/type/Type.java | 91 ++++ .../java/org/partiql/ast/v1/type/TypeAny.java | 24 + .../java/org/partiql/ast/v1/type/TypeBag.java | 24 + .../org/partiql/ast/v1/type/TypeBigint.java | 24 + .../java/org/partiql/ast/v1/type/TypeBit.java | 32 ++ .../partiql/ast/v1/type/TypeBitVarying.java | 32 ++ .../org/partiql/ast/v1/type/TypeBlob.java | 32 ++ .../org/partiql/ast/v1/type/TypeBool.java | 28 ++ .../partiql/ast/v1/type/TypeByteString.java | 32 ++ .../org/partiql/ast/v1/type/TypeChar.java | 32 ++ .../org/partiql/ast/v1/type/TypeClob.java | 32 ++ .../org/partiql/ast/v1/type/TypeCustom.java | 31 ++ .../org/partiql/ast/v1/type/TypeDate.java | 28 ++ .../org/partiql/ast/v1/type/TypeDecimal.java | 36 ++ .../org/partiql/ast/v1/type/TypeFloat32.java | 24 + .../org/partiql/ast/v1/type/TypeFloat64.java | 24 + .../java/org/partiql/ast/v1/type/TypeInt.java | 24 + .../org/partiql/ast/v1/type/TypeInt2.java | 24 + .../org/partiql/ast/v1/type/TypeInt4.java | 24 + .../org/partiql/ast/v1/type/TypeInt8.java | 24 + .../org/partiql/ast/v1/type/TypeInterval.java | 32 ++ .../org/partiql/ast/v1/type/TypeList.java | 24 + .../org/partiql/ast/v1/type/TypeMissing.java | 24 + .../org/partiql/ast/v1/type/TypeNull.java | 24 + .../org/partiql/ast/v1/type/TypeNumeric.java | 36 ++ .../org/partiql/ast/v1/type/TypeReal.java | 24 + .../org/partiql/ast/v1/type/TypeSexp.java | 24 + .../org/partiql/ast/v1/type/TypeSmallint.java | 24 + .../org/partiql/ast/v1/type/TypeString.java | 32 ++ .../org/partiql/ast/v1/type/TypeStruct.java | 24 + .../org/partiql/ast/v1/type/TypeSymbol.java | 24 + .../org/partiql/ast/v1/type/TypeTime.java | 32 ++ .../partiql/ast/v1/type/TypeTimeWithTz.java | 32 ++ .../partiql/ast/v1/type/TypeTimestamp.java | 32 ++ .../ast/v1/type/TypeTimestampWithTz.java | 32 ++ .../org/partiql/ast/v1/type/TypeTinyint.java | 24 + .../org/partiql/ast/v1/type/TypeTuple.java | 24 + .../org/partiql/ast/v1/type/TypeVarchar.java | 32 ++ .../main/kotlin/org/partiql/ast/v1/AstNode.kt | 15 - .../kotlin/org/partiql/ast/v1/AstVisitor.kt | 410 ----------------- .../main/kotlin/org/partiql/ast/v1/Column.kt | 25 -- .../kotlin/org/partiql/ast/v1/Constraint.kt | 20 - .../org/partiql/ast/v1/ConstraintBody.kt | 52 --- .../kotlin/org/partiql/ast/v1/CreateIndex.kt | 24 - .../kotlin/org/partiql/ast/v1/CreateTable.kt | 21 - .../src/main/kotlin/org/partiql/ast/v1/DDL.kt | 14 - .../kotlin/org/partiql/ast/v1/DropIndex.kt | 21 - .../kotlin/org/partiql/ast/v1/DropTable.kt | 18 - .../main/kotlin/org/partiql/ast/v1/Exclude.kt | 18 - .../kotlin/org/partiql/ast/v1/ExcludePath.kt | 23 - .../kotlin/org/partiql/ast/v1/ExcludeStep.kt | 56 --- .../main/kotlin/org/partiql/ast/v1/Explain.kt | 18 - .../main/kotlin/org/partiql/ast/v1/From.kt | 12 - .../kotlin/org/partiql/ast/v1/FromJoin.kt | 44 -- .../kotlin/org/partiql/ast/v1/FromValue.kt | 40 -- .../main/kotlin/org/partiql/ast/v1/GroupBy.kt | 54 --- .../kotlin/org/partiql/ast/v1/Identifier.kt | 47 -- .../src/main/kotlin/org/partiql/ast/v1/Let.kt | 42 -- .../main/kotlin/org/partiql/ast/v1/OrderBy.kt | 18 - .../main/kotlin/org/partiql/ast/v1/PathLit.kt | 23 - .../kotlin/org/partiql/ast/v1/PathLitStep.kt | 36 -- .../kotlin/org/partiql/ast/v1/ProjectItem.kt | 51 --- .../main/kotlin/org/partiql/ast/v1/Query.kt | 20 - .../kotlin/org/partiql/ast/v1/QueryBody.kt | 74 --- .../main/kotlin/org/partiql/ast/v1/Select.kt | 14 - .../kotlin/org/partiql/ast/v1/SelectPivot.kt | 23 - .../org/partiql/ast/v1/SelectProject.kt | 20 - .../kotlin/org/partiql/ast/v1/SelectStar.kt | 14 - .../kotlin/org/partiql/ast/v1/SelectValue.kt | 22 - .../main/kotlin/org/partiql/ast/v1/SetOp.kt | 28 -- .../main/kotlin/org/partiql/ast/v1/Sort.kt | 44 -- .../kotlin/org/partiql/ast/v1/Statement.kt | 13 - .../org/partiql/ast/v1/TableDefinition.kt | 18 - .../main/kotlin/org/partiql/ast/v1/Target.kt | 32 -- .../kotlin/org/partiql/ast/v1/expr/Expr.kt | 45 -- .../kotlin/org/partiql/ast/v1/expr/ExprAnd.kt | 24 - .../org/partiql/ast/v1/expr/ExprBetween.kt | 29 -- .../org/partiql/ast/v1/expr/ExprCall.kt | 28 -- .../org/partiql/ast/v1/expr/ExprCase.kt | 47 -- .../org/partiql/ast/v1/expr/ExprCast.kt | 25 -- .../org/partiql/ast/v1/expr/ExprCoalesce.kt | 21 - .../org/partiql/ast/v1/expr/ExprCollection.kt | 35 -- .../org/partiql/ast/v1/expr/ExprDateAdd.kt | 27 -- .../org/partiql/ast/v1/expr/ExprDateDiff.kt | 27 -- .../org/partiql/ast/v1/expr/ExprExtract.kt | 24 - .../partiql/ast/v1/expr/ExprInCollection.kt | 26 -- .../kotlin/org/partiql/ast/v1/expr/ExprIon.kt | 17 - .../org/partiql/ast/v1/expr/ExprIsType.kt | 27 -- .../org/partiql/ast/v1/expr/ExprLike.kt | 29 -- .../kotlin/org/partiql/ast/v1/expr/ExprLit.kt | 20 - .../org/partiql/ast/v1/expr/ExprMatch.kt | 25 -- .../kotlin/org/partiql/ast/v1/expr/ExprNot.kt | 21 - .../org/partiql/ast/v1/expr/ExprNullIf.kt | 24 - .../org/partiql/ast/v1/expr/ExprOperator.kt | 26 -- .../kotlin/org/partiql/ast/v1/expr/ExprOr.kt | 24 - .../org/partiql/ast/v1/expr/ExprOverlay.kt | 30 -- .../org/partiql/ast/v1/expr/ExprParameter.kt | 17 - .../org/partiql/ast/v1/expr/ExprPath.kt | 24 - .../org/partiql/ast/v1/expr/ExprPathStep.kt | 72 --- .../org/partiql/ast/v1/expr/ExprPosition.kt | 24 - .../org/partiql/ast/v1/expr/ExprQuerySet.kt | 32 -- .../ast/v1/expr/ExprSessionAttribute.kt | 26 -- .../org/partiql/ast/v1/expr/ExprStruct.kt | 41 -- .../org/partiql/ast/v1/expr/ExprSubstring.kt | 27 -- .../org/partiql/ast/v1/expr/ExprTrim.kt | 33 -- .../org/partiql/ast/v1/expr/ExprValues.kt | 38 -- .../kotlin/org/partiql/ast/v1/expr/ExprVar.kt | 33 -- .../org/partiql/ast/v1/expr/ExprWindow.kt | 62 --- .../org/partiql/ast/v1/graph/GraphLabel.kt | 98 ---- .../org/partiql/ast/v1/graph/GraphMatch.kt | 24 - .../org/partiql/ast/v1/graph/GraphPart.kt | 83 ---- .../org/partiql/ast/v1/graph/GraphPattern.kt | 32 -- .../partiql/ast/v1/graph/GraphQuantifier.kt | 19 - .../org/partiql/ast/v1/graph/GraphSelector.kt | 88 ---- .../kotlin/org/partiql/ast/v1/type/Type.kt | 50 --- .../kotlin/org/partiql/ast/v1/type/TypeAny.kt | 14 - .../kotlin/org/partiql/ast/v1/type/TypeBag.kt | 14 - .../org/partiql/ast/v1/type/TypeBigint.kt | 14 - .../kotlin/org/partiql/ast/v1/type/TypeBit.kt | 17 - .../org/partiql/ast/v1/type/TypeBitVarying.kt | 17 - .../org/partiql/ast/v1/type/TypeBlob.kt | 17 - .../org/partiql/ast/v1/type/TypeBool.kt | 14 - .../org/partiql/ast/v1/type/TypeByteString.kt | 17 - .../org/partiql/ast/v1/type/TypeChar.kt | 17 - .../org/partiql/ast/v1/type/TypeClob.kt | 17 - .../org/partiql/ast/v1/type/TypeCustom.kt | 17 - .../org/partiql/ast/v1/type/TypeDate.kt | 14 - .../org/partiql/ast/v1/type/TypeDecimal.kt | 19 - .../org/partiql/ast/v1/type/TypeFloat32.kt | 14 - .../org/partiql/ast/v1/type/TypeFloat64.kt | 14 - .../kotlin/org/partiql/ast/v1/type/TypeInt.kt | 14 - .../org/partiql/ast/v1/type/TypeInt2.kt | 14 - .../org/partiql/ast/v1/type/TypeInt4.kt | 14 - .../org/partiql/ast/v1/type/TypeInt8.kt | 14 - .../org/partiql/ast/v1/type/TypeInterval.kt | 17 - .../org/partiql/ast/v1/type/TypeList.kt | 14 - .../org/partiql/ast/v1/type/TypeMissing.kt | 14 - .../org/partiql/ast/v1/type/TypeNull.kt | 14 - .../org/partiql/ast/v1/type/TypeNumeric.kt | 19 - .../org/partiql/ast/v1/type/TypeReal.kt | 14 - .../org/partiql/ast/v1/type/TypeSexp.kt | 14 - .../org/partiql/ast/v1/type/TypeSmallint.kt | 14 - .../org/partiql/ast/v1/type/TypeString.kt | 17 - .../org/partiql/ast/v1/type/TypeStruct.kt | 14 - .../org/partiql/ast/v1/type/TypeSymbol.kt | 14 - .../org/partiql/ast/v1/type/TypeTime.kt | 17 - .../org/partiql/ast/v1/type/TypeTimeWithTz.kt | 17 - .../org/partiql/ast/v1/type/TypeTimestamp.kt | 17 - .../ast/v1/type/TypeTimestampWithTz.kt | 17 - .../org/partiql/ast/v1/type/TypeTinyint.kt | 14 - .../org/partiql/ast/v1/type/TypeTuple.kt | 14 - .../org/partiql/ast/v1/type/TypeVarchar.kt | 17 - 237 files changed, 5608 insertions(+), 3650 deletions(-) create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/AstNode.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java rename partiql-ast/src/main/{kotlin/org/partiql/ast/v1/CaseSensitivity.kt => java/org/partiql/ast/v1/CaseSensitivity.java} (57%) create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Column.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Constraint.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintCheck.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNotNull.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNullable.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintType.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/CreateIndex.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/CreateTable.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/DDL.java rename partiql-ast/src/main/{kotlin/org/partiql/ast/v1/DatetimeField.kt => java/org/partiql/ast/v1/DatetimeField.java} (72%) create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/DropIndex.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/DropTable.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Exclude.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/ExcludePath.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/ExcludeStep.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Explain.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/From.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/FromValue.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/GroupBy.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Let.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/OrderBy.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/PathLit.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/PathLitStep.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Query.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/QueryBody.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Select.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/SelectPivot.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/SelectProject.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/SelectStar.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/SelectValue.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/SetOp.java rename partiql-ast/src/main/{kotlin/org/partiql/ast/v1/SetQuantifier.kt => java/org/partiql/ast/v1/SetQuantifier.java} (55%) create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Sort.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Statement.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/TableDefinition.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Target.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprAnd.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCase.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCoalesce.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCollection.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateAdd.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateDiff.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprExtract.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIon.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLike.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLit.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprMatch.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNot.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNullIf.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOperator.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOr.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOverlay.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprParameter.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPath.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPathStep.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPosition.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprQuerySet.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSessionAttribute.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprStruct.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSubstring.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprTrim.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprValues.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVar.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprWindow.java rename partiql-ast/src/main/{kotlin/org/partiql/ast/v1/graph/GraphDirection.kt => java/org/partiql/ast/v1/graph/GraphDirection.java} (73%) create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphLabel.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphMatch.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphPart.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphPattern.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphQuantifier.java rename partiql-ast/src/main/{kotlin/org/partiql/ast/v1/graph/GraphRestrictor.kt => java/org/partiql/ast/v1/graph/GraphRestrictor.java} (56%) create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphSelector.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeAny.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBag.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBigint.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBit.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBitVarying.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBlob.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBool.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeByteString.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeChar.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeClob.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeCustom.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDate.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDecimal.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat32.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat64.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt2.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt4.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt8.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInterval.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeList.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeMissing.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNull.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNumeric.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeReal.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSexp.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSmallint.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeString.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeStruct.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSymbol.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTime.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimeWithTz.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestamp.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestampWithTz.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTinyint.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTuple.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeVarchar.java delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstNode.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Column.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Constraint.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/ConstraintBody.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateIndex.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateTable.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/DDL.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropIndex.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropTable.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludePath.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludeStep.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Explain.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromJoin.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromValue.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/OrderBy.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLitStep.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/ProjectItem.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Query.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectPivot.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectProject.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectStar.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectValue.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetOp.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/Target.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/Expr.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprAnd.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprBetween.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCall.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCase.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCast.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCoalesce.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCollection.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateAdd.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateDiff.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprExtract.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprInCollection.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIon.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIsType.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLike.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLit.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprMatch.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNot.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNullIf.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOperator.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOr.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOverlay.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprParameter.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPath.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPathStep.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPosition.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprQuerySet.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSessionAttribute.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprStruct.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSubstring.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprTrim.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprValues.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprVar.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprWindow.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphLabel.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphMatch.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPart.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPattern.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphQuantifier.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphSelector.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/Type.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeAny.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBag.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBigint.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBit.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBitVarying.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBlob.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBool.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeByteString.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeChar.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeClob.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeCustom.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDate.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDecimal.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat32.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat64.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt2.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt4.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt8.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInterval.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeList.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeMissing.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNull.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNumeric.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeReal.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSexp.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSmallint.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeString.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeStruct.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSymbol.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTime.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimeWithTz.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestamp.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestampWithTz.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTinyint.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTuple.kt delete mode 100644 partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeVarchar.kt diff --git a/partiql-ast/api/partiql-ast.api b/partiql-ast/api/partiql-ast.api index 65436e844d..ad021511ab 100644 --- a/partiql-ast/api/partiql-ast.api +++ b/partiql-ast/api/partiql-ast.api @@ -5554,10 +5554,10 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visit (Lorg/partiql/ast/v1/AstNode;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitColumn (Lorg/partiql/ast/v1/Column;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitConstraint (Lorg/partiql/ast/v1/Constraint;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitConstraintBody (Lorg/partiql/ast/v1/ConstraintBody;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitConstraintBodyCheck (Lorg/partiql/ast/v1/ConstraintBody$Check;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitConstraintBodyNotNull (Lorg/partiql/ast/v1/ConstraintBody$NotNull;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitConstraintBodyNullable (Lorg/partiql/ast/v1/ConstraintBody$Nullable;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitConstraintBody (Lorg/partiql/ast/v1/ConstraintType;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitConstraintCheck (Lorg/partiql/ast/v1/ConstraintCheck;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitConstraintNotNull (Lorg/partiql/ast/v1/ConstraintNotNull;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitConstraintNullable (Lorg/partiql/ast/v1/ConstraintNullable;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitCreateIndex (Lorg/partiql/ast/v1/CreateIndex;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitCreateTable (Lorg/partiql/ast/v1/CreateTable;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitDDL (Lorg/partiql/ast/v1/DDL;Ljava/lang/Object;)Ljava/lang/Object; @@ -5710,12 +5710,11 @@ public final class org/partiql/ast/v1/CaseSensitivity : java/lang/Enum { public static final field INSENSITIVE Lorg/partiql/ast/v1/CaseSensitivity; public static final field OTHER Lorg/partiql/ast/v1/CaseSensitivity; public static final field SENSITIVE Lorg/partiql/ast/v1/CaseSensitivity; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/CaseSensitivity; public static fun values ()[Lorg/partiql/ast/v1/CaseSensitivity; } -public final class org/partiql/ast/v1/Column : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/Column : org/partiql/ast/v1/AstNode { public field constraints Ljava/util/List; public field name Ljava/lang/String; public field type Lorg/partiql/ast/v1/type/Type; @@ -5724,39 +5723,39 @@ public final class org/partiql/ast/v1/Column : org/partiql/ast/v1/AstNode { public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Constraint : org/partiql/ast/v1/AstNode { - public field constraintBody Lorg/partiql/ast/v1/ConstraintBody; +public class org/partiql/ast/v1/Constraint : org/partiql/ast/v1/AstNode { + public field constraintType Lorg/partiql/ast/v1/ConstraintType; public field name Ljava/lang/String; - public fun (Ljava/lang/String;Lorg/partiql/ast/v1/ConstraintBody;)V + public fun (Ljava/lang/String;Lorg/partiql/ast/v1/ConstraintType;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/ConstraintBody : org/partiql/ast/v1/AstNode { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; -} - -public final class org/partiql/ast/v1/ConstraintBody$Check : org/partiql/ast/v1/ConstraintBody { +public class org/partiql/ast/v1/ConstraintCheck : org/partiql/ast/v1/ConstraintType { public field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/ConstraintBody$NotNull : org/partiql/ast/v1/ConstraintBody { - public static final field INSTANCE Lorg/partiql/ast/v1/ConstraintBody$NotNull; +public class org/partiql/ast/v1/ConstraintNotNull : org/partiql/ast/v1/ConstraintType { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/ConstraintBody$Nullable : org/partiql/ast/v1/ConstraintBody { - public static final field INSTANCE Lorg/partiql/ast/v1/ConstraintBody$Nullable; +public class org/partiql/ast/v1/ConstraintNullable : org/partiql/ast/v1/ConstraintType { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/CreateIndex : org/partiql/ast/v1/DDL { +public abstract class org/partiql/ast/v1/ConstraintType : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public class org/partiql/ast/v1/CreateIndex : org/partiql/ast/v1/DDL { public field fields Ljava/util/List; public field index Lorg/partiql/ast/v1/Identifier; public field table Lorg/partiql/ast/v1/Identifier; @@ -5765,7 +5764,7 @@ public final class org/partiql/ast/v1/CreateIndex : org/partiql/ast/v1/DDL { public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/CreateTable : org/partiql/ast/v1/DDL { +public class org/partiql/ast/v1/CreateTable : org/partiql/ast/v1/DDL { public field definition Lorg/partiql/ast/v1/TableDefinition; public field name Lorg/partiql/ast/v1/Identifier; public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/TableDefinition;)V @@ -5788,12 +5787,11 @@ public final class org/partiql/ast/v1/DatetimeField : java/lang/Enum { public static final field TIMEZONE_HOUR Lorg/partiql/ast/v1/DatetimeField; public static final field TIMEZONE_MINUTE Lorg/partiql/ast/v1/DatetimeField; public static final field YEAR Lorg/partiql/ast/v1/DatetimeField; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/DatetimeField; public static fun values ()[Lorg/partiql/ast/v1/DatetimeField; } -public final class org/partiql/ast/v1/DropIndex : org/partiql/ast/v1/DDL { +public class org/partiql/ast/v1/DropIndex : org/partiql/ast/v1/DDL { public field index Lorg/partiql/ast/v1/Identifier; public field table Lorg/partiql/ast/v1/Identifier; public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;)V @@ -5801,21 +5799,21 @@ public final class org/partiql/ast/v1/DropIndex : org/partiql/ast/v1/DDL { public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/DropTable : org/partiql/ast/v1/DDL { +public class org/partiql/ast/v1/DropTable : org/partiql/ast/v1/DDL { public field table Lorg/partiql/ast/v1/Identifier; public fun (Lorg/partiql/ast/v1/Identifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Exclude : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/Exclude : org/partiql/ast/v1/AstNode { public field excludePaths Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/ExcludePath : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/ExcludePath : org/partiql/ast/v1/AstNode { public field excludeSteps Ljava/util/List; public field root Lorg/partiql/ast/v1/expr/ExprVar; public fun (Lorg/partiql/ast/v1/expr/ExprVar;Ljava/util/List;)V @@ -5827,33 +5825,33 @@ public abstract class org/partiql/ast/v1/ExcludeStep : org/partiql/ast/v1/AstNod public fun ()V } -public final class org/partiql/ast/v1/ExcludeStep$CollIndex : org/partiql/ast/v1/ExcludeStep { +public class org/partiql/ast/v1/ExcludeStep$CollIndex : org/partiql/ast/v1/ExcludeStep { public field index I public fun (I)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/ExcludeStep$CollWildcard : org/partiql/ast/v1/ExcludeStep { - public static final field INSTANCE Lorg/partiql/ast/v1/ExcludeStep$CollWildcard; +public class org/partiql/ast/v1/ExcludeStep$CollWildcard : org/partiql/ast/v1/ExcludeStep { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/ExcludeStep$StructField : org/partiql/ast/v1/ExcludeStep { +public class org/partiql/ast/v1/ExcludeStep$StructField : org/partiql/ast/v1/ExcludeStep { public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/ExcludeStep$StructWildcard : org/partiql/ast/v1/ExcludeStep { - public static final field INSTANCE Lorg/partiql/ast/v1/ExcludeStep$StructWildcard; +public class org/partiql/ast/v1/ExcludeStep$StructWildcard : org/partiql/ast/v1/ExcludeStep { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Explain : org/partiql/ast/v1/Statement { +public class org/partiql/ast/v1/Explain : org/partiql/ast/v1/Statement { public field target Lorg/partiql/ast/v1/Target; public fun (Lorg/partiql/ast/v1/Target;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; @@ -5865,7 +5863,7 @@ public abstract class org/partiql/ast/v1/From : org/partiql/ast/v1/AstNode { public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/FromJoin : org/partiql/ast/v1/From { +public class org/partiql/ast/v1/FromJoin : org/partiql/ast/v1/From { public field condition Lorg/partiql/ast/v1/expr/Expr; public field lhs Lorg/partiql/ast/v1/From; public field rhs Lorg/partiql/ast/v1/From; @@ -5886,12 +5884,11 @@ public final class org/partiql/ast/v1/FromJoin$Type : java/lang/Enum { public static final field OTHER Lorg/partiql/ast/v1/FromJoin$Type; public static final field RIGHT Lorg/partiql/ast/v1/FromJoin$Type; public static final field RIGHT_OUTER Lorg/partiql/ast/v1/FromJoin$Type; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/FromJoin$Type; public static fun values ()[Lorg/partiql/ast/v1/FromJoin$Type; } -public final class org/partiql/ast/v1/FromValue : org/partiql/ast/v1/From { +public class org/partiql/ast/v1/FromValue : org/partiql/ast/v1/From { public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; public field atAlias Lorg/partiql/ast/v1/Identifier$Symbol; public field byAlias Lorg/partiql/ast/v1/Identifier$Symbol; @@ -5906,12 +5903,11 @@ public final class org/partiql/ast/v1/FromValue$Type : java/lang/Enum { public static final field OTHER Lorg/partiql/ast/v1/FromValue$Type; public static final field SCAN Lorg/partiql/ast/v1/FromValue$Type; public static final field UNPIVOT Lorg/partiql/ast/v1/FromValue$Type; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/FromValue$Type; public static fun values ()[Lorg/partiql/ast/v1/FromValue$Type; } -public final class org/partiql/ast/v1/GroupBy : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/GroupBy : org/partiql/ast/v1/AstNode { public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; public field keys Ljava/util/List; public field strategy Lorg/partiql/ast/v1/GroupBy$Strategy; @@ -5920,7 +5916,7 @@ public final class org/partiql/ast/v1/GroupBy : org/partiql/ast/v1/AstNode { public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GroupBy$Key : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/GroupBy$Key : org/partiql/ast/v1/AstNode { public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; public field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V @@ -5932,7 +5928,6 @@ public final class org/partiql/ast/v1/GroupBy$Strategy : java/lang/Enum { public static final field FULL Lorg/partiql/ast/v1/GroupBy$Strategy; public static final field OTHER Lorg/partiql/ast/v1/GroupBy$Strategy; public static final field PARTIAL Lorg/partiql/ast/v1/GroupBy$Strategy; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/GroupBy$Strategy; public static fun values ()[Lorg/partiql/ast/v1/GroupBy$Strategy; } @@ -5942,7 +5937,7 @@ public abstract class org/partiql/ast/v1/Identifier : org/partiql/ast/v1/AstNode public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/Identifier$Qualified : org/partiql/ast/v1/Identifier { +public class org/partiql/ast/v1/Identifier$Qualified : org/partiql/ast/v1/Identifier { public field root Lorg/partiql/ast/v1/Identifier$Symbol; public field steps Ljava/util/List; public fun (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/util/List;)V @@ -5950,7 +5945,7 @@ public final class org/partiql/ast/v1/Identifier$Qualified : org/partiql/ast/v1/ public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Identifier$Symbol : org/partiql/ast/v1/Identifier { +public class org/partiql/ast/v1/Identifier$Symbol : org/partiql/ast/v1/Identifier { public field caseSensitivity Lorg/partiql/ast/v1/CaseSensitivity; public field symbol Ljava/lang/String; public fun (Ljava/lang/String;Lorg/partiql/ast/v1/CaseSensitivity;)V @@ -5958,14 +5953,14 @@ public final class org/partiql/ast/v1/Identifier$Symbol : org/partiql/ast/v1/Ide public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Let : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/Let : org/partiql/ast/v1/AstNode { public field bindings Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Let$Binding : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/Let$Binding : org/partiql/ast/v1/AstNode { public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; public field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V @@ -5973,14 +5968,14 @@ public final class org/partiql/ast/v1/Let$Binding : org/partiql/ast/v1/AstNode { public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/OrderBy : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/OrderBy : org/partiql/ast/v1/AstNode { public field sorts Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/PathLit : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/PathLit : org/partiql/ast/v1/AstNode { public field root Lorg/partiql/ast/v1/Identifier$Symbol; public field steps Ljava/util/List; public fun (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/util/List;)V @@ -5992,14 +5987,14 @@ public abstract class org/partiql/ast/v1/PathLitStep : org/partiql/ast/v1/AstNod public fun ()V } -public final class org/partiql/ast/v1/PathLitStep$Index : org/partiql/ast/v1/PathLitStep { +public class org/partiql/ast/v1/PathLitStep$Index : org/partiql/ast/v1/PathLitStep { public field index I public fun (I)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/PathLitStep$Symbol : org/partiql/ast/v1/PathLitStep { +public class org/partiql/ast/v1/PathLitStep$Symbol : org/partiql/ast/v1/PathLitStep { public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; @@ -6011,14 +6006,14 @@ public abstract class org/partiql/ast/v1/ProjectItem : org/partiql/ast/v1/AstNod public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/ProjectItem$All : org/partiql/ast/v1/ProjectItem { +public class org/partiql/ast/v1/ProjectItem$All : org/partiql/ast/v1/ProjectItem { public field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/ProjectItem$Expression : org/partiql/ast/v1/ProjectItem { +public class org/partiql/ast/v1/ProjectItem$Expression : org/partiql/ast/v1/ProjectItem { public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; public field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V @@ -6026,7 +6021,7 @@ public final class org/partiql/ast/v1/ProjectItem$Expression : org/partiql/ast/v public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Query : org/partiql/ast/v1/Statement { +public class org/partiql/ast/v1/Query : org/partiql/ast/v1/Statement { public field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; @@ -6035,10 +6030,9 @@ public final class org/partiql/ast/v1/Query : org/partiql/ast/v1/Statement { public abstract class org/partiql/ast/v1/QueryBody : org/partiql/ast/v1/AstNode { public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/QueryBody$SFW : org/partiql/ast/v1/QueryBody { +public class org/partiql/ast/v1/QueryBody$SFW : org/partiql/ast/v1/QueryBody { public field exclude Lorg/partiql/ast/v1/Exclude; public field from Lorg/partiql/ast/v1/From; public field groupBy Lorg/partiql/ast/v1/GroupBy; @@ -6051,7 +6045,7 @@ public final class org/partiql/ast/v1/QueryBody$SFW : org/partiql/ast/v1/QueryBo public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/QueryBody$SetOp : org/partiql/ast/v1/QueryBody { +public class org/partiql/ast/v1/QueryBody$SetOp : org/partiql/ast/v1/QueryBody { public field isOuter Z public field lhs Lorg/partiql/ast/v1/expr/Expr; public field rhs Lorg/partiql/ast/v1/expr/Expr; @@ -6066,7 +6060,7 @@ public abstract class org/partiql/ast/v1/Select : org/partiql/ast/v1/AstNode { public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/SelectPivot : org/partiql/ast/v1/Select { +public class org/partiql/ast/v1/SelectPivot : org/partiql/ast/v1/Select { public field key Lorg/partiql/ast/v1/expr/Expr; public field value Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V @@ -6074,7 +6068,7 @@ public final class org/partiql/ast/v1/SelectPivot : org/partiql/ast/v1/Select { public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/SelectProject : org/partiql/ast/v1/Select { +public class org/partiql/ast/v1/SelectProject : org/partiql/ast/v1/Select { public field items Ljava/util/List; public field setq Lorg/partiql/ast/v1/SetQuantifier; public fun (Ljava/util/List;Lorg/partiql/ast/v1/SetQuantifier;)V @@ -6082,14 +6076,14 @@ public final class org/partiql/ast/v1/SelectProject : org/partiql/ast/v1/Select public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/SelectStar : org/partiql/ast/v1/Select { +public class org/partiql/ast/v1/SelectStar : org/partiql/ast/v1/Select { public field setq Lorg/partiql/ast/v1/SetQuantifier; public fun (Lorg/partiql/ast/v1/SetQuantifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/SelectValue : org/partiql/ast/v1/Select { +public class org/partiql/ast/v1/SelectValue : org/partiql/ast/v1/Select { public field constructor Lorg/partiql/ast/v1/expr/Expr; public field setq Lorg/partiql/ast/v1/SetQuantifier; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/SetQuantifier;)V @@ -6097,7 +6091,7 @@ public final class org/partiql/ast/v1/SelectValue : org/partiql/ast/v1/Select { public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/SetOp : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/SetOp : org/partiql/ast/v1/AstNode { public field setq Lorg/partiql/ast/v1/SetQuantifier; public field type Lorg/partiql/ast/v1/SetOp$Type; public fun (Lorg/partiql/ast/v1/SetOp$Type;Lorg/partiql/ast/v1/SetQuantifier;)V @@ -6110,7 +6104,6 @@ public final class org/partiql/ast/v1/SetOp$Type : java/lang/Enum { public static final field INTERSECT Lorg/partiql/ast/v1/SetOp$Type; public static final field OTHER Lorg/partiql/ast/v1/SetOp$Type; public static final field UNION Lorg/partiql/ast/v1/SetOp$Type; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/SetOp$Type; public static fun values ()[Lorg/partiql/ast/v1/SetOp$Type; } @@ -6119,12 +6112,11 @@ public final class org/partiql/ast/v1/SetQuantifier : java/lang/Enum { public static final field ALL Lorg/partiql/ast/v1/SetQuantifier; public static final field DISTINCT Lorg/partiql/ast/v1/SetQuantifier; public static final field OTHER Lorg/partiql/ast/v1/SetQuantifier; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/SetQuantifier; public static fun values ()[Lorg/partiql/ast/v1/SetQuantifier; } -public final class org/partiql/ast/v1/Sort : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/Sort : org/partiql/ast/v1/AstNode { public field dir Lorg/partiql/ast/v1/Sort$Dir; public field expr Lorg/partiql/ast/v1/expr/Expr; public field nulls Lorg/partiql/ast/v1/Sort$Nulls; @@ -6137,7 +6129,6 @@ public final class org/partiql/ast/v1/Sort$Dir : java/lang/Enum { public static final field ASC Lorg/partiql/ast/v1/Sort$Dir; public static final field DESC Lorg/partiql/ast/v1/Sort$Dir; public static final field OTHER Lorg/partiql/ast/v1/Sort$Dir; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Sort$Dir; public static fun values ()[Lorg/partiql/ast/v1/Sort$Dir; } @@ -6146,7 +6137,6 @@ public final class org/partiql/ast/v1/Sort$Nulls : java/lang/Enum { public static final field FIRST Lorg/partiql/ast/v1/Sort$Nulls; public static final field LAST Lorg/partiql/ast/v1/Sort$Nulls; public static final field OTHER Lorg/partiql/ast/v1/Sort$Nulls; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Sort$Nulls; public static fun values ()[Lorg/partiql/ast/v1/Sort$Nulls; } @@ -6156,7 +6146,7 @@ public abstract class org/partiql/ast/v1/Statement : org/partiql/ast/v1/AstNode public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/TableDefinition : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/TableDefinition : org/partiql/ast/v1/AstNode { public field columns Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; @@ -6168,7 +6158,7 @@ public abstract class org/partiql/ast/v1/Target : org/partiql/ast/v1/AstNode { public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/Target$Domain : org/partiql/ast/v1/Target { +public class org/partiql/ast/v1/Target$Domain : org/partiql/ast/v1/Target { public field format Ljava/lang/String; public field statement Lorg/partiql/ast/v1/Statement; public field type Ljava/lang/String; @@ -6182,7 +6172,7 @@ public abstract class org/partiql/ast/v1/expr/Expr : org/partiql/ast/v1/AstNode public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/expr/ExprAnd : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprAnd : org/partiql/ast/v1/expr/Expr { public field lhs Lorg/partiql/ast/v1/expr/Expr; public field rhs Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V @@ -6190,17 +6180,17 @@ public final class org/partiql/ast/v1/expr/ExprAnd : org/partiql/ast/v1/expr/Exp public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprBetween : org/partiql/ast/v1/expr/Expr { - public field from Lorg/partiql/ast/v1/expr/Expr; - public field not Ljava/lang/Boolean; - public field to Lorg/partiql/ast/v1/expr/Expr; - public field value Lorg/partiql/ast/v1/expr/Expr; +public class org/partiql/ast/v1/expr/ExprBetween : org/partiql/ast/v1/expr/Expr { + public final field from Lorg/partiql/ast/v1/expr/Expr; + public final field not Ljava/lang/Boolean; + public final field to Lorg/partiql/ast/v1/expr/Expr; + public final field value Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/Boolean;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprCall : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprCall : org/partiql/ast/v1/expr/Expr { public field args Ljava/util/List; public field function Lorg/partiql/ast/v1/Identifier; public field setq Lorg/partiql/ast/v1/SetQuantifier; @@ -6209,41 +6199,41 @@ public final class org/partiql/ast/v1/expr/ExprCall : org/partiql/ast/v1/expr/Ex public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprCase : org/partiql/ast/v1/expr/Expr { - public field branches Ljava/util/List; - public field default Lorg/partiql/ast/v1/expr/Expr; - public field expr Lorg/partiql/ast/v1/expr/Expr; +public class org/partiql/ast/v1/expr/ExprCase : org/partiql/ast/v1/expr/Expr { + public final field branches Ljava/util/List; + public final field defaultExpr Lorg/partiql/ast/v1/expr/Expr; + public final field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Ljava/util/List;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprCase$Branch : org/partiql/ast/v1/AstNode { - public field condition Lorg/partiql/ast/v1/expr/Expr; - public field expr Lorg/partiql/ast/v1/expr/Expr; +public class org/partiql/ast/v1/expr/ExprCase$Branch : org/partiql/ast/v1/AstNode { + public final field condition Lorg/partiql/ast/v1/expr/Expr; + public final field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprCast : org/partiql/ast/v1/expr/Expr { - public field asType Lorg/partiql/ast/v1/type/Type; - public field value Lorg/partiql/ast/v1/expr/Expr; +public class org/partiql/ast/v1/expr/ExprCast : org/partiql/ast/v1/expr/Expr { + public final field asType Lorg/partiql/ast/v1/type/Type; + public final field value Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/type/Type;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprCoalesce : org/partiql/ast/v1/expr/Expr { - public field args Ljava/util/List; +public class org/partiql/ast/v1/expr/ExprCoalesce : org/partiql/ast/v1/expr/Expr { + public final field args Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprCollection : org/partiql/ast/v1/expr/Expr { - public field type Lorg/partiql/ast/v1/expr/ExprCollection$Type; - public field values Ljava/util/List; +public class org/partiql/ast/v1/expr/ExprCollection : org/partiql/ast/v1/expr/Expr { + public final field type Lorg/partiql/ast/v1/expr/ExprCollection$Type; + public final field values Ljava/util/List; public fun (Lorg/partiql/ast/v1/expr/ExprCollection$Type;Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; @@ -6256,12 +6246,11 @@ public final class org/partiql/ast/v1/expr/ExprCollection$Type : java/lang/Enum public static final field OTHER Lorg/partiql/ast/v1/expr/ExprCollection$Type; public static final field SEXP Lorg/partiql/ast/v1/expr/ExprCollection$Type; public static final field VALUES Lorg/partiql/ast/v1/expr/ExprCollection$Type; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprCollection$Type; public static fun values ()[Lorg/partiql/ast/v1/expr/ExprCollection$Type; } -public final class org/partiql/ast/v1/expr/ExprDateAdd : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprDateAdd : org/partiql/ast/v1/expr/Expr { public field field Lorg/partiql/ast/v1/DatetimeField; public field lhs Lorg/partiql/ast/v1/expr/Expr; public field rhs Lorg/partiql/ast/v1/expr/Expr; @@ -6270,7 +6259,7 @@ public final class org/partiql/ast/v1/expr/ExprDateAdd : org/partiql/ast/v1/expr public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprDateDiff : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprDateDiff : org/partiql/ast/v1/expr/Expr { public field field Lorg/partiql/ast/v1/DatetimeField; public field lhs Lorg/partiql/ast/v1/expr/Expr; public field rhs Lorg/partiql/ast/v1/expr/Expr; @@ -6279,7 +6268,7 @@ public final class org/partiql/ast/v1/expr/ExprDateDiff : org/partiql/ast/v1/exp public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprExtract : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprExtract : org/partiql/ast/v1/expr/Expr { public field field Lorg/partiql/ast/v1/DatetimeField; public field source Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/expr/Expr;)V @@ -6287,7 +6276,7 @@ public final class org/partiql/ast/v1/expr/ExprExtract : org/partiql/ast/v1/expr public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprInCollection : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprInCollection : org/partiql/ast/v1/expr/Expr { public field lhs Lorg/partiql/ast/v1/expr/Expr; public field not Ljava/lang/Boolean; public field rhs Lorg/partiql/ast/v1/expr/Expr; @@ -6296,15 +6285,14 @@ public final class org/partiql/ast/v1/expr/ExprInCollection : org/partiql/ast/v1 public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprIon : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprIon : org/partiql/ast/v1/expr/Expr { public field value Lcom/amazon/ionelement/api/IonElement; public fun (Lcom/amazon/ionelement/api/IonElement;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public synthetic fun children ()Ljava/util/Collection; - public fun children ()Ljava/util/List; + public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprIsType : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprIsType : org/partiql/ast/v1/expr/Expr { public field not Ljava/lang/Boolean; public field type Lorg/partiql/ast/v1/type/Type; public field value Lorg/partiql/ast/v1/expr/Expr; @@ -6313,7 +6301,7 @@ public final class org/partiql/ast/v1/expr/ExprIsType : org/partiql/ast/v1/expr/ public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprLike : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprLike : org/partiql/ast/v1/expr/Expr { public field escape Lorg/partiql/ast/v1/expr/Expr; public field not Ljava/lang/Boolean; public field pattern Lorg/partiql/ast/v1/expr/Expr; @@ -6323,14 +6311,14 @@ public final class org/partiql/ast/v1/expr/ExprLike : org/partiql/ast/v1/expr/Ex public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprLit : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprLit : org/partiql/ast/v1/expr/Expr { public field value Lorg/partiql/value/PartiQLValue; public fun (Lorg/partiql/value/PartiQLValue;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprMatch : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprMatch : org/partiql/ast/v1/expr/Expr { public field expr Lorg/partiql/ast/v1/expr/Expr; public field pattern Lorg/partiql/ast/v1/graph/GraphMatch; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/graph/GraphMatch;)V @@ -6338,14 +6326,14 @@ public final class org/partiql/ast/v1/expr/ExprMatch : org/partiql/ast/v1/expr/E public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprNot : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprNot : org/partiql/ast/v1/expr/Expr { public field value Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprNullIf : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprNullIf : org/partiql/ast/v1/expr/Expr { public field nullifier Lorg/partiql/ast/v1/expr/Expr; public field value Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V @@ -6353,7 +6341,7 @@ public final class org/partiql/ast/v1/expr/ExprNullIf : org/partiql/ast/v1/expr/ public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprOperator : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprOperator : org/partiql/ast/v1/expr/Expr { public field lhs Lorg/partiql/ast/v1/expr/Expr; public field rhs Lorg/partiql/ast/v1/expr/Expr; public field symbol Ljava/lang/String; @@ -6362,7 +6350,7 @@ public final class org/partiql/ast/v1/expr/ExprOperator : org/partiql/ast/v1/exp public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprOr : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprOr : org/partiql/ast/v1/expr/Expr { public field lhs Lorg/partiql/ast/v1/expr/Expr; public field rhs Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V @@ -6370,24 +6358,24 @@ public final class org/partiql/ast/v1/expr/ExprOr : org/partiql/ast/v1/expr/Expr public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprOverlay : org/partiql/ast/v1/expr/Expr { - public field length Lorg/partiql/ast/v1/expr/Expr; - public field overlay Lorg/partiql/ast/v1/expr/Expr; - public field start Lorg/partiql/ast/v1/expr/Expr; +public class org/partiql/ast/v1/expr/ExprOverlay : org/partiql/ast/v1/expr/Expr { + public field forLength Lorg/partiql/ast/v1/expr/Expr; + public field from Lorg/partiql/ast/v1/expr/Expr; + public field placing Lorg/partiql/ast/v1/expr/Expr; public field value Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprParameter : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprParameter : org/partiql/ast/v1/expr/Expr { public field index I public fun (I)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprPath : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprPath : org/partiql/ast/v1/expr/Expr { public field root Lorg/partiql/ast/v1/expr/Expr; public field steps Ljava/util/List; public fun (Lorg/partiql/ast/v1/expr/Expr;Ljava/util/List;)V @@ -6397,36 +6385,35 @@ public final class org/partiql/ast/v1/expr/ExprPath : org/partiql/ast/v1/expr/Ex public abstract class org/partiql/ast/v1/expr/ExprPathStep : org/partiql/ast/v1/AstNode { public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/expr/ExprPathStep$Index : org/partiql/ast/v1/expr/ExprPathStep { +public class org/partiql/ast/v1/expr/ExprPathStep$Index : org/partiql/ast/v1/expr/ExprPathStep { public field key Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprPathStep$Symbol : org/partiql/ast/v1/expr/ExprPathStep { +public class org/partiql/ast/v1/expr/ExprPathStep$Symbol : org/partiql/ast/v1/expr/ExprPathStep { public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprPathStep$Unpivot : org/partiql/ast/v1/expr/ExprPathStep { - public static final field INSTANCE Lorg/partiql/ast/v1/expr/ExprPathStep$Unpivot; +public class org/partiql/ast/v1/expr/ExprPathStep$Unpivot : org/partiql/ast/v1/expr/ExprPathStep { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprPathStep$Wildcard : org/partiql/ast/v1/expr/ExprPathStep { - public static final field INSTANCE Lorg/partiql/ast/v1/expr/ExprPathStep$Wildcard; +public class org/partiql/ast/v1/expr/ExprPathStep$Wildcard : org/partiql/ast/v1/expr/ExprPathStep { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprPosition : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprPosition : org/partiql/ast/v1/expr/Expr { public field lhs Lorg/partiql/ast/v1/expr/Expr; public field rhs Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V @@ -6434,7 +6421,7 @@ public final class org/partiql/ast/v1/expr/ExprPosition : org/partiql/ast/v1/exp public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprQuerySet : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprQuerySet : org/partiql/ast/v1/expr/Expr { public field body Lorg/partiql/ast/v1/QueryBody; public field limit Lorg/partiql/ast/v1/expr/Expr; public field offset Lorg/partiql/ast/v1/expr/Expr; @@ -6444,7 +6431,7 @@ public final class org/partiql/ast/v1/expr/ExprQuerySet : org/partiql/ast/v1/exp public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprSessionAttribute : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprSessionAttribute : org/partiql/ast/v1/expr/Expr { public field attribute Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; public fun (Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; @@ -6455,19 +6442,18 @@ public final class org/partiql/ast/v1/expr/ExprSessionAttribute$Attribute : java public static final field CURRENT_DATE Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; public static final field CURRENT_USER Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; public static final field OTHER Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; public static fun values ()[Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; } -public final class org/partiql/ast/v1/expr/ExprStruct : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprStruct : org/partiql/ast/v1/expr/Expr { public field fields Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprStruct$Field : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/expr/ExprStruct$Field : org/partiql/ast/v1/AstNode { public field name Lorg/partiql/ast/v1/expr/Expr; public field value Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V @@ -6475,7 +6461,7 @@ public final class org/partiql/ast/v1/expr/ExprStruct$Field : org/partiql/ast/v1 public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprSubstring : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprSubstring : org/partiql/ast/v1/expr/Expr { public field length Lorg/partiql/ast/v1/expr/Expr; public field start Lorg/partiql/ast/v1/expr/Expr; public field value Lorg/partiql/ast/v1/expr/Expr; @@ -6484,7 +6470,7 @@ public final class org/partiql/ast/v1/expr/ExprSubstring : org/partiql/ast/v1/ex public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprTrim : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprTrim : org/partiql/ast/v1/expr/Expr { public field chars Lorg/partiql/ast/v1/expr/Expr; public field spec Lorg/partiql/ast/v1/expr/ExprTrim$Spec; public field value Lorg/partiql/ast/v1/expr/Expr; @@ -6498,26 +6484,25 @@ public final class org/partiql/ast/v1/expr/ExprTrim$Spec : java/lang/Enum { public static final field LEADING Lorg/partiql/ast/v1/expr/ExprTrim$Spec; public static final field OTHER Lorg/partiql/ast/v1/expr/ExprTrim$Spec; public static final field TRAILING Lorg/partiql/ast/v1/expr/ExprTrim$Spec; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprTrim$Spec; public static fun values ()[Lorg/partiql/ast/v1/expr/ExprTrim$Spec; } -public final class org/partiql/ast/v1/expr/ExprValues : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprValues : org/partiql/ast/v1/expr/Expr { public field rows Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprValues$Row : org/partiql/ast/v1/AstNode { - public field items Ljava/util/List; +public class org/partiql/ast/v1/expr/ExprValues$Row : org/partiql/ast/v1/AstNode { + public field values Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprVar : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprVar : org/partiql/ast/v1/expr/Expr { public field identifier Lorg/partiql/ast/v1/Identifier; public field scope Lorg/partiql/ast/v1/expr/ExprVar$Scope; public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/expr/ExprVar$Scope;)V @@ -6529,13 +6514,12 @@ public final class org/partiql/ast/v1/expr/ExprVar$Scope : java/lang/Enum { public static final field DEFAULT Lorg/partiql/ast/v1/expr/ExprVar$Scope; public static final field LOCAL Lorg/partiql/ast/v1/expr/ExprVar$Scope; public static final field OTHER Lorg/partiql/ast/v1/expr/ExprVar$Scope; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprVar$Scope; public static fun values ()[Lorg/partiql/ast/v1/expr/ExprVar$Scope; } -public final class org/partiql/ast/v1/expr/ExprWindow : org/partiql/ast/v1/expr/Expr { - public field default Lorg/partiql/ast/v1/expr/Expr; +public class org/partiql/ast/v1/expr/ExprWindow : org/partiql/ast/v1/expr/Expr { + public field defaultValue Lorg/partiql/ast/v1/expr/Expr; public field expression Lorg/partiql/ast/v1/expr/Expr; public field function Lorg/partiql/ast/v1/expr/ExprWindow$Function; public field offset Lorg/partiql/ast/v1/expr/Expr; @@ -6549,12 +6533,11 @@ public final class org/partiql/ast/v1/expr/ExprWindow$Function : java/lang/Enum public static final field LAG Lorg/partiql/ast/v1/expr/ExprWindow$Function; public static final field LEAD Lorg/partiql/ast/v1/expr/ExprWindow$Function; public static final field OTHER Lorg/partiql/ast/v1/expr/ExprWindow$Function; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprWindow$Function; public static fun values ()[Lorg/partiql/ast/v1/expr/ExprWindow$Function; } -public final class org/partiql/ast/v1/expr/ExprWindow$Over : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/expr/ExprWindow$Over : org/partiql/ast/v1/AstNode { public field partitions Ljava/util/List; public field sorts Ljava/util/List; public fun (Ljava/util/List;Ljava/util/List;)V @@ -6571,7 +6554,6 @@ public final class org/partiql/ast/v1/graph/GraphDirection : java/lang/Enum { public static final field RIGHT Lorg/partiql/ast/v1/graph/GraphDirection; public static final field UNDIRECTED Lorg/partiql/ast/v1/graph/GraphDirection; public static final field UNDIRECTED_OR_RIGHT Lorg/partiql/ast/v1/graph/GraphDirection; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/graph/GraphDirection; public static fun values ()[Lorg/partiql/ast/v1/graph/GraphDirection; } @@ -6581,43 +6563,41 @@ public abstract class org/partiql/ast/v1/graph/GraphLabel : org/partiql/ast/v1/A public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/graph/GraphLabel$Conj : org/partiql/ast/v1/graph/GraphLabel { - public field lhs Lorg/partiql/ast/v1/graph/GraphLabel; - public field rhs Lorg/partiql/ast/v1/graph/GraphLabel; - public fun (Lorg/partiql/ast/v1/graph/GraphLabel;Lorg/partiql/ast/v1/graph/GraphLabel;)V +public class org/partiql/ast/v1/graph/GraphLabel$Conj : org/partiql/ast/v1/graph/GraphLabel { + public field args Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphLabel$Disj : org/partiql/ast/v1/graph/GraphLabel { - public field lhs Lorg/partiql/ast/v1/graph/GraphLabel; - public field rhs Lorg/partiql/ast/v1/graph/GraphLabel; - public fun (Lorg/partiql/ast/v1/graph/GraphLabel;Lorg/partiql/ast/v1/graph/GraphLabel;)V +public class org/partiql/ast/v1/graph/GraphLabel$Disj : org/partiql/ast/v1/graph/GraphLabel { + public field args Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphLabel$Name : org/partiql/ast/v1/graph/GraphLabel { +public class org/partiql/ast/v1/graph/GraphLabel$Name : org/partiql/ast/v1/graph/GraphLabel { public field name Ljava/lang/String; public fun (Ljava/lang/String;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphLabel$Negation : org/partiql/ast/v1/graph/GraphLabel { +public class org/partiql/ast/v1/graph/GraphLabel$Negation : org/partiql/ast/v1/graph/GraphLabel { public field arg Lorg/partiql/ast/v1/graph/GraphLabel; public fun (Lorg/partiql/ast/v1/graph/GraphLabel;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphLabel$Wildcard : org/partiql/ast/v1/graph/GraphLabel { - public static final field INSTANCE Lorg/partiql/ast/v1/graph/GraphLabel$Wildcard; +public class org/partiql/ast/v1/graph/GraphLabel$Wildcard : org/partiql/ast/v1/graph/GraphLabel { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphMatch : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/graph/GraphMatch : org/partiql/ast/v1/AstNode { public field patterns Ljava/util/List; public field selector Lorg/partiql/ast/v1/graph/GraphSelector; public fun (Ljava/util/List;Lorg/partiql/ast/v1/graph/GraphSelector;)V @@ -6630,7 +6610,7 @@ public abstract class org/partiql/ast/v1/graph/GraphPart : org/partiql/ast/v1/As public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/graph/GraphPart$Edge : org/partiql/ast/v1/graph/GraphPart { +public class org/partiql/ast/v1/graph/GraphPart$Edge : org/partiql/ast/v1/graph/GraphPart { public field direction Lorg/partiql/ast/v1/graph/GraphDirection; public field label Lorg/partiql/ast/v1/graph/GraphLabel; public field prefilter Lorg/partiql/ast/v1/expr/Expr; @@ -6641,7 +6621,7 @@ public final class org/partiql/ast/v1/graph/GraphPart$Edge : org/partiql/ast/v1/ public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphPart$Node : org/partiql/ast/v1/graph/GraphPart { +public class org/partiql/ast/v1/graph/GraphPart$Node : org/partiql/ast/v1/graph/GraphPart { public field label Lorg/partiql/ast/v1/graph/GraphLabel; public field prefilter Lorg/partiql/ast/v1/expr/Expr; public field variable Ljava/lang/String; @@ -6650,14 +6630,14 @@ public final class org/partiql/ast/v1/graph/GraphPart$Node : org/partiql/ast/v1/ public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphPart$Pattern : org/partiql/ast/v1/graph/GraphPart { +public class org/partiql/ast/v1/graph/GraphPart$Pattern : org/partiql/ast/v1/graph/GraphPart { public field pattern Lorg/partiql/ast/v1/graph/GraphPattern; public fun (Lorg/partiql/ast/v1/graph/GraphPattern;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphPattern : org/partiql/ast/v1/AstNode { +public class org/partiql/ast/v1/graph/GraphPattern : org/partiql/ast/v1/AstNode { public field parts Ljava/util/List; public field prefilter Lorg/partiql/ast/v1/expr/Expr; public field quantifier Lorg/partiql/ast/v1/graph/GraphQuantifier; @@ -6668,10 +6648,10 @@ public final class org/partiql/ast/v1/graph/GraphPattern : org/partiql/ast/v1/As public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphQuantifier : org/partiql/ast/v1/AstNode { - public field lower J +public class org/partiql/ast/v1/graph/GraphQuantifier : org/partiql/ast/v1/AstNode { + public field lower Ljava/lang/Long; public field upper Ljava/lang/Long; - public fun (JLjava/lang/Long;)V + public fun (Ljava/lang/Long;Ljava/lang/Long;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -6681,7 +6661,6 @@ public final class org/partiql/ast/v1/graph/GraphRestrictor : java/lang/Enum { public static final field OTHER Lorg/partiql/ast/v1/graph/GraphRestrictor; public static final field SIMPLE Lorg/partiql/ast/v1/graph/GraphRestrictor; public static final field TRAIL Lorg/partiql/ast/v1/graph/GraphRestrictor; - public static fun getEntries ()Lkotlin/enums/EnumEntries; public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/graph/GraphRestrictor; public static fun values ()[Lorg/partiql/ast/v1/graph/GraphRestrictor; } @@ -6691,39 +6670,39 @@ public abstract class org/partiql/ast/v1/graph/GraphSelector : org/partiql/ast/v public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/graph/GraphSelector$AllShortest : org/partiql/ast/v1/graph/GraphSelector { - public static final field INSTANCE Lorg/partiql/ast/v1/graph/GraphSelector$AllShortest; +public class org/partiql/ast/v1/graph/GraphSelector$AllShortest : org/partiql/ast/v1/graph/GraphSelector { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphSelector$Any : org/partiql/ast/v1/graph/GraphSelector { - public static final field INSTANCE Lorg/partiql/ast/v1/graph/GraphSelector$Any; +public class org/partiql/ast/v1/graph/GraphSelector$Any : org/partiql/ast/v1/graph/GraphSelector { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphSelector$AnyK : org/partiql/ast/v1/graph/GraphSelector { +public class org/partiql/ast/v1/graph/GraphSelector$AnyK : org/partiql/ast/v1/graph/GraphSelector { public field k J public fun (J)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphSelector$AnyShortest : org/partiql/ast/v1/graph/GraphSelector { - public static final field INSTANCE Lorg/partiql/ast/v1/graph/GraphSelector$AnyShortest; +public class org/partiql/ast/v1/graph/GraphSelector$AnyShortest : org/partiql/ast/v1/graph/GraphSelector { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphSelector$ShortestK : org/partiql/ast/v1/graph/GraphSelector { +public class org/partiql/ast/v1/graph/GraphSelector$ShortestK : org/partiql/ast/v1/graph/GraphSelector { public field k J public fun (J)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphSelector$ShortestKGroup : org/partiql/ast/v1/graph/GraphSelector { +public class org/partiql/ast/v1/graph/GraphSelector$ShortestKGroup : org/partiql/ast/v1/graph/GraphSelector { public field k J public fun (J)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; @@ -6735,86 +6714,86 @@ public abstract class org/partiql/ast/v1/type/Type : org/partiql/ast/v1/AstNode public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/type/TypeAny : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeAny; +public class org/partiql/ast/v1/type/TypeAny : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeBag : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeBag; +public class org/partiql/ast/v1/type/TypeBag : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeBigint : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeBigint; +public class org/partiql/ast/v1/type/TypeBigint : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeBit : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeBit : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeBitVarying : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeBitVarying : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeBlob : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeBlob : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeBool : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeBool : org/partiql/ast/v1/type/Type { public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeBool; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeByteString : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeByteString : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeChar : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeChar : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeClob : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeClob : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeCustom : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeCustom : org/partiql/ast/v1/type/Type { public field name Ljava/lang/String; public fun (Ljava/lang/String;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeDate : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeDate : org/partiql/ast/v1/type/Type { public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeDate; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeDecimal : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeDecimal : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public field scale Ljava/lang/Integer; public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V @@ -6822,68 +6801,68 @@ public final class org/partiql/ast/v1/type/TypeDecimal : org/partiql/ast/v1/type public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeFloat32 : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeFloat32; +public class org/partiql/ast/v1/type/TypeFloat32 : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeFloat64 : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeFloat64; +public class org/partiql/ast/v1/type/TypeFloat64 : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeInt : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeInt; +public class org/partiql/ast/v1/type/TypeInt : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeInt2 : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeInt2; +public class org/partiql/ast/v1/type/TypeInt2 : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeInt4 : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeInt4; +public class org/partiql/ast/v1/type/TypeInt4 : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeInt8 : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeInt8; +public class org/partiql/ast/v1/type/TypeInt8 : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeInterval : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeInterval : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeList : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeList; +public class org/partiql/ast/v1/type/TypeList : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeMissing : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeMissing; +public class org/partiql/ast/v1/type/TypeMissing : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeNull : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeNull; +public class org/partiql/ast/v1/type/TypeNull : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeNumeric : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeNumeric : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public field scale Ljava/lang/Integer; public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V @@ -6891,84 +6870,84 @@ public final class org/partiql/ast/v1/type/TypeNumeric : org/partiql/ast/v1/type public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeReal : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeReal; +public class org/partiql/ast/v1/type/TypeReal : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeSexp : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeSexp; +public class org/partiql/ast/v1/type/TypeSexp : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeSmallint : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeSmallint; +public class org/partiql/ast/v1/type/TypeSmallint : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeString : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeString : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeStruct : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeStruct; +public class org/partiql/ast/v1/type/TypeStruct : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeSymbol : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeSymbol; +public class org/partiql/ast/v1/type/TypeSymbol : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeTime : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeTime : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeTimeWithTz : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeTimeWithTz : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeTimestamp : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeTimestamp : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeTimestampWithTz : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeTimestampWithTz : org/partiql/ast/v1/type/Type { public field precision Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeTinyint : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeTinyint; +public class org/partiql/ast/v1/type/TypeTinyint : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeTuple : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeTuple; +public class org/partiql/ast/v1/type/TypeTuple : org/partiql/ast/v1/type/Type { + public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/type/TypeVarchar : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeVarchar : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/AstNode.java b/partiql-ast/src/main/java/org/partiql/ast/v1/AstNode.java new file mode 100644 index 0000000000..232ca783f6 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/AstNode.java @@ -0,0 +1,19 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.Random; + +/** + * TODO docs, equals, hashcode + */ +public abstract class AstNode { + @NotNull + public String tag = "Ast-" + String.format("%06x", new Random().nextInt()); + + @NotNull + public abstract Collection children(); + + public abstract R accept(@NotNull AstVisitor visitor, C ctx); +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java new file mode 100644 index 0000000000..b1494a7817 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java @@ -0,0 +1,394 @@ +package org.partiql.ast.v1; + +import org.partiql.ast.v1.expr.Expr; +import org.partiql.ast.v1.expr.ExprAnd; +import org.partiql.ast.v1.expr.ExprBetween; +import org.partiql.ast.v1.expr.ExprCall; +import org.partiql.ast.v1.expr.ExprCase; +import org.partiql.ast.v1.expr.ExprCast; +import org.partiql.ast.v1.expr.ExprCoalesce; +import org.partiql.ast.v1.expr.ExprCollection; +import org.partiql.ast.v1.expr.ExprDateAdd; +import org.partiql.ast.v1.expr.ExprDateDiff; +import org.partiql.ast.v1.expr.ExprExtract; +import org.partiql.ast.v1.expr.ExprInCollection; +import org.partiql.ast.v1.expr.ExprIon; +import org.partiql.ast.v1.expr.ExprIsType; +import org.partiql.ast.v1.expr.ExprLike; +import org.partiql.ast.v1.expr.ExprLit; +import org.partiql.ast.v1.expr.ExprMatch; +import org.partiql.ast.v1.expr.ExprNot; +import org.partiql.ast.v1.expr.ExprNullIf; +import org.partiql.ast.v1.expr.ExprOperator; +import org.partiql.ast.v1.expr.ExprOr; +import org.partiql.ast.v1.expr.ExprOverlay; +import org.partiql.ast.v1.expr.ExprParameter; +import org.partiql.ast.v1.expr.ExprPath; +import org.partiql.ast.v1.expr.ExprPathStep; +import org.partiql.ast.v1.expr.ExprPosition; +import org.partiql.ast.v1.expr.ExprQuerySet; +import org.partiql.ast.v1.expr.ExprSessionAttribute; +import org.partiql.ast.v1.expr.ExprStruct; +import org.partiql.ast.v1.expr.ExprSubstring; +import org.partiql.ast.v1.expr.ExprTrim; +import org.partiql.ast.v1.expr.ExprValues; +import org.partiql.ast.v1.expr.ExprVar; +import org.partiql.ast.v1.expr.ExprWindow; +import org.partiql.ast.v1.graph.GraphLabel; +import org.partiql.ast.v1.graph.GraphMatch; +import org.partiql.ast.v1.graph.GraphPart; +import org.partiql.ast.v1.graph.GraphPattern; +import org.partiql.ast.v1.graph.GraphQuantifier; +import org.partiql.ast.v1.graph.GraphSelector; +import org.partiql.ast.v1.type.Type; +import org.partiql.ast.v1.type.TypeAny; +import org.partiql.ast.v1.type.TypeBag; +import org.partiql.ast.v1.type.TypeBigint; +import org.partiql.ast.v1.type.TypeBit; +import org.partiql.ast.v1.type.TypeBitVarying; +import org.partiql.ast.v1.type.TypeBlob; +import org.partiql.ast.v1.type.TypeBool; +import org.partiql.ast.v1.type.TypeByteString; +import org.partiql.ast.v1.type.TypeChar; +import org.partiql.ast.v1.type.TypeClob; +import org.partiql.ast.v1.type.TypeCustom; +import org.partiql.ast.v1.type.TypeDate; +import org.partiql.ast.v1.type.TypeDecimal; +import org.partiql.ast.v1.type.TypeFloat32; +import org.partiql.ast.v1.type.TypeFloat64; +import org.partiql.ast.v1.type.TypeInt; +import org.partiql.ast.v1.type.TypeInt2; +import org.partiql.ast.v1.type.TypeInt4; +import org.partiql.ast.v1.type.TypeInt8; +import org.partiql.ast.v1.type.TypeInterval; +import org.partiql.ast.v1.type.TypeList; +import org.partiql.ast.v1.type.TypeMissing; +import org.partiql.ast.v1.type.TypeNull; +import org.partiql.ast.v1.type.TypeNumeric; +import org.partiql.ast.v1.type.TypeReal; +import org.partiql.ast.v1.type.TypeSexp; +import org.partiql.ast.v1.type.TypeSmallint; +import org.partiql.ast.v1.type.TypeString; +import org.partiql.ast.v1.type.TypeStruct; +import org.partiql.ast.v1.type.TypeSymbol; +import org.partiql.ast.v1.type.TypeTime; +import org.partiql.ast.v1.type.TypeTimeWithTz; +import org.partiql.ast.v1.type.TypeTimestamp; +import org.partiql.ast.v1.type.TypeTimestampWithTz; +import org.partiql.ast.v1.type.TypeTinyint; +import org.partiql.ast.v1.type.TypeTuple; +import org.partiql.ast.v1.type.TypeVarchar; + +public interface AstVisitor { + R visit(AstNode node, C ctx); + + R visitStatement(Statement node, C ctx); + + R visitQuery(Query node, C ctx); + + R visitDDL(DDL node, C ctx); + + R visitCreateTable(CreateTable node, C ctx); + + R visitCreateIndex(CreateIndex node, C ctx); + + R visitDropTable(DropTable node, C ctx); + + R visitDropIndex(DropIndex node, C ctx); + + R visitExplain(Explain node, C ctx); + + R visitTarget(Target node, C ctx); + + R visitTargetDomain(Target.Domain node, C ctx); + + R visitType(Type node, C ctx); + + R visitTypeNull(TypeNull node, C ctx); + + R visitTypeMissing(TypeMissing node, C ctx); + + R visitTypeBool(TypeBool node, C ctx); + + R visitTypeTinyint(TypeTinyint node, C ctx); + + R visitTypeSmallint(TypeSmallint node, C ctx); + + R visitTypeInt2(TypeInt2 node, C ctx); + + R visitTypeInt4(TypeInt4 node, C ctx); + + R visitTypeBigint(TypeBigint node, C ctx); + + R visitTypeInt8(TypeInt8 node, C ctx); + + R visitTypeInt(TypeInt node, C ctx); + + R visitTypeReal(TypeReal node, C ctx); + + R visitTypeFloat32(TypeFloat32 node, C ctx); + + R visitTypeFloat64(TypeFloat64 node, C ctx); + + R visitTypeDecimal(TypeDecimal node, C ctx); + + R visitTypeNumeric(TypeNumeric node, C ctx); + + R visitTypeChar(TypeChar node, C ctx); + + R visitTypeVarchar(TypeVarchar node, C ctx); + + R visitTypeString(TypeString node, C ctx); + + R visitTypeSymbol(TypeSymbol node, C ctx); + + R visitTypeBit(TypeBit node, C ctx); + + R visitTypeBitVarying(TypeBitVarying node, C ctx); + + R visitTypeByteString(TypeByteString node, C ctx); + + R visitTypeBlob(TypeBlob node, C ctx); + + R visitTypeClob(TypeClob node, C ctx); + + R visitTypeDate(TypeDate node, C ctx); + + R visitTypeTime(TypeTime node, C ctx); + + R visitTypeTimeWithTz(TypeTimeWithTz node, C ctx); + + R visitTypeTimestamp(TypeTimestamp node, C ctx); + + R visitTypeTimestampWithTz(TypeTimestampWithTz node, C ctx); + + R visitTypeInterval(TypeInterval node, C ctx); + + R visitTypeBag(TypeBag node, C ctx); + + R visitTypeList(TypeList node, C ctx); + + R visitTypeSexp(TypeSexp node, C ctx); + + R visitTypeTuple(TypeTuple node, C ctx); + + R visitTypeStruct(TypeStruct node, C ctx); + + R visitTypeAny(TypeAny node, C ctx); + + R visitTypeCustom(TypeCustom node, C ctx); + + R visitIdentifier(Identifier node, C ctx); + + R visitIdentifierSymbol(Identifier.Symbol node, C ctx); + + R visitIdentifierQualified(Identifier.Qualified node, C ctx); + + R visitPathLit(PathLit node, C ctx); + + R visitPathLitStep(PathLitStep node, C ctx); + + R visitPathLitStepSymbol(PathLitStep.Symbol node, C ctx); + + R visitPathLitStepIndex(PathLitStep.Index node, C ctx); + + R visitExpr(Expr node, C ctx); + + R visitExprLit(ExprLit node, C ctx); + + R visitExprIon(ExprIon node, C ctx); + + R visitExprVar(ExprVar node, C ctx); + + R visitExprSessionAttribute(ExprSessionAttribute node, C ctx); + + R visitExprPath(ExprPath node, C ctx); + + R visitExprPathStep(ExprPathStep node, C ctx); + + R visitExprPathStepSymbol(ExprPathStep.Symbol node, C ctx); + + R visitExprPathStepIndex(ExprPathStep.Index node, C ctx); + + R visitExprPathStepWildcard(ExprPathStep.Wildcard node, C ctx); + + R visitExprPathStepUnpivot(ExprPathStep.Unpivot node, C ctx); + + R visitExprCall(ExprCall node, C ctx); + + R visitExprParameter(ExprParameter node, C ctx); + + R visitExprOperator(ExprOperator node, C ctx); + + R visitExprNot(ExprNot node, C ctx); + + R visitExprAnd(ExprAnd node, C ctx); + + R visitExprOr(ExprOr node, C ctx); + + R visitExprValues(ExprValues node, C ctx); + + R visitExprValuesRow(ExprValues.Row node, C ctx); + + R visitExprCollection(ExprCollection node, C ctx); + + R visitExprStruct(ExprStruct node, C ctx); + + R visitExprStructField(ExprStruct.Field node, C ctx); + + R visitExprLike(ExprLike node, C ctx); + + R visitExprBetween(ExprBetween node, C ctx); + + R visitExprInCollection(ExprInCollection node, C ctx); + + R visitExprIsType(ExprIsType node, C ctx); + + R visitExprCase(ExprCase node, C ctx); + + R visitExprCaseBranch(ExprCase.Branch node, C ctx); + + R visitExprCoalesce(ExprCoalesce node, C ctx); + + R visitExprNullIf(ExprNullIf node, C ctx); + + R visitExprSubstring(ExprSubstring node, C ctx); + + R visitExprPosition(ExprPosition node, C ctx); + + R visitExprTrim(ExprTrim node, C ctx); + + R visitExprOverlay(ExprOverlay node, C ctx); + + R visitExprExtract(ExprExtract node, C ctx); + + R visitExprCast(ExprCast node, C ctx); + + R visitExprDateAdd(ExprDateAdd node, C ctx); + + R visitExprDateDiff(ExprDateDiff node, C ctx); + + R visitExprQuerySet(ExprQuerySet node, C ctx); + + R visitExprMatch(ExprMatch node, C ctx); + + R visitExprWindow(ExprWindow node, C ctx); + + R visitExprWindowOver(ExprWindow.Over node, C ctx); + + R visitQueryBody(QueryBody node, C ctx); + + R visitQueryBodySFW(QueryBody.SFW node, C ctx); + + R visitQueryBodySetOp(QueryBody.SetOp node, C ctx); + + R visitSelect(Select node, C ctx); + + R visitSelectStar(SelectStar node, C ctx); + + R visitSelectProject(SelectProject node, C ctx); + + R visitProjectItem(ProjectItem node, C ctx); + + R visitProjectItemAll(ProjectItem.All node, C ctx); + + R visitProjectItemExpression(ProjectItem.Expression node, C ctx); + + R visitSelectPivot(SelectPivot node, C ctx); + + R visitSelectValue(SelectValue node, C ctx); + + R visitExclude(Exclude node, C ctx); + + R visitExcludePath(ExcludePath node, C ctx); + + R visitExcludeStep(ExcludeStep node, C ctx); + + R visitExcludeStepStructField(ExcludeStep.StructField node, C ctx); + + R visitExcludeStepCollIndex(ExcludeStep.CollIndex node, C ctx); + + R visitExcludeStepStructWildcard(ExcludeStep.StructWildcard node, C ctx); + + R visitExcludeStepCollWildcard(ExcludeStep.CollWildcard node, C ctx); + + R visitFrom(From node, C ctx); + + R visitFromValue(FromValue node, C ctx); + + R visitFromJoin(FromJoin node, C ctx); + + R visitLet(Let node, C ctx); + + R visitLetBinding(Let.Binding node, C ctx); + + R visitGroupBy(GroupBy node, C ctx); + + R visitGroupByKey(GroupBy.Key node, C ctx); + + R visitOrderBy(OrderBy node, C ctx); + + R visitSort(Sort node, C ctx); + + R visitSetOp(SetOp node, C ctx); + + R visitGraphMatch(GraphMatch node, C ctx); + + R visitGraphMatchPattern(GraphPattern node, C ctx); + + R visitGraphPart(GraphPart node, C ctx); + + R visitGraphPartNode(GraphPart.Node node, C ctx); + + R visitGraphPartEdge(GraphPart.Edge node, C ctx); + + R visitGraphPartPattern(GraphPart.Pattern node, C ctx); + + R visitGraphQuantifier(GraphQuantifier node, C ctx); + + R visitGraphSelector(GraphSelector node, C ctx); + + R visitGraphSelectorAnyShortest(GraphSelector.AnyShortest node, C ctx); + + R visitGraphSelectorAllShortest(GraphSelector.AllShortest node, C ctx); + + R visitGraphSelectorAny(GraphSelector.Any node, C ctx); + + R visitGraphSelectorAnyK(GraphSelector.AnyK node, C ctx); + + R visitGraphSelectorShortestK(GraphSelector.ShortestK node, C ctx); + + R visitGraphSelectorShortestKGroup( + GraphSelector.ShortestKGroup node, + C ctx + ); + + R visitGraphLabel(GraphLabel node, C ctx); + + R visitGraphLabelName(GraphLabel.Name node, C ctx); + + R visitGraphLabelWildcard(GraphLabel.Wildcard node, C ctx); + + R visitGraphLabelNegation(GraphLabel.Negation node, C ctx); + + R visitGraphLabelConj(GraphLabel.Conj node, C ctx); + + R visitGraphLabelDisj(GraphLabel.Disj node, C ctx); + + R visitTableDefinition(TableDefinition node, C ctx); + + R visitColumn(Column node, C ctx); + + R visitConstraint(Constraint node, C ctx); + + R visitConstraintBody( + ConstraintType node, + C ctx + ); + + R visitConstraintNullable(ConstraintNullable node, C ctx); + + R visitConstraintNotNull(ConstraintNotNull node, C ctx); + + R visitConstraintCheck(ConstraintCheck node, C ctx); +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CaseSensitivity.kt b/partiql-ast/src/main/java/org/partiql/ast/v1/CaseSensitivity.java similarity index 57% rename from partiql-ast/src/main/kotlin/org/partiql/ast/v1/CaseSensitivity.kt rename to partiql-ast/src/main/java/org/partiql/ast/v1/CaseSensitivity.java index 79d221f0e0..ee7a7a30d8 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CaseSensitivity.kt +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/CaseSensitivity.java @@ -1,9 +1,9 @@ -package org.partiql.ast.v1 +package org.partiql.ast.v1; /** * TODO docs, equals, hashcode */ -public enum class CaseSensitivity { +public enum CaseSensitivity { SENSITIVE, INSENSITIVE, OTHER, diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Column.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Column.java new file mode 100644 index 0000000000..0e39c19a28 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Column.java @@ -0,0 +1,42 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.type.Type; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class Column extends AstNode { + @NotNull + public String name; + + @NotNull + public Type type; + + @NotNull + public List constraints; + + public Column(@NotNull String name, @NotNull Type type, @NotNull List constraints) { + this.name = name; + this.type = type; + this.constraints = constraints; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(type); + kids.addAll(constraints); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitColumn(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Constraint.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Constraint.java new file mode 100644 index 0000000000..dd7645e77d --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Constraint.java @@ -0,0 +1,37 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class Constraint extends AstNode { + @Nullable + public String name; + + @NotNull + public ConstraintType constraintType; + + public Constraint(@Nullable String name, @NotNull ConstraintType constraintType) { + this.name = name; + this.constraintType = constraintType; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(constraintType); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitConstraint(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintCheck.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintCheck.java new file mode 100644 index 0000000000..b57aa957b9 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintCheck.java @@ -0,0 +1,33 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ConstraintCheck extends ConstraintType { + @NotNull + public Expr expr; + + public ConstraintCheck(@NotNull Expr expr) { + this.expr = expr; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(expr); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitConstraintCheck(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNotNull.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNotNull.java new file mode 100644 index 0000000000..1d35ae1bb4 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNotNull.java @@ -0,0 +1,22 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class ConstraintNotNull extends ConstraintType { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitConstraintNotNull(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNullable.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNullable.java new file mode 100644 index 0000000000..689dba4d22 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNullable.java @@ -0,0 +1,22 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class ConstraintNullable extends ConstraintType { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitConstraintNullable(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintType.java new file mode 100644 index 0000000000..9cb8577d86 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintType.java @@ -0,0 +1,21 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +/** + * TODO docs, equals, hashcode + */ +public abstract class ConstraintType extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof ConstraintNullable) { + return visitor.visitConstraintNullable((ConstraintNullable) this, ctx); + } else if (this instanceof ConstraintNotNull) { + return visitor.visitConstraintNotNull((ConstraintNotNull) this, ctx); + } else if (this instanceof ConstraintCheck) { + return visitor.visitConstraintCheck((ConstraintCheck) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/CreateIndex.java b/partiql-ast/src/main/java/org/partiql/ast/v1/CreateIndex.java new file mode 100644 index 0000000000..396fcf770d --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/CreateIndex.java @@ -0,0 +1,45 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class CreateIndex extends DDL { + @Nullable + public Identifier index; + + @NotNull + public Identifier table; + + @NotNull + public List fields; + + public CreateIndex(@Nullable Identifier index, @NotNull Identifier table, @NotNull List fields) { + this.index = index; + this.table = table; + this.fields = fields; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + if (index != null) { + kids.add(index); + } + kids.add(table); + kids.addAll(fields); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitCreateIndex(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/CreateTable.java b/partiql-ast/src/main/java/org/partiql/ast/v1/CreateTable.java new file mode 100644 index 0000000000..d9fb8ca37f --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/CreateTable.java @@ -0,0 +1,40 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class CreateTable extends DDL { + @NotNull + public Identifier name; + + @Nullable + public TableDefinition definition; + + public CreateTable(@NotNull Identifier name, @Nullable TableDefinition definition) { + this.name = name; + this.definition = definition; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(name); + if (definition != null) { + kids.add(definition); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitCreateTable(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/DDL.java b/partiql-ast/src/main/java/org/partiql/ast/v1/DDL.java new file mode 100644 index 0000000000..1bf8fbab4a --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/DDL.java @@ -0,0 +1,23 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +/** + * TODO docs, equals, hashcode + */ +public abstract class DDL extends Statement { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof CreateTable) { + return visitor.visitCreateTable((CreateTable) this, ctx); + } else if (this instanceof CreateIndex) { + return visitor.visitCreateIndex((CreateIndex) this, ctx); + } else if (this instanceof DropTable) { + return visitor.visitDropTable((DropTable) this, ctx); + } else if (this instanceof DropIndex) { + return visitor.visitDropIndex((DropIndex) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DatetimeField.kt b/partiql-ast/src/main/java/org/partiql/ast/v1/DatetimeField.java similarity index 72% rename from partiql-ast/src/main/kotlin/org/partiql/ast/v1/DatetimeField.kt rename to partiql-ast/src/main/java/org/partiql/ast/v1/DatetimeField.java index 557f1b1b7c..f391cf86cf 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DatetimeField.kt +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/DatetimeField.java @@ -1,9 +1,9 @@ -package org.partiql.ast.v1 +package org.partiql.ast.v1; /** * TODO docs, equals, hashcode */ -public enum class DatetimeField { +public enum DatetimeField { YEAR, MONTH, DAY, diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/DropIndex.java b/partiql-ast/src/main/java/org/partiql/ast/v1/DropIndex.java new file mode 100644 index 0000000000..36c220d8b4 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/DropIndex.java @@ -0,0 +1,37 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class DropIndex extends DDL { + @NotNull + public Identifier index; + + @NotNull + public Identifier table; + + public DropIndex(@NotNull Identifier index, @NotNull Identifier table) { + this.index = index; + this.table = table; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(index); + kids.add(table); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitDropIndex(this, ctx); +} +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/DropTable.java b/partiql-ast/src/main/java/org/partiql/ast/v1/DropTable.java new file mode 100644 index 0000000000..039f1a3799 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/DropTable.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class DropTable extends DDL { + @NotNull + public Identifier table; + + public DropTable(@NotNull Identifier table) { + this.table = table; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(table); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitDropTable(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Exclude.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Exclude.java new file mode 100644 index 0000000000..f95a33b792 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Exclude.java @@ -0,0 +1,30 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class Exclude extends AstNode { + @NotNull + public List excludePaths; + + public Exclude(@NotNull List excludePaths) { + this.excludePaths = excludePaths; + } + + @NotNull + @Override + public Collection children() { + return new ArrayList<>(excludePaths); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExclude(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludePath.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludePath.java new file mode 100644 index 0000000000..0a0ee57cba --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludePath.java @@ -0,0 +1,38 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.expr.ExprVar; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExcludePath extends AstNode { + @NotNull + public ExprVar root; + + @NotNull + public List excludeSteps; + + public ExcludePath(@NotNull ExprVar root, @NotNull List excludeSteps) { + this.root = root; + this.excludeSteps = excludeSteps; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(root); + kids.addAll(excludeSteps); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExcludePath(this, ctx); +} +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludeStep.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludeStep.java new file mode 100644 index 0000000000..0b85b29ac3 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludeStep.java @@ -0,0 +1,91 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public abstract class ExcludeStep extends AstNode { + /** + * TODO docs, equals, hashcode + */ + public static class StructField extends ExcludeStep { + @NotNull + public Identifier.Symbol symbol; + + public StructField(@NotNull Identifier.Symbol symbol) { + this.symbol = symbol; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(symbol); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExcludeStepStructField(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class CollIndex extends ExcludeStep { + public int index; + + public CollIndex(int index) { + this.index = index; + } + + @NotNull + @Override + public Collection children() { + return new ArrayList<>(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExcludeStepCollIndex(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class StructWildcard extends ExcludeStep { + @NotNull + @Override + public Collection children() { + return new ArrayList<>(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExcludeStepStructWildcard(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class CollWildcard extends ExcludeStep { + @NotNull + @Override + public Collection children() { + return new ArrayList<>(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExcludeStepCollWildcard(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Explain.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Explain.java new file mode 100644 index 0000000000..eede3e764f --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Explain.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class Explain extends Statement { + @NotNull + public Target target; + + public Explain(@NotNull Target target) { + this.target = target; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(target); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExplain(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/From.java b/partiql-ast/src/main/java/org/partiql/ast/v1/From.java new file mode 100644 index 0000000000..f82a41da6b --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/From.java @@ -0,0 +1,19 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +/** + * TODO docs, equals, hashcode + */ +public abstract class From extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof FromValue) { + return visitor.visitFromValue((FromValue) this, ctx); + } else if (this instanceof FromJoin) { + return visitor.visitFromJoin((FromJoin) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java b/partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java new file mode 100644 index 0000000000..bf2d9dccdb --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java @@ -0,0 +1,66 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class FromJoin extends From { + @NotNull + public From lhs; + + @NotNull + public From rhs; + + @Nullable + public Type type; + + @Nullable + public Expr condition; + + public FromJoin(@NotNull From lhs, @NotNull From rhs, @Nullable Type type, @Nullable Expr condition) { + this.lhs = lhs; + this.rhs = rhs; + this.type = type; + this.condition = condition; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(lhs); + kids.add(rhs); + if (condition != null) { + kids.add(condition); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitFromJoin(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public enum Type { + INNER, + LEFT, + LEFT_OUTER, + RIGHT, + RIGHT_OUTER, + FULL, + FULL_OUTER, + CROSS, + COMMA, + OTHER + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/FromValue.java b/partiql-ast/src/main/java/org/partiql/ast/v1/FromValue.java new file mode 100644 index 0000000000..92ec8548dd --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/FromValue.java @@ -0,0 +1,65 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class FromValue extends From { + @NotNull + public Expr expr; + + @NotNull + public Type type; + + @Nullable + public Identifier.Symbol asAlias; + + @Nullable + public Identifier.Symbol atAlias; + + /** + * TODO get rid of `BY` + */ + @Nullable + public Identifier.Symbol byAlias; + + public FromValue(@NotNull Expr expr, @NotNull Type type, @Nullable Identifier.Symbol asAlias, + @Nullable Identifier.Symbol atAlias, @Nullable Identifier.Symbol byAlias) { + this.expr = expr; + this.type = type; + this.asAlias = asAlias; + this.atAlias = atAlias; + this.byAlias = byAlias; + } + + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(expr); + if (asAlias != null) kids.add(asAlias); + if (atAlias != null) kids.add(atAlias); + if (byAlias != null) kids.add(byAlias); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitFromValue(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public enum Type { + SCAN, + UNPIVOT, + OTHER + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/GroupBy.java b/partiql-ast/src/main/java/org/partiql/ast/v1/GroupBy.java new file mode 100644 index 0000000000..37aa711758 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/GroupBy.java @@ -0,0 +1,85 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class GroupBy extends AstNode { + @NotNull + public Strategy strategy; + + @NotNull + public List keys; + + @Nullable + public Identifier.Symbol asAlias; + + public GroupBy(@NotNull Strategy strategy, @NotNull List keys, @Nullable Identifier.Symbol asAlias) { + this.strategy = strategy; + this.keys = keys; + this.asAlias = asAlias; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(keys); + if (asAlias != null) { + kids.add(asAlias); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGroupBy(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public enum Strategy { + FULL, + PARTIAL, + OTHER + } + + /** + * TODO docs, equals, hashcode + */ + public static class Key extends AstNode { + @NotNull + public Expr expr; + + @Nullable + public Identifier.Symbol asAlias; + + public Key(@NotNull Expr expr, @Nullable Identifier.Symbol asAlias) { + this.expr = expr; + this.asAlias = asAlias; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(expr); + if (asAlias != null) { + kids.add(asAlias); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGroupByKey(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java new file mode 100644 index 0000000000..45ab8f8900 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java @@ -0,0 +1,80 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public abstract class Identifier extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof Symbol) { + return visitor.visitIdentifierSymbol((Symbol) this, ctx); + } else if (this instanceof Qualified) { + return visitor.visitIdentifierQualified((Qualified) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Symbol extends Identifier { + @NotNull + public String symbol; + + @NotNull + public CaseSensitivity caseSensitivity; + + public Symbol(@NotNull String symbol, @NotNull CaseSensitivity caseSensitivity) { + this.symbol = symbol; + this.caseSensitivity = caseSensitivity; + } + + @NotNull + @Override + public Collection children() { + return new ArrayList<>(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitIdentifierSymbol(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Qualified extends Identifier { + @NotNull + public Symbol root; + + @NotNull + public List steps; + + public Qualified(@NotNull Symbol root, @NotNull List steps) { + this.root = root; + this.steps = steps; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(root); + kids.addAll(steps); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitIdentifierQualified(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Let.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Let.java new file mode 100644 index 0000000000..89c710f2d9 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Let.java @@ -0,0 +1,61 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class Let extends AstNode { + @NotNull + public List bindings; + + public Let(@NotNull List bindings) { + this.bindings = bindings; + } + + @NotNull + @Override + public Collection children() { + return new ArrayList<>(bindings); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitLet(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public static class Binding extends AstNode { + @NotNull + public Expr expr; + + @NotNull + public Identifier.Symbol asAlias; + + public Binding(@NotNull Expr expr, @NotNull Identifier.Symbol asAlias) { + this.expr = expr; + this.asAlias = asAlias; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(expr); + kids.add(asAlias); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitLetBinding(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/OrderBy.java b/partiql-ast/src/main/java/org/partiql/ast/v1/OrderBy.java new file mode 100644 index 0000000000..b545138d37 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/OrderBy.java @@ -0,0 +1,31 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class OrderBy extends AstNode { + @NotNull + public List sorts; + + public OrderBy(@NotNull List sorts) { + this.sorts = sorts; + } + + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.addAll(sorts); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitOrderBy(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/PathLit.java b/partiql-ast/src/main/java/org/partiql/ast/v1/PathLit.java new file mode 100644 index 0000000000..07ae2a1ac4 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/PathLit.java @@ -0,0 +1,37 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class PathLit extends AstNode { + @NotNull + public Identifier.Symbol root; + + @NotNull + public List steps; + + public PathLit(@NotNull Identifier.Symbol root, @NotNull List steps) { + this.root = root; + this.steps = steps; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(root); + kids.addAll(steps); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitPathLit(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/PathLitStep.java b/partiql-ast/src/main/java/org/partiql/ast/v1/PathLitStep.java new file mode 100644 index 0000000000..4ba37f5f44 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/PathLitStep.java @@ -0,0 +1,59 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public abstract class PathLitStep extends AstNode { + /** + * TODO docs, equals, hashcode + */ + public static class Symbol extends PathLitStep { + @NotNull + public Identifier.Symbol symbol; + + public Symbol(@NotNull Identifier.Symbol symbol) { + this.symbol = symbol; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(symbol); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitPathLitStepSymbol(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Index extends PathLitStep { + public int index; + + public Index(int index) { + this.index = index; + } + + @NotNull + @Override + public Collection children() { + return new ArrayList<>(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitPathLitStepIndex(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java new file mode 100644 index 0000000000..c522e49fa1 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java @@ -0,0 +1,82 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public abstract class ProjectItem extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof All) { + return visitor.visitProjectItemAll((All) this, ctx); + } else if (this instanceof Expression) { + return visitor.visitProjectItemExpression((Expression) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class All extends ProjectItem { + @NotNull + public Expr expr; + + public All(@NotNull Expr expr) { + this.expr = expr; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(expr); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitProjectItemAll(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Expression extends ProjectItem { + @NotNull + public Expr expr; + + @Nullable + public Identifier.Symbol asAlias; + + public Expression(@NotNull Expr expr, @Nullable Identifier.Symbol asAlias) { + this.expr = expr; + this.asAlias = asAlias; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(expr); + if (asAlias != null) { + kids.add(asAlias); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitProjectItemExpression(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Query.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Query.java new file mode 100644 index 0000000000..e5838dfa71 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Query.java @@ -0,0 +1,33 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class Query extends Statement { + @NotNull + public Expr expr; + + public Query(@NotNull Expr expr) { + this.expr = expr; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(expr); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitQuery(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/QueryBody.java b/partiql-ast/src/main/java/org/partiql/ast/v1/QueryBody.java new file mode 100644 index 0000000000..0f4b428140 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/QueryBody.java @@ -0,0 +1,99 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +public abstract class QueryBody extends AstNode { + public static class SFW extends QueryBody { + @NotNull + public Select select; + + @Nullable + public Exclude exclude; + + @NotNull + public From from; + + @Nullable + public Let let; + + @Nullable + public Expr where; + + @Nullable + public GroupBy groupBy; + + @Nullable + public Expr having; + + public SFW(@NotNull Select select, @Nullable Exclude exclude, @NotNull From from, + @Nullable Let let, @Nullable Expr where, @Nullable GroupBy groupBy, @Nullable Expr having) { + this.select = select; + this.exclude = exclude; + this.from = from; + this.let = let; + this.where = where; + this.groupBy = groupBy; + this.having = having; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(select); + if (exclude != null) kids.add(exclude); + kids.add(from); + if (let != null) kids.add(let); + if (where != null) kids.add(where); + if (groupBy != null) kids.add(groupBy); + if (having != null) kids.add(having); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitQueryBodySFW(this, ctx); + } + } + + public static class SetOp extends QueryBody { + @NotNull + public org.partiql.ast.v1.SetOp type; + + public boolean isOuter; + + @NotNull + public Expr lhs; + + @NotNull + public Expr rhs; + + public SetOp(@NotNull org.partiql.ast.v1.SetOp type, boolean isOuter, @NotNull Expr lhs, @NotNull Expr rhs) { + this.type = type; + this.isOuter = isOuter; + this.lhs = lhs; + this.rhs = rhs; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(type); + kids.add(lhs); + kids.add(rhs); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitQueryBodySetOp(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Select.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Select.java new file mode 100644 index 0000000000..7668deb0b4 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Select.java @@ -0,0 +1,23 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +/** + * TODO docs, equals, hashcode + */ +public abstract class Select extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof SelectStar) { + return visitor.visitSelectStar((SelectStar) this, ctx); + } else if (this instanceof SelectProject) { + return visitor.visitSelectProject((SelectProject) this, ctx); + } else if (this instanceof SelectPivot) { + return visitor.visitSelectPivot((SelectPivot) this, ctx); + } else if (this instanceof SelectValue) { + return visitor.visitSelectValue((SelectValue) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/SelectPivot.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectPivot.java new file mode 100644 index 0000000000..a6b59693f9 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectPivot.java @@ -0,0 +1,38 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class SelectPivot extends Select { + @NotNull + public Expr key; + + @NotNull + public Expr value; + + public SelectPivot(@NotNull Expr key, @NotNull Expr value) { + this.key = key; + this.value = value; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(key); + kids.add(value); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitSelectPivot(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/SelectProject.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectProject.java new file mode 100644 index 0000000000..a89b791c71 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectProject.java @@ -0,0 +1,35 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class SelectProject extends Select { + @NotNull + public List items; + + @Nullable + public SetQuantifier setq; + + public SelectProject(@NotNull List items, @Nullable SetQuantifier setq) { + this.items = items; + this.setq = setq; + } + + @NotNull + @Override + public Collection children() { + return new ArrayList<>(items); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitSelectProject(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/SelectStar.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectStar.java new file mode 100644 index 0000000000..310ccaad56 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectStar.java @@ -0,0 +1,30 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class SelectStar extends Select { + @Nullable + public SetQuantifier setq; + + public SelectStar(@Nullable SetQuantifier setq) { + this.setq = setq; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitSelectStar(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/SelectValue.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectValue.java new file mode 100644 index 0000000000..185af14df5 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectValue.java @@ -0,0 +1,38 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class SelectValue extends Select { + @NotNull + public Expr constructor; + + @Nullable + public SetQuantifier setq; + + public SelectValue(@NotNull Expr constructor, @Nullable SetQuantifier setq) { + this.constructor = constructor; + this.setq = setq; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(constructor); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitSelectValue(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/SetOp.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SetOp.java new file mode 100644 index 0000000000..db50e9c7ba --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SetOp.java @@ -0,0 +1,44 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class SetOp extends AstNode { + @NotNull + public Type type; + + @Nullable + public SetQuantifier setq; + + public SetOp(@NotNull Type type, @Nullable SetQuantifier setq) { + this.type = type; + this.setq = setq; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitSetOp(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public enum Type { + UNION, + INTERSECT, + EXCEPT, + OTHER + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetQuantifier.kt b/partiql-ast/src/main/java/org/partiql/ast/v1/SetQuantifier.java similarity index 55% rename from partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetQuantifier.kt rename to partiql-ast/src/main/java/org/partiql/ast/v1/SetQuantifier.java index 30977c7c85..4a60c59686 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetQuantifier.kt +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SetQuantifier.java @@ -1,9 +1,9 @@ -package org.partiql.ast.v1 +package org.partiql.ast.v1; /** * TODO docs, equals, hashcode */ -public enum class SetQuantifier { +public enum SetQuantifier { ALL, DISTINCT, OTHER, diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Sort.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Sort.java new file mode 100644 index 0000000000..81a79d9e34 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Sort.java @@ -0,0 +1,60 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class Sort extends AstNode { + @NotNull + public Expr expr; + + @Nullable + public Dir dir; + + @Nullable + public Nulls nulls; + + public Sort(@NotNull Expr expr, @Nullable Dir dir, @Nullable Nulls nulls) { + this.expr = expr; + this.dir = dir; + this.nulls = nulls; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(expr); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitSort(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public enum Dir { + ASC, + DESC, + OTHER + } + + /** + * TODO docs, equals, hashcode + */ + public enum Nulls { + FIRST, + LAST, + OTHER + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Statement.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Statement.java new file mode 100644 index 0000000000..33f99af19f --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Statement.java @@ -0,0 +1,21 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +/** + * TODO docs, equals, hashcode + */ +public abstract class Statement extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof Query) { + return visitor.visitQuery((Query) this, ctx); + } else if (this instanceof DDL) { + return visitor.visitDDL((DDL) this, ctx); + } else if (this instanceof Explain) { + return visitor.visitExplain((Explain) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/TableDefinition.java b/partiql-ast/src/main/java/org/partiql/ast/v1/TableDefinition.java new file mode 100644 index 0000000000..e1a629f82a --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/TableDefinition.java @@ -0,0 +1,30 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class TableDefinition extends AstNode { + @NotNull + public List columns; + + public TableDefinition(@NotNull List columns) { + this.columns = columns; + } + + @NotNull + @Override + public Collection children() { + return new ArrayList<>(columns); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTableDefinition(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Target.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Target.java new file mode 100644 index 0000000000..161457b291 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Target.java @@ -0,0 +1,55 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public abstract class Target extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof Domain) { + return visitor.visitTargetDomain((Domain) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Domain extends Target { + @NotNull + public Statement statement; + + @Nullable + public String type; + + @Nullable + public String format; + + public Domain(@NotNull Statement statement, @Nullable String type, @Nullable String format) { + this.statement = statement; + this.type = type; + this.format = format; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(statement); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor < R, C > visitor, C ctx) { + return visitor.visitTargetDomain(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java new file mode 100644 index 0000000000..ead2f0eadd --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java @@ -0,0 +1,81 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +/** + * TODO docs, equals, hashcode + */ +public abstract class Expr extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof ExprLit) { + return visitor.visitExprLit((ExprLit) this, ctx); + } else if (this instanceof ExprIon) { + return visitor.visitExprIon((ExprIon) this, ctx); + } else if (this instanceof ExprVar) { + return visitor.visitExprVar((ExprVar) this, ctx); + } else if (this instanceof ExprSessionAttribute) { + return visitor.visitExprSessionAttribute((ExprSessionAttribute) this, ctx); + } else if (this instanceof ExprPath) { + return visitor.visitExprPath((ExprPath) this, ctx); + } else if (this instanceof ExprCall) { + return visitor.visitExprCall((ExprCall) this, ctx); + } else if (this instanceof ExprParameter) { + return visitor.visitExprParameter((ExprParameter) this, ctx); + } else if (this instanceof ExprOperator) { + return visitor.visitExprOperator((ExprOperator) this, ctx); + } else if (this instanceof ExprNot) { + return visitor.visitExprNot((ExprNot) this, ctx); + } else if (this instanceof ExprAnd) { + return visitor.visitExprAnd((ExprAnd) this, ctx); + } else if (this instanceof ExprOr) { + return visitor.visitExprOr((ExprOr) this, ctx); + } else if (this instanceof ExprValues) { + return visitor.visitExprValues((ExprValues) this, ctx); + } else if (this instanceof ExprCollection) { + return visitor.visitExprCollection((ExprCollection) this, ctx); + } else if (this instanceof ExprStruct) { + return visitor.visitExprStruct((ExprStruct) this, ctx); + } else if (this instanceof ExprLike) { + return visitor.visitExprLike((ExprLike) this, ctx); + } else if (this instanceof ExprBetween) { + return visitor.visitExprBetween((ExprBetween) this, ctx); + } else if (this instanceof ExprInCollection) { + return visitor.visitExprInCollection((ExprInCollection) this, ctx); + } else if (this instanceof ExprIsType) { + return visitor.visitExprIsType((ExprIsType) this, ctx); + } else if (this instanceof ExprCase) { + return visitor.visitExprCase((ExprCase) this, ctx); + } else if (this instanceof ExprCoalesce) { + return visitor.visitExprCoalesce((ExprCoalesce) this, ctx); + } else if (this instanceof ExprNullIf) { + return visitor.visitExprNullIf((ExprNullIf) this, ctx); + } else if (this instanceof ExprSubstring) { + return visitor.visitExprSubstring((ExprSubstring) this, ctx); + } else if (this instanceof ExprPosition) { + return visitor.visitExprPosition((ExprPosition) this, ctx); + } else if (this instanceof ExprTrim) { + return visitor.visitExprTrim((ExprTrim) this, ctx); + } else if (this instanceof ExprOverlay) { + return visitor.visitExprOverlay((ExprOverlay) this, ctx); + } else if (this instanceof ExprExtract) { + return visitor.visitExprExtract((ExprExtract) this, ctx); + } else if (this instanceof ExprCast) { + return visitor.visitExprCast((ExprCast) this, ctx); + } else if (this instanceof ExprDateAdd) { + return visitor.visitExprDateAdd((ExprDateAdd) this, ctx); + } else if (this instanceof ExprDateDiff) { + return visitor.visitExprDateDiff((ExprDateDiff) this, ctx); + } else if (this instanceof ExprQuerySet) { + return visitor.visitExprQuerySet((ExprQuerySet) this, ctx); + } else if (this instanceof ExprMatch) { + return visitor.visitExprMatch((ExprMatch) this, ctx); + } else if (this instanceof ExprWindow) { + return visitor.visitExprWindow((ExprWindow) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprAnd.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprAnd.java new file mode 100644 index 0000000000..1a52014311 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprAnd.java @@ -0,0 +1,38 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprAnd extends Expr { + @NotNull + public Expr lhs; + @NotNull + public Expr rhs; + + public ExprAnd(@NotNull Expr lhs, @NotNull Expr rhs) { + this.lhs = lhs; + this.rhs = rhs; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + kids.add(lhs); + kids.add(rhs); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprAnd(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java new file mode 100644 index 0000000000..b3467e6617 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java @@ -0,0 +1,48 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprBetween extends Expr { + @NotNull + public final Expr value; + + @NotNull + public final Expr from; + + @NotNull + public final Expr to; + + @NotNull + public final Boolean not; + + public ExprBetween(@NotNull Expr value, @NotNull Expr from, @NotNull Expr to, @NotNull Boolean not) { + this.value = value; + this.from = from; + this.to = to; + this.not = not; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(value); + kids.add(from); + kids.add(to); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprBetween(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java new file mode 100644 index 0000000000..64415b1fa0 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java @@ -0,0 +1,44 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.Identifier; +import org.partiql.ast.v1.SetQuantifier; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprCall extends Expr { + public Identifier function; + public List args; + public SetQuantifier setq; + + public ExprCall(Identifier function, List args, SetQuantifier setq) { + this.function = function; + this.args = args; + this.setq = setq; + } + + @NotNull + @Override + public Collection children() { + List kids = new ArrayList<>(); + if (function != null) { + kids.add(function); + } + if (args != null) { + kids.addAll(args); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprCall(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCase.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCase.java new file mode 100644 index 0000000000..1694a294c7 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCase.java @@ -0,0 +1,79 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprCase extends Expr { + @Nullable + public final Expr expr; + + @NotNull + public final List branches; + + @Nullable + public final Expr defaultExpr; + + public ExprCase(@Nullable Expr expr, @NotNull List branches, @Nullable Expr defaultExpr) { + this.expr = expr; + this.branches = branches; + this.defaultExpr = defaultExpr; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + if (expr != null) { + kids.add(expr); + } + kids.addAll(branches); + if (defaultExpr != null) { + kids.add(defaultExpr); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprCase(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public static class Branch extends AstNode { + @NotNull + public final Expr condition; + + @NotNull + public final Expr expr; + + public Branch(@NotNull Expr condition, @NotNull Expr expr) { + this.condition = condition; + this.expr = expr; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(condition); + kids.add(expr); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprCaseBranch(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java new file mode 100644 index 0000000000..59288a4d7a --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java @@ -0,0 +1,40 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.type.Type; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprCast extends Expr { + @NotNull + public final Expr value; + + @NotNull + public final Type asType; + + public ExprCast(@NotNull Expr value, @NotNull Type asType) { + this.value = value; + this.asType = asType; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(value); + kids.add(asType); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprCast(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCoalesce.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCoalesce.java new file mode 100644 index 0000000000..acc07907ed --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCoalesce.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprCoalesce extends Expr { + @NotNull + public final List args; + + public ExprCoalesce(@NotNull List args) { + this.args = args; + } + + @Override + @NotNull + public Collection children() { + return new ArrayList<>(args); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprCoalesce(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCollection.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCollection.java new file mode 100644 index 0000000000..d096e90818 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCollection.java @@ -0,0 +1,48 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprCollection extends Expr { + @NotNull + public final Type type; + + @NotNull + public final List values; + + public ExprCollection(@NotNull Type type, @NotNull List values) { + this.type = type; + this.values = values; + } + + @Override + @NotNull + public Collection children() { + return new ArrayList<>(values); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprCollection(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public enum Type { + BAG, + ARRAY, + VALUES, + LIST, + SEXP, + OTHER + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateAdd.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateAdd.java new file mode 100644 index 0000000000..9ca964a4ee --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateAdd.java @@ -0,0 +1,44 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.DatetimeField; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprDateAdd extends Expr { + @NotNull + public DatetimeField field; + + @NotNull + public Expr lhs; + + @NotNull + public Expr rhs; + + public ExprDateAdd(@NotNull DatetimeField field, @NotNull Expr lhs, @NotNull Expr rhs) { + this.field = field; + this.lhs = lhs; + this.rhs = rhs; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(lhs); + kids.add(rhs); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprDateAdd(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateDiff.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateDiff.java new file mode 100644 index 0000000000..68799aaf51 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateDiff.java @@ -0,0 +1,44 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.DatetimeField; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprDateDiff extends Expr { + @NotNull + public DatetimeField field; + + @NotNull + public Expr lhs; + + @NotNull + public Expr rhs; + + public ExprDateDiff(@NotNull DatetimeField field, @NotNull Expr lhs, @NotNull Expr rhs) { + this.field = field; + this.lhs = lhs; + this.rhs = rhs; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(lhs); + kids.add(rhs); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprDateDiff(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprExtract.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprExtract.java new file mode 100644 index 0000000000..580d3d88c9 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprExtract.java @@ -0,0 +1,39 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.DatetimeField; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprExtract extends Expr { + @NotNull + public DatetimeField field; + + @NotNull + public Expr source; + + public ExprExtract(@NotNull DatetimeField field, @NotNull Expr source) { + this.field = field; + this.source = source; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(source); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprExtract(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java new file mode 100644 index 0000000000..2312f6cce3 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java @@ -0,0 +1,44 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprInCollection extends Expr { + @NotNull + public Expr lhs; + + @NotNull + public Expr rhs; + + @Nullable + public Boolean not; + + public ExprInCollection(@NotNull Expr lhs, @NotNull Expr rhs, @Nullable Boolean not) { + this.lhs = lhs; + this.rhs = rhs; + this.not = not; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(lhs); + kids.add(rhs); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprInCollection(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIon.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIon.java new file mode 100644 index 0000000000..1e09c6b071 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIon.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import com.amazon.ionelement.api.IonElement; + +import java.util.Collections; +import java.util.Collection; + +/** + * TODO docs, equals, hashcode + */ +public class ExprIon extends Expr { + @NotNull + public IonElement value; + + public ExprIon(@NotNull IonElement value) { + this.value = value; + } + + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprIon(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java new file mode 100644 index 0000000000..ee7828b292 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java @@ -0,0 +1,45 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.type.Type; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprIsType extends Expr { + @NotNull + public Expr value; + + @NotNull + public Type type; + + @Nullable + public Boolean not; + + public ExprIsType(@NotNull Expr value, @NotNull Type type, @Nullable Boolean not) { + this.value = value; + this.type = type; + this.not = not; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(value); + kids.add(type); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprIsType(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLike.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLike.java new file mode 100644 index 0000000000..b63228e346 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLike.java @@ -0,0 +1,51 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprLike extends Expr { + @NotNull + public Expr value; + + @NotNull + public Expr pattern; + + @Nullable + public Expr escape; + + @Nullable + public Boolean not; + + public ExprLike(@NotNull Expr value, @NotNull Expr pattern, @Nullable Expr escape, @Nullable Boolean not) { + this.value = value; + this.pattern = pattern; + this.escape = escape; + this.not = not; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(value); + kids.add(pattern); + if (escape != null) { + kids.add(escape); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprLike(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLit.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLit.java new file mode 100644 index 0000000000..d26d213acb --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLit.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.value.PartiQLValue; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class ExprLit extends Expr { + @NotNull + public PartiQLValue value; + + public ExprLit(@NotNull PartiQLValue value) { + this.value = value; + } + + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprLit(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprMatch.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprMatch.java new file mode 100644 index 0000000000..2c3e3f72b9 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprMatch.java @@ -0,0 +1,40 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.graph.GraphMatch; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprMatch extends Expr { + @NotNull + public Expr expr; + + @NotNull + public GraphMatch pattern; + + public ExprMatch(@NotNull Expr expr, @NotNull GraphMatch pattern) { + this.expr = expr; + this.pattern = pattern; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(expr); + kids.add(pattern); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprMatch(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNot.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNot.java new file mode 100644 index 0000000000..4837b7e55d --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNot.java @@ -0,0 +1,34 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprNot extends Expr { + @NotNull + public Expr value; + + public ExprNot(@NotNull Expr value) { + this.value = value; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(value); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprNot(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNullIf.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNullIf.java new file mode 100644 index 0000000000..70fb6711e7 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNullIf.java @@ -0,0 +1,39 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprNullIf extends Expr { + @NotNull + public Expr value; + + @NotNull + public Expr nullifier; + + public ExprNullIf(@NotNull Expr value, @NotNull Expr nullifier) { + this.value = value; + this.nullifier = nullifier; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(value); + kids.add(nullifier); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprNullIf(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOperator.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOperator.java new file mode 100644 index 0000000000..76d440b41e --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOperator.java @@ -0,0 +1,46 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprOperator extends Expr { + @NotNull + public String symbol; + + @Nullable + public Expr lhs; + + @NotNull + public Expr rhs; + + public ExprOperator(@NotNull String symbol, @Nullable Expr lhs, @NotNull Expr rhs) { + this.symbol = symbol; + this.lhs = lhs; + this.rhs = rhs; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + if (lhs != null) { + kids.add(lhs); + } + kids.add(rhs); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprOperator(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOr.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOr.java new file mode 100644 index 0000000000..3684e11ec4 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOr.java @@ -0,0 +1,39 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprOr extends Expr { + @NotNull + public Expr lhs; + + @NotNull + public Expr rhs; + + public ExprOr(@NotNull Expr lhs, @NotNull Expr rhs) { + this.lhs = lhs; + this.rhs = rhs; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(lhs); + kids.add(rhs); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprOr(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOverlay.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOverlay.java new file mode 100644 index 0000000000..62f186a3ae --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOverlay.java @@ -0,0 +1,49 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprOverlay extends Expr { + @NotNull + public Expr value; + + @NotNull + public Expr placing; + + @NotNull + public Expr from; + + @NotNull + public Expr forLength; + + public ExprOverlay(@NotNull Expr value, @NotNull Expr placing, @NotNull Expr from, @NotNull Expr forLength) { + this.value = value; + this.placing = placing; + this.from = from; + this.forLength = forLength; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(value); + kids.add(placing); + kids.add(from); + kids.add(forLength); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprOverlay(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprParameter.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprParameter.java new file mode 100644 index 0000000000..d47aee502e --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprParameter.java @@ -0,0 +1,30 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class ExprParameter extends Expr { + public int index; + + public ExprParameter(int index) { + this.index = index; + } + + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprParameter(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPath.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPath.java new file mode 100644 index 0000000000..250f7a548c --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPath.java @@ -0,0 +1,39 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprPath extends Expr { + @NotNull + public Expr root; + + @NotNull + public List steps; + + public ExprPath(@NotNull Expr root, @NotNull List steps) { + this.root = root; + this.steps = steps; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(root); + kids.addAll(steps); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprPath(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPathStep.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPathStep.java new file mode 100644 index 0000000000..365370ba72 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPathStep.java @@ -0,0 +1,97 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.Identifier; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public abstract class ExprPathStep extends AstNode { + + /** + * TODO docs, equals, hashcode + */ + public static class Symbol extends ExprPathStep { + @NotNull + public Identifier.Symbol symbol; + + public Symbol(@NotNull Identifier.Symbol symbol) { + this.symbol = symbol; + } + + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprPathStepSymbol(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Index extends ExprPathStep { + @NotNull + public Expr key; + + public Index(@NotNull Expr key) { + this.key = key; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(key); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprPathStepIndex(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Wildcard extends ExprPathStep { + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprPathStepWildcard(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Unpivot extends ExprPathStep { + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprPathStepUnpivot(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPosition.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPosition.java new file mode 100644 index 0000000000..abadcefb00 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPosition.java @@ -0,0 +1,39 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprPosition extends Expr { + @NotNull + public Expr lhs; + + @NotNull + public Expr rhs; + + public ExprPosition(@NotNull Expr lhs, @NotNull Expr rhs) { + this.lhs = lhs; + this.rhs = rhs; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(lhs); + kids.add(rhs); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprPosition(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprQuerySet.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprQuerySet.java new file mode 100644 index 0000000000..5442eddd26 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprQuerySet.java @@ -0,0 +1,58 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.OrderBy; +import org.partiql.ast.v1.QueryBody; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprQuerySet extends Expr { + @NotNull + public QueryBody body; + + @Nullable + public OrderBy orderBy; + + @Nullable + public Expr limit; + + @Nullable + public Expr offset; + + public ExprQuerySet(@NotNull QueryBody body, @Nullable OrderBy orderBy, @Nullable Expr limit, @Nullable Expr offset) { + this.body = body; + this.orderBy = orderBy; + this.limit = limit; + this.offset = offset; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(body); + if (orderBy != null) { + kids.add(orderBy); + } + if (limit != null) { + kids.add(limit); + } + if (offset != null) { + kids.add(offset); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprQuerySet(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSessionAttribute.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSessionAttribute.java new file mode 100644 index 0000000000..f1e491e87c --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSessionAttribute.java @@ -0,0 +1,40 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class ExprSessionAttribute extends Expr { + @NotNull + public Attribute attribute; + + public ExprSessionAttribute(@NotNull Attribute attribute) { + this.attribute = attribute; + } + + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprSessionAttribute(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public enum Attribute { + CURRENT_USER, + CURRENT_DATE, + OTHER + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprStruct.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprStruct.java new file mode 100644 index 0000000000..e54bed48a4 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprStruct.java @@ -0,0 +1,62 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprStruct extends Expr { + @NotNull + public List fields; + + public ExprStruct(@NotNull List fields) { + this.fields = fields; + } + + @Override + @NotNull + public Collection children() { + return new ArrayList<>(fields); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprStruct(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public static class Field extends AstNode { + @NotNull + public Expr name; + + @NotNull + public Expr value; + + public Field(@NotNull Expr name, @NotNull Expr value) { + this.name = name; + this.value = value; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(name); + kids.add(value); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprStructField(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSubstring.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSubstring.java new file mode 100644 index 0000000000..aa1a08ed2d --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSubstring.java @@ -0,0 +1,49 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprSubstring extends Expr { + @NotNull + public Expr value; + + @Nullable + public Expr start; + + @Nullable + public Expr length; + + public ExprSubstring(@NotNull Expr value, @Nullable Expr start, @Nullable Expr length) { + this.value = value; + this.start = start; + this.length = length; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(value); + if (start != null) { + kids.add(start); + } + if (length != null) { + kids.add(length); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprSubstring(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprTrim.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprTrim.java new file mode 100644 index 0000000000..aa95dba346 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprTrim.java @@ -0,0 +1,53 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprTrim extends Expr { + @NotNull + public Expr value; + + @Nullable + public Expr chars; + + @Nullable + public Spec spec; + + public ExprTrim(@NotNull Expr value, @Nullable Expr chars, @Nullable Spec spec) { + this.value = value; + this.chars = chars; + this.spec = spec; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(value); + if (chars != null) { + kids.add(chars); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprTrim(this, ctx); + } + + public enum Spec { + LEADING, + TRAILING, + BOTH, + OTHER + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprValues.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprValues.java new file mode 100644 index 0000000000..e9fe0cae07 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprValues.java @@ -0,0 +1,55 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprValues extends Expr { + @NotNull + public List rows; + + public ExprValues(@NotNull List rows) { + this.rows = rows; + } + + @Override + @NotNull + public Collection children() { + return new ArrayList<>(rows); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprValues(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public static class Row extends AstNode { + @NotNull + public List values; + + public Row(@NotNull List values) { + this.values = values; + } + + @Override + @NotNull + public Collection children() { + return new ArrayList<>(values); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprValuesRow(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVar.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVar.java new file mode 100644 index 0000000000..a69b948828 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVar.java @@ -0,0 +1,48 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.Identifier; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprVar extends Expr { + @NotNull + public Identifier identifier; + + @NotNull + public Scope scope; + + public ExprVar(@NotNull Identifier identifier, @NotNull Scope scope) { + this.identifier = identifier; + this.scope = scope; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(identifier); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprVar(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public enum Scope { + DEFAULT, + LOCAL, + OTHER + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprWindow.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprWindow.java new file mode 100644 index 0000000000..59ef292764 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprWindow.java @@ -0,0 +1,102 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.Sort; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class ExprWindow extends Expr { + @NotNull + public Function function; + + @NotNull + public Expr expression; + + @Nullable + public Expr offset; + + @Nullable + public Expr defaultValue; + + @NotNull + public Over over; + + public ExprWindow(@NotNull Function function, @NotNull Expr expression, @Nullable Expr offset, @Nullable Expr defaultValue, @NotNull Over over) { + this.function = function; + this.expression = expression; + this.offset = offset; + this.defaultValue = defaultValue; + this.over = over; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(expression); + if (offset != null) { + kids.add(offset); + } + if (defaultValue != null) { + kids.add(defaultValue); + } + kids.add(over); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprWindow(this, ctx); + } + + /** + * TODO docs, equals, hashcode + */ + public enum Function { + LAG, + LEAD, + OTHER + } + + /** + * TODO docs, equals, hashcode + */ + public static class Over extends AstNode { + @Nullable + public List partitions; + + @Nullable + public List sorts; + + public Over(@Nullable List partitions, @Nullable List sorts) { + this.partitions = partitions; + this.sorts = sorts; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + if (partitions != null) { + kids.addAll(partitions); + } + if (sorts != null) { + kids.addAll(sorts); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitExprWindowOver(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphDirection.kt b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphDirection.java similarity index 73% rename from partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphDirection.kt rename to partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphDirection.java index 7b33ca4c3c..1e43e8bbc4 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphDirection.kt +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphDirection.java @@ -1,9 +1,9 @@ -package org.partiql.ast.v1.graph +package org.partiql.ast.v1.graph; /** * TODO docs, equals, hashcode */ -public enum class GraphDirection { +public enum GraphDirection { LEFT, UNDIRECTED, RIGHT, diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphLabel.java b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphLabel.java new file mode 100644 index 0000000000..415c4be7f5 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphLabel.java @@ -0,0 +1,141 @@ +package org.partiql.ast.v1.graph; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public abstract class GraphLabel extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof Name) { + return visitor.visitGraphLabelName((Name) this, ctx); + } else if (this instanceof Wildcard) { + return visitor.visitGraphLabelWildcard((Wildcard) this, ctx); + } else if (this instanceof Negation) { + return visitor.visitGraphLabelNegation((Negation) this, ctx); + } else if (this instanceof Conj) { + return visitor.visitGraphLabelConj((Conj) this, ctx); + } else if (this instanceof Disj) { + return visitor.visitGraphLabelDisj((Disj) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Name extends GraphLabel { + @NotNull + public String name; + + public Name(@NotNull String name) { + this.name = name; + } + + @Override + @NotNull + public Collection children() { + return new ArrayList<>(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphLabelName(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Wildcard extends GraphLabel { + @Override + @NotNull + public Collection children() { + return new ArrayList<>(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphLabelWildcard(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Negation extends GraphLabel { + @NotNull + public GraphLabel arg; + + public Negation(@NotNull GraphLabel arg) { + this.arg = arg; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(arg); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphLabelNegation(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Conj extends GraphLabel { + @NotNull + public List args; + + public Conj(@NotNull List args) { + this.args = args; + } + + @Override + @NotNull + public Collection children() { + return new ArrayList<>(args); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphLabelConj(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Disj extends GraphLabel { + @NotNull + public List args; + + public Disj(@NotNull List args) { + this.args = args; + } + + @Override + @NotNull + public Collection children() { + return new ArrayList<>(args); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphLabelDisj(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphMatch.java b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphMatch.java new file mode 100644 index 0000000000..437b828dbc --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphMatch.java @@ -0,0 +1,41 @@ +package org.partiql.ast.v1.graph; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class GraphMatch extends AstNode { + @NotNull + public List patterns; + + @Nullable + public GraphSelector selector; + + public GraphMatch(@NotNull List patterns, @Nullable GraphSelector selector) { + this.patterns = patterns; + this.selector = selector; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(patterns); + if (selector != null) { + kids.add(selector); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphMatch(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphPart.java b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphPart.java new file mode 100644 index 0000000000..19d6fa404e --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphPart.java @@ -0,0 +1,142 @@ +package org.partiql.ast.v1.graph; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public abstract class GraphPart extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof Node) { + return visitor.visitGraphPartNode((Node) this, ctx); + } else if (this instanceof Edge) { + return visitor.visitGraphPartEdge((Edge) this, ctx); + } else if (this instanceof Pattern) { + return visitor.visitGraphPartPattern((Pattern) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Node extends GraphPart { + @Nullable + public Expr prefilter; + + @Nullable + public String variable; + + @Nullable + public GraphLabel label; + + public Node(@Nullable Expr prefilter, @Nullable String variable, @Nullable GraphLabel label) { + this.prefilter = prefilter; + this.variable = variable; + this.label = label; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + if (prefilter != null) { + kids.add(prefilter); + } + if (label != null) { + kids.add(label); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphPartNode(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Edge extends GraphPart { + @NotNull + public GraphDirection direction; + + @Nullable + public GraphQuantifier quantifier; + + @Nullable + public Expr prefilter; + + @Nullable + public String variable; + + @Nullable + public GraphLabel label; + + public Edge(@NotNull GraphDirection direction, @Nullable GraphQuantifier quantifier, + @Nullable Expr prefilter, @Nullable String variable, @Nullable GraphLabel label) { + this.direction = direction; + this.quantifier = quantifier; + this.prefilter = prefilter; + this.variable = variable; + this.label = label; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + if (quantifier != null) { + kids.add(quantifier); + } + if (prefilter != null) { + kids.add(prefilter); + } + if (label != null) { + kids.add(label); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphPartEdge(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Pattern extends GraphPart { + @NotNull + public GraphPattern pattern; + + public Pattern(@NotNull GraphPattern pattern) { + this.pattern = pattern; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(pattern); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphPartPattern(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphPattern.java b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphPattern.java new file mode 100644 index 0000000000..047efc8964 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphPattern.java @@ -0,0 +1,60 @@ +package org.partiql.ast.v1.graph; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.expr.Expr; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public class GraphPattern extends AstNode { + @Nullable + public GraphRestrictor restrictor; + + @Nullable + public Expr prefilter; + + @Nullable + public String variable; + + @Nullable + public GraphQuantifier quantifier; + + @NotNull + public List parts; + + public GraphPattern(@Nullable GraphRestrictor restrictor, @Nullable Expr prefilter, + @Nullable String variable, @Nullable GraphQuantifier quantifier, + @NotNull List parts) { + this.restrictor = restrictor; + this.prefilter = prefilter; + this.variable = variable; + this.quantifier = quantifier; + this.parts = parts; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + if (prefilter != null) { + kids.add(prefilter); + } + if (quantifier != null) { + kids.add(quantifier); + } + kids.addAll(parts); + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphMatchPattern(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphQuantifier.java b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphQuantifier.java new file mode 100644 index 0000000000..6c02363f1c --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphQuantifier.java @@ -0,0 +1,36 @@ +package org.partiql.ast.v1.graph; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class GraphQuantifier extends AstNode { + @NotNull + public Long lower; + + @Nullable + public Long upper; + + public GraphQuantifier(@NotNull Long lower, @Nullable Long upper) { + this.lower = lower; + this.upper = upper; + } + + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphQuantifier(this, ctx); + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphRestrictor.kt b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphRestrictor.java similarity index 56% rename from partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphRestrictor.kt rename to partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphRestrictor.java index 90deec4c2b..602a3ebd2e 100644 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphRestrictor.kt +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphRestrictor.java @@ -1,9 +1,9 @@ -package org.partiql.ast.v1.graph +package org.partiql.ast.v1.graph; /** * TODO docs, equals, hashcode */ -public enum class GraphRestrictor { +public enum GraphRestrictor { TRAIL, ACYCLIC, SIMPLE, diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphSelector.java b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphSelector.java new file mode 100644 index 0000000000..149186477a --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphSelector.java @@ -0,0 +1,146 @@ +package org.partiql.ast.v1.graph; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public abstract class GraphSelector extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof AnyShortest) { + return visitor.visitGraphSelectorAnyShortest((AnyShortest) this, ctx); + } else if (this instanceof AllShortest) { + return visitor.visitGraphSelectorAllShortest((AllShortest) this, ctx); + } else if (this instanceof Any) { + return visitor.visitGraphSelectorAny((Any) this, ctx); + } else if (this instanceof AnyK) { + return visitor.visitGraphSelectorAnyK((AnyK) this, ctx); + } else if (this instanceof ShortestK) { + return visitor.visitGraphSelectorShortestK((ShortestK) this, ctx); + } else if (this instanceof ShortestKGroup) { + return visitor.visitGraphSelectorShortestKGroup((ShortestKGroup) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class AnyShortest extends GraphSelector { + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphSelectorAnyShortest(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class AllShortest extends GraphSelector { + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphSelectorAllShortest(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Any extends GraphSelector { + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphSelectorAny(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class AnyK extends GraphSelector { + public long k; + + public AnyK(long k) { + this.k = k; + } + + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphSelectorAnyK(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class ShortestK extends GraphSelector { + public long k; + + public ShortestK(long k) { + this.k = k; + } + + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphSelectorShortestK(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class ShortestKGroup extends GraphSelector { + public long k; + + public ShortestKGroup(long k) { + this.k = k; + } + + @Override + @NotNull + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitGraphSelectorShortestKGroup(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java new file mode 100644 index 0000000000..0d2525810c --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java @@ -0,0 +1,91 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +/** + * TODO docs, equals, hashcode + */ +public abstract class Type extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof TypeNull) { + return visitor.visitTypeNull((TypeNull) this, ctx); + } else if (this instanceof TypeMissing) { + return visitor.visitTypeMissing((TypeMissing) this, ctx); + } else if (this instanceof TypeBool) { + return visitor.visitTypeBool((TypeBool) this, ctx); + } else if (this instanceof TypeTinyint) { + return visitor.visitTypeTinyint((TypeTinyint) this, ctx); + } else if (this instanceof TypeSmallint) { + return visitor.visitTypeSmallint((TypeSmallint) this, ctx); + } else if (this instanceof TypeInt2) { + return visitor.visitTypeInt2((TypeInt2) this, ctx); + } else if (this instanceof TypeInt4) { + return visitor.visitTypeInt4((TypeInt4) this, ctx); + } else if (this instanceof TypeBigint) { + return visitor.visitTypeBigint((TypeBigint) this, ctx); + } else if (this instanceof TypeInt8) { + return visitor.visitTypeInt8((TypeInt8) this, ctx); + } else if (this instanceof TypeInt) { + return visitor.visitTypeInt((TypeInt) this, ctx); + } else if (this instanceof TypeReal) { + return visitor.visitTypeReal((TypeReal) this, ctx); + } else if (this instanceof TypeFloat32) { + return visitor.visitTypeFloat32((TypeFloat32) this, ctx); + } else if (this instanceof TypeFloat64) { + return visitor.visitTypeFloat64((TypeFloat64) this, ctx); + } else if (this instanceof TypeDecimal) { + return visitor.visitTypeDecimal((TypeDecimal) this, ctx); + } else if (this instanceof TypeNumeric) { + return visitor.visitTypeNumeric((TypeNumeric) this, ctx); + } else if (this instanceof TypeChar) { + return visitor.visitTypeChar((TypeChar) this, ctx); + } else if (this instanceof TypeVarchar) { + return visitor.visitTypeVarchar((TypeVarchar) this, ctx); + } else if (this instanceof TypeString) { + return visitor.visitTypeString((TypeString) this, ctx); + } else if (this instanceof TypeSymbol) { + return visitor.visitTypeSymbol((TypeSymbol) this, ctx); + } else if (this instanceof TypeBit) { + return visitor.visitTypeBit((TypeBit) this, ctx); + } else if (this instanceof TypeBitVarying) { + return visitor.visitTypeBitVarying((TypeBitVarying) this, ctx); + } else if (this instanceof TypeByteString) { + return visitor.visitTypeByteString((TypeByteString) this, ctx); + } else if (this instanceof TypeBlob) { + return visitor.visitTypeBlob((TypeBlob) this, ctx); + } else if (this instanceof TypeClob) { + return visitor.visitTypeClob((TypeClob) this, ctx); + } else if (this instanceof TypeDate) { + return visitor.visitTypeDate((TypeDate) this, ctx); + } else if (this instanceof TypeTime) { + return visitor.visitTypeTime((TypeTime) this, ctx); + } else if (this instanceof TypeTimeWithTz) { + return visitor.visitTypeTimeWithTz((TypeTimeWithTz) this, ctx); + } else if (this instanceof TypeTimestamp) { + return visitor.visitTypeTimestamp((TypeTimestamp) this, ctx); + } else if (this instanceof TypeTimestampWithTz) { + return visitor.visitTypeTimestampWithTz((TypeTimestampWithTz) this, ctx); + } else if (this instanceof TypeInterval) { + return visitor.visitTypeInterval((TypeInterval) this, ctx); + } else if (this instanceof TypeBag) { + return visitor.visitTypeBag((TypeBag) this, ctx); + } else if (this instanceof TypeList) { + return visitor.visitTypeList((TypeList) this, ctx); + } else if (this instanceof TypeSexp) { + return visitor.visitTypeSexp((TypeSexp) this, ctx); + } else if (this instanceof TypeTuple) { + return visitor.visitTypeTuple((TypeTuple) this, ctx); + } else if (this instanceof TypeStruct) { + return visitor.visitTypeStruct((TypeStruct) this, ctx); + } else if (this instanceof TypeAny) { + return visitor.visitTypeAny((TypeAny) this, ctx); + } else if (this instanceof TypeCustom) { + return visitor.visitTypeCustom((TypeCustom) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeAny.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeAny.java new file mode 100644 index 0000000000..6ff9328138 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeAny.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeAny extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeAny(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBag.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBag.java new file mode 100644 index 0000000000..6b42abb106 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBag.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeBag extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeBag(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBigint.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBigint.java new file mode 100644 index 0000000000..262a1730f5 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBigint.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeBigint extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeBigint(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBit.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBit.java new file mode 100644 index 0000000000..831b09d2fd --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBit.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeBit extends Type { + @Nullable + public Integer length; + + public TypeBit(@Nullable Integer length) { + this.length = length; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeBit(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBitVarying.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBitVarying.java new file mode 100644 index 0000000000..2987bc3460 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBitVarying.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeBitVarying extends Type { + @Nullable + public Integer length; + + public TypeBitVarying(@Nullable Integer length) { + this.length = length; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeBitVarying(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBlob.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBlob.java new file mode 100644 index 0000000000..572ec323b2 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBlob.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeBlob extends Type { + @Nullable + public Integer length; + + public TypeBlob(@Nullable Integer length) { + this.length = length; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeBlob(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBool.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBool.java new file mode 100644 index 0000000000..41b2a56ec2 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBool.java @@ -0,0 +1,28 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeBool extends Type { + public static final TypeBool INSTANCE = new TypeBool(); + + private TypeBool() {} + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeBool(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeByteString.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeByteString.java new file mode 100644 index 0000000000..6c11b95489 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeByteString.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeByteString extends Type { + @Nullable + public Integer length; + + public TypeByteString(@Nullable Integer length) { + this.length = length; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeByteString(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeChar.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeChar.java new file mode 100644 index 0000000000..95171ba6c7 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeChar.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeChar extends Type { + @Nullable + public Integer length; + + public TypeChar(@Nullable Integer length) { + this.length = length; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeChar(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeClob.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeClob.java new file mode 100644 index 0000000000..048dab9d8b --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeClob.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeClob extends Type { + @Nullable + public Integer length; + + public TypeClob(@Nullable Integer length) { + this.length = length; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeClob(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeCustom.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeCustom.java new file mode 100644 index 0000000000..fa40ce3e89 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeCustom.java @@ -0,0 +1,31 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeCustom extends Type { + @NotNull + public String name; + + public TypeCustom(@NotNull String name) { + this.name = name; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeCustom(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDate.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDate.java new file mode 100644 index 0000000000..65565126ba --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDate.java @@ -0,0 +1,28 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeDate extends Type { + public static final TypeDate INSTANCE = new TypeDate(); + + private TypeDate() {} + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeDate(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDecimal.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDecimal.java new file mode 100644 index 0000000000..1f619a3f58 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDecimal.java @@ -0,0 +1,36 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeDecimal extends Type { + @Nullable + public Integer precision; + + @Nullable + public Integer scale; + + public TypeDecimal(@Nullable Integer precision, @Nullable Integer scale) { + this.precision = precision; + this.scale = scale; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeDecimal(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat32.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat32.java new file mode 100644 index 0000000000..8760feb30f --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat32.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeFloat32 extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeFloat32(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat64.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat64.java new file mode 100644 index 0000000000..9cee8cf2d5 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat64.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeFloat64 extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeFloat64(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt.java new file mode 100644 index 0000000000..8eccbc4601 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeInt extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeInt(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt2.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt2.java new file mode 100644 index 0000000000..c3840981f2 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt2.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeInt2 extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeInt2(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt4.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt4.java new file mode 100644 index 0000000000..fae081e456 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt4.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeInt4 extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeInt4(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt8.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt8.java new file mode 100644 index 0000000000..83bf6f0ba6 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt8.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeInt8 extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeInt8(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInterval.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInterval.java new file mode 100644 index 0000000000..f06fc69ff5 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInterval.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeInterval extends Type { + @Nullable + public Integer precision; + + public TypeInterval(@Nullable Integer precision) { + this.precision = precision; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeInterval(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeList.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeList.java new file mode 100644 index 0000000000..fd22400985 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeList.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeList extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeList(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeMissing.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeMissing.java new file mode 100644 index 0000000000..e1a822330b --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeMissing.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeMissing extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeMissing(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNull.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNull.java new file mode 100644 index 0000000000..af6d3e1bec --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNull.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeNull extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeNull(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNumeric.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNumeric.java new file mode 100644 index 0000000000..cdd82f65cf --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNumeric.java @@ -0,0 +1,36 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeNumeric extends Type { + @Nullable + public Integer precision; + + @Nullable + public Integer scale; + + public TypeNumeric(@Nullable Integer precision, @Nullable Integer scale) { + this.precision = precision; + this.scale = scale; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeNumeric(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeReal.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeReal.java new file mode 100644 index 0000000000..643db2c912 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeReal.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeReal extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeReal(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSexp.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSexp.java new file mode 100644 index 0000000000..f8f92a8a6b --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSexp.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeSexp extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeSexp(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSmallint.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSmallint.java new file mode 100644 index 0000000000..7889aa1df7 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSmallint.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeSmallint extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeSmallint(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeString.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeString.java new file mode 100644 index 0000000000..0b7a9a0868 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeString.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeString extends Type { + @Nullable + public Integer length; + + public TypeString(@Nullable Integer length) { + this.length = length; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeString(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeStruct.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeStruct.java new file mode 100644 index 0000000000..f55bc4e518 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeStruct.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeStruct extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeStruct(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSymbol.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSymbol.java new file mode 100644 index 0000000000..142b88bfa7 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSymbol.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeSymbol extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeSymbol(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTime.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTime.java new file mode 100644 index 0000000000..951cb0878b --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTime.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeTime extends Type { + @Nullable + public Integer precision; + + public TypeTime(@Nullable Integer precision) { + this.precision = precision; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeTime(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimeWithTz.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimeWithTz.java new file mode 100644 index 0000000000..d35879c50c --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimeWithTz.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeTimeWithTz extends Type { + @Nullable + public Integer precision; + + public TypeTimeWithTz(@Nullable Integer precision) { + this.precision = precision; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeTimeWithTz(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestamp.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestamp.java new file mode 100644 index 0000000000..7688167ac0 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestamp.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeTimestamp extends Type { + @Nullable + public Integer precision; + + public TypeTimestamp(@Nullable Integer precision) { + this.precision = precision; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeTimestamp(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestampWithTz.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestampWithTz.java new file mode 100644 index 0000000000..a733cd6561 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestampWithTz.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeTimestampWithTz extends Type { + @Nullable + public Integer precision; + + public TypeTimestampWithTz(@Nullable Integer precision) { + this.precision = precision; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeTimestampWithTz(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTinyint.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTinyint.java new file mode 100644 index 0000000000..2742c732ef --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTinyint.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeTinyint extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeTinyint(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTuple.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTuple.java new file mode 100644 index 0000000000..e4e38738f0 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTuple.java @@ -0,0 +1,24 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeTuple extends Type { + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeTuple(this, ctx); + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeVarchar.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeVarchar.java new file mode 100644 index 0000000000..8ab6f79121 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeVarchar.java @@ -0,0 +1,32 @@ +package org.partiql.ast.v1.type; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; + +import java.util.Collection; +import java.util.Collections; + +/** + * TODO docs, equals, hashcode + */ +public class TypeVarchar extends Type { + @Nullable + public Integer length; + + public TypeVarchar(@Nullable Integer length) { + this.length = length; + } + + @NotNull + @Override + public Collection children() { + return Collections.emptyList(); + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitTypeVarchar(this, ctx); + } +} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstNode.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstNode.kt deleted file mode 100644 index 5cbe6eaac3..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstNode.kt +++ /dev/null @@ -1,15 +0,0 @@ -package org.partiql.ast.v1 - -import kotlin.random.Random - -/** - * TODO docs, equals, hashcode - */ -public abstract class AstNode { - @JvmField - public var tag: String = "Ast-${"%06x".format(Random.nextInt())}" - - public abstract fun children(): Collection - - public abstract fun accept(visitor: AstVisitor, ctx: C): R -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt deleted file mode 100644 index 31b1c1a57b..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/AstVisitor.kt +++ /dev/null @@ -1,410 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr -import org.partiql.ast.v1.expr.ExprAnd -import org.partiql.ast.v1.expr.ExprBetween -import org.partiql.ast.v1.expr.ExprCall -import org.partiql.ast.v1.expr.ExprCase -import org.partiql.ast.v1.expr.ExprCast -import org.partiql.ast.v1.expr.ExprCoalesce -import org.partiql.ast.v1.expr.ExprCollection -import org.partiql.ast.v1.expr.ExprDateAdd -import org.partiql.ast.v1.expr.ExprDateDiff -import org.partiql.ast.v1.expr.ExprExtract -import org.partiql.ast.v1.expr.ExprInCollection -import org.partiql.ast.v1.expr.ExprIon -import org.partiql.ast.v1.expr.ExprIsType -import org.partiql.ast.v1.expr.ExprLike -import org.partiql.ast.v1.expr.ExprLit -import org.partiql.ast.v1.expr.ExprMatch -import org.partiql.ast.v1.expr.ExprNot -import org.partiql.ast.v1.expr.ExprNullIf -import org.partiql.ast.v1.expr.ExprOperator -import org.partiql.ast.v1.expr.ExprOr -import org.partiql.ast.v1.expr.ExprOverlay -import org.partiql.ast.v1.expr.ExprParameter -import org.partiql.ast.v1.expr.ExprPath -import org.partiql.ast.v1.expr.ExprPathStep -import org.partiql.ast.v1.expr.ExprPosition -import org.partiql.ast.v1.expr.ExprQuerySet -import org.partiql.ast.v1.expr.ExprSessionAttribute -import org.partiql.ast.v1.expr.ExprStruct -import org.partiql.ast.v1.expr.ExprSubstring -import org.partiql.ast.v1.expr.ExprTrim -import org.partiql.ast.v1.expr.ExprValues -import org.partiql.ast.v1.expr.ExprVar -import org.partiql.ast.v1.expr.ExprWindow -import org.partiql.ast.v1.graph.GraphLabel -import org.partiql.ast.v1.graph.GraphMatch -import org.partiql.ast.v1.graph.GraphPart -import org.partiql.ast.v1.graph.GraphPattern -import org.partiql.ast.v1.graph.GraphQuantifier -import org.partiql.ast.v1.graph.GraphSelector -import org.partiql.ast.v1.type.Type -import org.partiql.ast.v1.type.TypeAny -import org.partiql.ast.v1.type.TypeBag -import org.partiql.ast.v1.type.TypeBigint -import org.partiql.ast.v1.type.TypeBit -import org.partiql.ast.v1.type.TypeBitVarying -import org.partiql.ast.v1.type.TypeBlob -import org.partiql.ast.v1.type.TypeBool -import org.partiql.ast.v1.type.TypeByteString -import org.partiql.ast.v1.type.TypeChar -import org.partiql.ast.v1.type.TypeClob -import org.partiql.ast.v1.type.TypeCustom -import org.partiql.ast.v1.type.TypeDate -import org.partiql.ast.v1.type.TypeDecimal -import org.partiql.ast.v1.type.TypeFloat32 -import org.partiql.ast.v1.type.TypeFloat64 -import org.partiql.ast.v1.type.TypeInt -import org.partiql.ast.v1.type.TypeInt2 -import org.partiql.ast.v1.type.TypeInt4 -import org.partiql.ast.v1.type.TypeInt8 -import org.partiql.ast.v1.type.TypeInterval -import org.partiql.ast.v1.type.TypeList -import org.partiql.ast.v1.type.TypeMissing -import org.partiql.ast.v1.type.TypeNull -import org.partiql.ast.v1.type.TypeNumeric -import org.partiql.ast.v1.type.TypeReal -import org.partiql.ast.v1.type.TypeSexp -import org.partiql.ast.v1.type.TypeSmallint -import org.partiql.ast.v1.type.TypeString -import org.partiql.ast.v1.type.TypeStruct -import org.partiql.ast.v1.type.TypeSymbol -import org.partiql.ast.v1.type.TypeTime -import org.partiql.ast.v1.type.TypeTimeWithTz -import org.partiql.ast.v1.type.TypeTimestamp -import org.partiql.ast.v1.type.TypeTimestampWithTz -import org.partiql.ast.v1.type.TypeTinyint -import org.partiql.ast.v1.type.TypeTuple -import org.partiql.ast.v1.type.TypeVarchar - -/** - * TODO docs, equals, hashcode - */ -public interface AstVisitor { - public fun visit(node: AstNode, ctx: C): R - - public fun visitStatement(node: Statement, ctx: C): R - - public fun visitQuery(node: Query, ctx: C): R - - public fun visitDDL(node: DDL, ctx: C): R - - public fun visitCreateTable(node: CreateTable, ctx: C): R - - public fun visitCreateIndex(node: CreateIndex, ctx: C): R - - public fun visitDropTable(node: DropTable, ctx: C): R - - public fun visitDropIndex(node: DropIndex, ctx: C): R - - public fun visitExplain(node: Explain, ctx: C): R - - public fun visitTarget(node: Target, ctx: C): R - - public fun visitTargetDomain(node: Target.Domain, ctx: C): R - - public fun visitType(node: Type, ctx: C): R - - public fun visitTypeNull(node: TypeNull, ctx: C): R - - public fun visitTypeMissing(node: TypeMissing, ctx: C): R - - public fun visitTypeBool(node: TypeBool, ctx: C): R - - public fun visitTypeTinyint(node: TypeTinyint, ctx: C): R - - public fun visitTypeSmallint(node: TypeSmallint, ctx: C): R - - public fun visitTypeInt2(node: TypeInt2, ctx: C): R - - public fun visitTypeInt4(node: TypeInt4, ctx: C): R - - public fun visitTypeBigint(node: TypeBigint, ctx: C): R - - public fun visitTypeInt8(node: TypeInt8, ctx: C): R - - public fun visitTypeInt(node: TypeInt, ctx: C): R - - public fun visitTypeReal(node: TypeReal, ctx: C): R - - public fun visitTypeFloat32(node: TypeFloat32, ctx: C): R - - public fun visitTypeFloat64(node: TypeFloat64, ctx: C): R - - public fun visitTypeDecimal(node: TypeDecimal, ctx: C): R - - public fun visitTypeNumeric(node: TypeNumeric, ctx: C): R - - public fun visitTypeChar(node: TypeChar, ctx: C): R - - public fun visitTypeVarchar(node: TypeVarchar, ctx: C): R - - public fun visitTypeString(node: TypeString, ctx: C): R - - public fun visitTypeSymbol(node: TypeSymbol, ctx: C): R - - public fun visitTypeBit(node: TypeBit, ctx: C): R - - public fun visitTypeBitVarying(node: TypeBitVarying, ctx: C): R - - public fun visitTypeByteString(node: TypeByteString, ctx: C): R - - public fun visitTypeBlob(node: TypeBlob, ctx: C): R - - public fun visitTypeClob(node: TypeClob, ctx: C): R - - public fun visitTypeDate(node: TypeDate, ctx: C): R - - public fun visitTypeTime(node: TypeTime, ctx: C): R - - public fun visitTypeTimeWithTz(node: TypeTimeWithTz, ctx: C): R - - public fun visitTypeTimestamp(node: TypeTimestamp, ctx: C): R - - public fun visitTypeTimestampWithTz(node: TypeTimestampWithTz, ctx: C): R - - public fun visitTypeInterval(node: TypeInterval, ctx: C): R - - public fun visitTypeBag(node: TypeBag, ctx: C): R - - public fun visitTypeList(node: TypeList, ctx: C): R - - public fun visitTypeSexp(node: TypeSexp, ctx: C): R - - public fun visitTypeTuple(node: TypeTuple, ctx: C): R - - public fun visitTypeStruct(node: TypeStruct, ctx: C): R - - public fun visitTypeAny(node: TypeAny, ctx: C): R - - public fun visitTypeCustom(node: TypeCustom, ctx: C): R - - public fun visitIdentifier(node: Identifier, ctx: C): R - - public fun visitIdentifierSymbol(node: Identifier.Symbol, ctx: C): R - - public fun visitIdentifierQualified(node: Identifier.Qualified, ctx: C): R - - public fun visitPathLit(node: PathLit, ctx: C): R - - public fun visitPathLitStep(node: PathLitStep, ctx: C): R - - public fun visitPathLitStepSymbol(node: PathLitStep.Symbol, ctx: C): R - - public fun visitPathLitStepIndex(node: PathLitStep.Index, ctx: C): R - - public fun visitExpr(node: Expr, ctx: C): R - - public fun visitExprLit(node: ExprLit, ctx: C): R - - public fun visitExprIon(node: ExprIon, ctx: C): R - - public fun visitExprVar(node: ExprVar, ctx: C): R - - public fun visitExprSessionAttribute(node: ExprSessionAttribute, ctx: C): R - - public fun visitExprPath(node: ExprPath, ctx: C): R - - public fun visitExprPathStep(node: ExprPathStep, ctx: C): R - - public fun visitExprPathStepSymbol(node: ExprPathStep.Symbol, ctx: C): R - - public fun visitExprPathStepIndex(node: ExprPathStep.Index, ctx: C): R - - public fun visitExprPathStepWildcard(node: ExprPathStep.Wildcard, ctx: C): R - - public fun visitExprPathStepUnpivot(node: ExprPathStep.Unpivot, ctx: C): R - - public fun visitExprCall(node: ExprCall, ctx: C): R - - public fun visitExprParameter(node: ExprParameter, ctx: C): R - - public fun visitExprOperator(node: ExprOperator, ctx: C): R - - public fun visitExprNot(node: ExprNot, ctx: C): R - - public fun visitExprAnd(node: ExprAnd, ctx: C): R - - public fun visitExprOr(node: ExprOr, ctx: C): R - - public fun visitExprValues(node: ExprValues, ctx: C): R - - public fun visitExprValuesRow(node: ExprValues.Row, ctx: C): R - - public fun visitExprCollection(node: ExprCollection, ctx: C): R - - public fun visitExprStruct(node: ExprStruct, ctx: C): R - - public fun visitExprStructField(node: ExprStruct.Field, ctx: C): R - - public fun visitExprLike(node: ExprLike, ctx: C): R - - public fun visitExprBetween(node: ExprBetween, ctx: C): R - - public fun visitExprInCollection(node: ExprInCollection, ctx: C): R - - public fun visitExprIsType(node: ExprIsType, ctx: C): R - - public fun visitExprCase(node: ExprCase, ctx: C): R - - public fun visitExprCaseBranch(node: ExprCase.Branch, ctx: C): R - - public fun visitExprCoalesce(node: ExprCoalesce, ctx: C): R - - public fun visitExprNullIf(node: ExprNullIf, ctx: C): R - - public fun visitExprSubstring(node: ExprSubstring, ctx: C): R - - public fun visitExprPosition(node: ExprPosition, ctx: C): R - - public fun visitExprTrim(node: ExprTrim, ctx: C): R - - public fun visitExprOverlay(node: ExprOverlay, ctx: C): R - - public fun visitExprExtract(node: ExprExtract, ctx: C): R - - public fun visitExprCast(node: ExprCast, ctx: C): R - - public fun visitExprDateAdd(node: ExprDateAdd, ctx: C): R - - public fun visitExprDateDiff(node: ExprDateDiff, ctx: C): R - - public fun visitExprQuerySet(node: ExprQuerySet, ctx: C): R - - public fun visitExprMatch(node: ExprMatch, ctx: C): R - - public fun visitExprWindow(node: ExprWindow, ctx: C): R - - public fun visitExprWindowOver(node: ExprWindow.Over, ctx: C): R - - public fun visitQueryBody(node: QueryBody, ctx: C): R - - public fun visitQueryBodySFW(node: QueryBody.SFW, ctx: C): R - - public fun visitQueryBodySetOp(node: QueryBody.SetOp, ctx: C): R - - public fun visitSelect(node: Select, ctx: C): R - - public fun visitSelectStar(node: SelectStar, ctx: C): R - - public fun visitSelectProject(node: SelectProject, ctx: C): R - - public fun visitProjectItem(node: ProjectItem, ctx: C): R - - public fun visitProjectItemAll(node: ProjectItem.All, ctx: C): R - - public fun visitProjectItemExpression(node: ProjectItem.Expression, ctx: C): R - - public fun visitSelectPivot(node: SelectPivot, ctx: C): R - - public fun visitSelectValue(node: SelectValue, ctx: C): R - - public fun visitExclude(node: Exclude, ctx: C): R - - public fun visitExcludePath(node: ExcludePath, ctx: C): R - - public fun visitExcludeStep(node: ExcludeStep, ctx: C): R - - public fun visitExcludeStepStructField(node: ExcludeStep.StructField, ctx: C): R - - public fun visitExcludeStepCollIndex(node: ExcludeStep.CollIndex, ctx: C): R - - public fun visitExcludeStepStructWildcard(node: ExcludeStep.StructWildcard, ctx: C): R - - public fun visitExcludeStepCollWildcard(node: ExcludeStep.CollWildcard, ctx: C): R - - public fun visitFrom(node: From, ctx: C): R - - public fun visitFromValue(node: FromValue, ctx: C): R - - public fun visitFromJoin(node: FromJoin, ctx: C): R - - public fun visitLet(node: Let, ctx: C): R - - public fun visitLetBinding(node: Let.Binding, ctx: C): R - - public fun visitGroupBy(node: GroupBy, ctx: C): R - - public fun visitGroupByKey(node: GroupBy.Key, ctx: C): R - - public fun visitOrderBy(node: OrderBy, ctx: C): R - - public fun visitSort(node: Sort, ctx: C): R - - public fun visitSetOp(node: SetOp, ctx: C): R - - public fun visitGraphMatch(node: GraphMatch, ctx: C): R - - public fun visitGraphMatchPattern(node: GraphPattern, ctx: C): R - - public fun visitGraphPart(node: GraphPart, ctx: C): R - - public fun visitGraphPartNode(node: GraphPart.Node, ctx: C): R - - public fun visitGraphPartEdge(node: GraphPart.Edge, ctx: C): R - - public fun visitGraphPartPattern(node: GraphPart.Pattern, ctx: C): R - - public fun visitGraphQuantifier(node: GraphQuantifier, ctx: C): R - - public fun visitGraphSelector(node: GraphSelector, ctx: C): R - - public fun visitGraphSelectorAnyShortest(node: GraphSelector.AnyShortest, ctx: C): R - - public fun visitGraphSelectorAllShortest(node: GraphSelector.AllShortest, ctx: C): R - - public fun visitGraphSelectorAny(node: GraphSelector.Any, ctx: C): R - - public fun visitGraphSelectorAnyK(node: GraphSelector.AnyK, ctx: C): R - - public fun visitGraphSelectorShortestK(node: GraphSelector.ShortestK, ctx: C): R - - public fun visitGraphSelectorShortestKGroup( - node: GraphSelector.ShortestKGroup, - ctx: C - ): R - - public fun visitGraphLabel(node: GraphLabel, ctx: C): R - - public fun visitGraphLabelName(node: GraphLabel.Name, ctx: C): R - - public fun visitGraphLabelWildcard(node: GraphLabel.Wildcard, ctx: C): R - - public fun visitGraphLabelNegation(node: GraphLabel.Negation, ctx: C): R - - public fun visitGraphLabelConj(node: GraphLabel.Conj, ctx: C): R - - public fun visitGraphLabelDisj(node: GraphLabel.Disj, ctx: C): R - - public fun visitTableDefinition(node: TableDefinition, ctx: C): R - - public fun visitColumn(node: Column, ctx: C): R - - public fun visitConstraint(node: Constraint, ctx: C): - R - - public fun visitConstraintBody( - node: ConstraintBody, - ctx: C - ): R - - public - fun visitConstraintBodyNullable( - node: ConstraintBody.Nullable, - ctx: C - ): R - - public - fun visitConstraintBodyNotNull( - node: ConstraintBody.NotNull, - ctx: C - ): R - - public - fun visitConstraintBodyCheck( - node: ConstraintBody.Check, - ctx: C - ): R -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Column.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Column.kt deleted file mode 100644 index 2a53708bda..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Column.kt +++ /dev/null @@ -1,25 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.type.Type - -/** - * TODO docs, equals, hashcode - */ -public class Column( - @JvmField - public var name: String, - @JvmField - public var type: Type, - @JvmField - public var constraints: List, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(type) - kids.addAll(constraints) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitColumn(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Constraint.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Constraint.kt deleted file mode 100644 index 102609d8d6..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Constraint.kt +++ /dev/null @@ -1,20 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class Constraint( - @JvmField - public var name: String?, - @JvmField - public var constraintBody: ConstraintBody, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(constraintBody) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitConstraint(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ConstraintBody.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ConstraintBody.kt deleted file mode 100644 index aa1e6b0c83..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ConstraintBody.kt +++ /dev/null @@ -1,52 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public abstract class ConstraintBody : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Nullable -> visitor.visitConstraintBodyNullable(this, ctx) - is NotNull -> visitor.visitConstraintBodyNotNull(this, ctx) - is Check -> visitor.visitConstraintBodyCheck(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public object Nullable : ConstraintBody() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitConstraintBodyNullable(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object NotNull : ConstraintBody() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitConstraintBodyNotNull(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Check( - @JvmField - public var expr: Expr, - ) : ConstraintBody() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitConstraintBodyCheck(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateIndex.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateIndex.kt deleted file mode 100644 index 14f40f19f7..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateIndex.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class CreateIndex( - @JvmField - public var index: Identifier?, - @JvmField - public var table: Identifier, - @JvmField - public var fields: List, -) : DDL() { - public override fun children(): Collection { - val kids = mutableListOf() - index?.let { kids.add(it) } - kids.add(table) - kids.addAll(fields) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitCreateIndex(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateTable.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateTable.kt deleted file mode 100644 index 0769158151..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/CreateTable.kt +++ /dev/null @@ -1,21 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class CreateTable( - @JvmField - public var name: Identifier, - @JvmField - public var definition: TableDefinition?, -) : DDL() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(name) - definition?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitCreateTable(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DDL.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DDL.kt deleted file mode 100644 index 7d01f8db6f..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DDL.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public abstract class DDL : Statement() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is CreateTable -> visitor.visitCreateTable(this, ctx) - is CreateIndex -> visitor.visitCreateIndex(this, ctx) - is DropTable -> visitor.visitDropTable(this, ctx) - is DropIndex -> visitor.visitDropIndex(this, ctx) - else -> throw NotImplementedError() - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropIndex.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropIndex.kt deleted file mode 100644 index 907e7afdf0..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropIndex.kt +++ /dev/null @@ -1,21 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class DropIndex( - @JvmField - public var index: Identifier, - @JvmField - public var table: Identifier, -) : DDL() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(index) - kids.add(table) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitDropIndex(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropTable.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropTable.kt deleted file mode 100644 index b74afae51b..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/DropTable.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class DropTable( - @JvmField - public var table: Identifier, -) : DDL() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(table) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitDropTable(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt deleted file mode 100644 index 9982c77f3e..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Exclude.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class Exclude( - @JvmField - public var excludePaths: List, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(excludePaths) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExclude(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludePath.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludePath.kt deleted file mode 100644 index d0bfc72bf4..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludePath.kt +++ /dev/null @@ -1,23 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.ExprVar - -/** - * TODO docs, equals, hashcode - */ -public class ExcludePath( - @JvmField - public var root: ExprVar, - @JvmField - public var excludeSteps: List, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(root) - kids.addAll(excludeSteps) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExcludePath(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludeStep.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludeStep.kt deleted file mode 100644 index c94a9150c3..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ExcludeStep.kt +++ /dev/null @@ -1,56 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public abstract class ExcludeStep : AstNode() { - /** - * TODO docs, equals, hashcode - */ - public class StructField( - @JvmField - public var symbol: Identifier.Symbol, - ) : ExcludeStep() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(symbol) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExcludeStepStructField(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class CollIndex( - @JvmField - public var index: Int, - ) : ExcludeStep() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExcludeStepCollIndex(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object StructWildcard : ExcludeStep() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExcludeStepStructWildcard(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object CollWildcard : ExcludeStep() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExcludeStepCollWildcard(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Explain.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Explain.kt deleted file mode 100644 index 15b2708536..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Explain.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class Explain( - @JvmField - public var target: Target, -) : Statement() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(target) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExplain(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt deleted file mode 100644 index 41c54acdd4..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/From.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public abstract class From : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is FromValue -> visitor.visitFromValue(this, ctx) - is FromJoin -> visitor.visitFromJoin(this, ctx) - else -> throw NotImplementedError() - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromJoin.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromJoin.kt deleted file mode 100644 index 17ede7dc30..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromJoin.kt +++ /dev/null @@ -1,44 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public class FromJoin( - @JvmField - public var lhs: From, - @JvmField - public var rhs: From, - @JvmField - public var type: Type?, - @JvmField - public var condition: Expr?, -) : From() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - condition?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitFromJoin(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Type { - INNER, - LEFT, - LEFT_OUTER, - RIGHT, - RIGHT_OUTER, - FULL, - FULL_OUTER, - CROSS, - COMMA, - OTHER, - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromValue.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromValue.kt deleted file mode 100644 index cd9a8025b7..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/FromValue.kt +++ /dev/null @@ -1,40 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public class FromValue( - @JvmField - public var expr: Expr, - @JvmField - public var type: Type, - @JvmField - public var asAlias: Identifier.Symbol?, - @JvmField - public var atAlias: Identifier.Symbol?, - @JvmField - public var byAlias: Identifier.Symbol?, -) : From() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - asAlias?.let { kids.add(it) } - atAlias?.let { kids.add(it) } - byAlias?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitFromValue(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Type { - SCAN, - UNPIVOT, - OTHER, - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt deleted file mode 100644 index a4d347197e..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/GroupBy.kt +++ /dev/null @@ -1,54 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public class GroupBy( - @JvmField - public var strategy: Strategy, - @JvmField - public var keys: List, - @JvmField - public var asAlias: Identifier.Symbol?, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(keys) - asAlias?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGroupBy(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Strategy { - FULL, - PARTIAL, - OTHER, - } - - /** - * TODO docs, equals, hashcode - */ - public class Key( - @JvmField - public var expr: Expr, - @JvmField - public var asAlias: Identifier.Symbol?, - ) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - asAlias?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGroupByKey(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt deleted file mode 100644 index be21d7005b..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Identifier.kt +++ /dev/null @@ -1,47 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public abstract class Identifier : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Symbol -> visitor.visitIdentifierSymbol(this, ctx) - is Qualified -> visitor.visitIdentifierQualified(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class Symbol( - @JvmField - public var symbol: String, - @JvmField - public var caseSensitivity: CaseSensitivity, - ) : Identifier() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitIdentifierSymbol(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Qualified( - @JvmField - public var root: Symbol, - @JvmField - public var steps: List, - ) : Identifier() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(root) - kids.addAll(steps) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitIdentifierQualified(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt deleted file mode 100644 index 43e853e34b..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Let.kt +++ /dev/null @@ -1,42 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public class Let( - @JvmField - public var bindings: List, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(bindings) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitLet( - this, - ctx - ) - - /** - * TODO docs, equals, hashcode - */ - public class Binding( - @JvmField - public var expr: Expr, - @JvmField - public var asAlias: Identifier.Symbol, - ) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - kids.add(asAlias) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitLetBinding(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/OrderBy.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/OrderBy.kt deleted file mode 100644 index b7f54e9fbc..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/OrderBy.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class OrderBy( - @JvmField - public var sorts: List, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(sorts) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitOrderBy(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt deleted file mode 100644 index 996801953c..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLit.kt +++ /dev/null @@ -1,23 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class PathLit( - @JvmField - public var root: Identifier.Symbol, - @JvmField - public var steps: List, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(root) - kids.addAll(steps) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitPathLit( - this, - ctx - ) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLitStep.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLitStep.kt deleted file mode 100644 index 286da60753..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/PathLitStep.kt +++ /dev/null @@ -1,36 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public abstract class PathLitStep : AstNode() { - /** - * TODO docs, equals, hashcode - */ - public class Symbol( - @JvmField - public var symbol: Identifier.Symbol, - ) : PathLitStep() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(symbol) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitPathLitStepSymbol(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Index( - @JvmField - public var index: Int, - ) : PathLitStep() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitPathLitStepIndex(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ProjectItem.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ProjectItem.kt deleted file mode 100644 index 2a60b608b7..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/ProjectItem.kt +++ /dev/null @@ -1,51 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public abstract class ProjectItem : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is All -> visitor.visitProjectItemAll(this, ctx) - is Expression -> visitor.visitProjectItemExpression(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class All( - @JvmField - public var expr: Expr, - ) : ProjectItem() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitProjectItemAll(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Expression( - @JvmField - public var expr: Expr, - @JvmField - public var asAlias: Identifier.Symbol?, - ) : ProjectItem() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - asAlias?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitProjectItemExpression(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Query.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Query.kt deleted file mode 100644 index 097a19b01c..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Query.kt +++ /dev/null @@ -1,20 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public class Query( - @JvmField - public var expr: Expr, -) : Statement() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitQuery(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt deleted file mode 100644 index 249dc69938..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/QueryBody.kt +++ /dev/null @@ -1,74 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public abstract class QueryBody : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is SFW -> visitor.visitQueryBodySFW(this, ctx) - is SetOp -> visitor.visitQueryBodySetOp(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class SFW( - @JvmField - public var select: Select, - @JvmField - public var exclude: Exclude?, - @JvmField - public var from: From, - @JvmField - public var let: Let?, - @JvmField - public var `where`: Expr?, - @JvmField - public var groupBy: GroupBy?, - @JvmField - public var having: Expr?, - ) : QueryBody() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(select) - exclude?.let { kids.add(it) } - kids.add(from) - let?.let { kids.add(it) } - where?.let { kids.add(it) } - groupBy?.let { kids.add(it) } - having?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitQueryBodySFW(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class SetOp( - @JvmField - public var type: org.partiql.ast.v1.SetOp, - @JvmField - public var isOuter: Boolean, - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, - ) : QueryBody() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(type) - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitQueryBodySetOp(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt deleted file mode 100644 index 1ffa12a71c..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Select.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public abstract class Select : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is SelectStar -> visitor.visitSelectStar(this, ctx) - is SelectProject -> visitor.visitSelectProject(this, ctx) - is SelectPivot -> visitor.visitSelectPivot(this, ctx) - is SelectValue -> visitor.visitSelectValue(this, ctx) - else -> throw NotImplementedError() - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectPivot.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectPivot.kt deleted file mode 100644 index e31da28e44..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectPivot.kt +++ /dev/null @@ -1,23 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public class SelectPivot( - @JvmField - public var key: Expr, - @JvmField - public var `value`: Expr, -) : Select() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(key) - kids.add(value) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitSelectPivot(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectProject.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectProject.kt deleted file mode 100644 index ea421bb7e7..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectProject.kt +++ /dev/null @@ -1,20 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class SelectProject( - @JvmField - public var items: List, - @JvmField - public var setq: SetQuantifier?, -) : Select() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(items) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitSelectProject(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectStar.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectStar.kt deleted file mode 100644 index 1a5c489232..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectStar.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class SelectStar( - @JvmField - public var setq: SetQuantifier?, -) : Select() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitSelectStar(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectValue.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectValue.kt deleted file mode 100644 index d1b94187a3..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SelectValue.kt +++ /dev/null @@ -1,22 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public class SelectValue( - @JvmField - public var `constructor`: Expr, - @JvmField - public var setq: SetQuantifier?, -) : Select() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(constructor) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitSelectValue(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetOp.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetOp.kt deleted file mode 100644 index cf71f9649b..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/SetOp.kt +++ /dev/null @@ -1,28 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class SetOp( - @JvmField - public var type: Type, - @JvmField - public var setq: SetQuantifier?, -) : AstNode() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitSetOp( - this, - ctx - ) - - /** - * TODO docs, equals, hashcode - */ - public enum class Type { - UNION, - INTERSECT, - EXCEPT, - OTHER, - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt deleted file mode 100644 index 95fd3a6ca1..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Sort.kt +++ /dev/null @@ -1,44 +0,0 @@ -package org.partiql.ast.v1 - -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public class Sort( - @JvmField - public var expr: Expr, - @JvmField - public var dir: Dir?, - @JvmField - public var nulls: Nulls?, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = visitor.visitSort( - this, - ctx - ) - - /** - * TODO docs, equals, hashcode - */ - public enum class Dir { - ASC, - DESC, - OTHER, - } - - /** - * TODO docs, equals, hashcode - */ - public enum class Nulls { - FIRST, - LAST, - OTHER, - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt deleted file mode 100644 index 78572bffa5..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Statement.kt +++ /dev/null @@ -1,13 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public abstract class Statement : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Query -> visitor.visitQuery(this, ctx) - is DDL -> visitor.visitDDL(this, ctx) - is Explain -> visitor.visitExplain(this, ctx) - else -> throw NotImplementedError() - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt deleted file mode 100644 index cb7cd1b0cf..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/TableDefinition.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public class TableDefinition( - @JvmField - public var columns: List, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(columns) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTableDefinition(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Target.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Target.kt deleted file mode 100644 index 56d8e9113c..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/Target.kt +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1 - -/** - * TODO docs, equals, hashcode - */ -public abstract class Target : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Domain -> visitor.visitTargetDomain(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class Domain( - @JvmField - public var statement: Statement, - @JvmField - public var type: String?, - @JvmField - public var format: String?, - ) : Target() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(statement) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTargetDomain(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/Expr.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/Expr.kt deleted file mode 100644 index a2d0546772..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/Expr.kt +++ /dev/null @@ -1,45 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public abstract class Expr : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is ExprLit -> visitor.visitExprLit(this, ctx) - is ExprIon -> visitor.visitExprIon(this, ctx) - is ExprVar -> visitor.visitExprVar(this, ctx) - is ExprSessionAttribute -> visitor.visitExprSessionAttribute(this, ctx) - is ExprPath -> visitor.visitExprPath(this, ctx) - is ExprCall -> visitor.visitExprCall(this, ctx) - is ExprParameter -> visitor.visitExprParameter(this, ctx) - is ExprOperator -> visitor.visitExprOperator(this, ctx) - is ExprNot -> visitor.visitExprNot(this, ctx) - is ExprAnd -> visitor.visitExprAnd(this, ctx) - is ExprOr -> visitor.visitExprOr(this, ctx) - is ExprValues -> visitor.visitExprValues(this, ctx) - is ExprCollection -> visitor.visitExprCollection(this, ctx) - is ExprStruct -> visitor.visitExprStruct(this, ctx) - is ExprLike -> visitor.visitExprLike(this, ctx) - is ExprBetween -> visitor.visitExprBetween(this, ctx) - is ExprInCollection -> visitor.visitExprInCollection(this, ctx) - is ExprIsType -> visitor.visitExprIsType(this, ctx) - is ExprCase -> visitor.visitExprCase(this, ctx) - is ExprCoalesce -> visitor.visitExprCoalesce(this, ctx) - is ExprNullIf -> visitor.visitExprNullIf(this, ctx) - is ExprSubstring -> visitor.visitExprSubstring(this, ctx) - is ExprPosition -> visitor.visitExprPosition(this, ctx) - is ExprTrim -> visitor.visitExprTrim(this, ctx) - is ExprOverlay -> visitor.visitExprOverlay(this, ctx) - is ExprExtract -> visitor.visitExprExtract(this, ctx) - is ExprCast -> visitor.visitExprCast(this, ctx) - is ExprDateAdd -> visitor.visitExprDateAdd(this, ctx) - is ExprDateDiff -> visitor.visitExprDateDiff(this, ctx) - is ExprQuerySet -> visitor.visitExprQuerySet(this, ctx) - is ExprMatch -> visitor.visitExprMatch(this, ctx) - is ExprWindow -> visitor.visitExprWindow(this, ctx) - else -> throw NotImplementedError() - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprAnd.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprAnd.kt deleted file mode 100644 index b1907ebe72..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprAnd.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprAnd( - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprAnd(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprBetween.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprBetween.kt deleted file mode 100644 index 7a938b6ccc..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprBetween.kt +++ /dev/null @@ -1,29 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprBetween( - @JvmField - public var `value`: Expr, - @JvmField - public var from: Expr, - @JvmField - public var to: Expr, - @JvmField - public var not: Boolean?, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(value) - kids.add(from) - kids.add(to) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprBetween(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCall.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCall.kt deleted file mode 100644 index 7a77fcbf5e..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCall.kt +++ /dev/null @@ -1,28 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.Identifier -import org.partiql.ast.v1.SetQuantifier - -/** - * TODO docs, equals, hashcode - */ -public class ExprCall( - @JvmField - public var function: Identifier, - @JvmField - public var args: List, - @JvmField - public var setq: SetQuantifier?, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(function) - kids.addAll(args) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCall(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCase.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCase.kt deleted file mode 100644 index 282405de67..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCase.kt +++ /dev/null @@ -1,47 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprCase( - @JvmField - public var expr: Expr?, - @JvmField - public var branches: List, - @JvmField - public var default: Expr?, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - expr?.let { kids.add(it) } - kids.addAll(branches) - default?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCase(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public class Branch( - @JvmField - public var condition: Expr, - @JvmField - public var expr: Expr, - ) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(condition) - kids.add(expr) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCaseBranch(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCast.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCast.kt deleted file mode 100644 index 20e1f7941a..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCast.kt +++ /dev/null @@ -1,25 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.type.Type - -/** - * TODO docs, equals, hashcode - */ -public class ExprCast( - @JvmField - public var `value`: Expr, - @JvmField - public var asType: Type, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(value) - kids.add(asType) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCast(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCoalesce.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCoalesce.kt deleted file mode 100644 index d73e6f5055..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCoalesce.kt +++ /dev/null @@ -1,21 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprCoalesce( - @JvmField - public var args: List, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(args) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCoalesce(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCollection.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCollection.kt deleted file mode 100644 index 2d34b26e9d..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprCollection.kt +++ /dev/null @@ -1,35 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprCollection( - @JvmField - public var type: Type, - @JvmField - public var values: List, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(values) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprCollection(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Type { - BAG, - ARRAY, - VALUES, - LIST, - SEXP, - OTHER, - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateAdd.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateAdd.kt deleted file mode 100644 index 9693633659..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateAdd.kt +++ /dev/null @@ -1,27 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.DatetimeField - -/** - * TODO docs, equals, hashcode - */ -public class ExprDateAdd( - @JvmField - public var `field`: DatetimeField, - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprDateAdd(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateDiff.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateDiff.kt deleted file mode 100644 index 6f68b4004e..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprDateDiff.kt +++ /dev/null @@ -1,27 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.DatetimeField - -/** - * TODO docs, equals, hashcode - */ -public class ExprDateDiff( - @JvmField - public var `field`: DatetimeField, - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprDateDiff(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprExtract.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprExtract.kt deleted file mode 100644 index c64f9ded1b..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprExtract.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.DatetimeField - -/** - * TODO docs, equals, hashcode - */ -public class ExprExtract( - @JvmField - public var `field`: DatetimeField, - @JvmField - public var source: Expr, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(source) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprExtract(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprInCollection.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprInCollection.kt deleted file mode 100644 index a8f38a6d72..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprInCollection.kt +++ /dev/null @@ -1,26 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprInCollection( - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, - @JvmField - public var not: Boolean?, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprInCollection(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIon.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIon.kt deleted file mode 100644 index ca6d1cb36b..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIon.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.expr - -import com.amazon.ionelement.api.IonElement -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprIon( - @JvmField - public var `value`: IonElement, -) : Expr() { - public override fun children(): List = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprIon(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIsType.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIsType.kt deleted file mode 100644 index 2d4a2aa70c..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprIsType.kt +++ /dev/null @@ -1,27 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.type.Type - -/** - * TODO docs, equals, hashcode - */ -public class ExprIsType( - @JvmField - public var `value`: Expr, - @JvmField - public var type: Type, - @JvmField - public var not: Boolean?, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(value) - kids.add(type) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprIsType(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLike.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLike.kt deleted file mode 100644 index 987e911f51..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLike.kt +++ /dev/null @@ -1,29 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprLike( - @JvmField - public var `value`: Expr, - @JvmField - public var pattern: Expr, - @JvmField - public var escape: Expr?, - @JvmField - public var not: Boolean?, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(value) - kids.add(pattern) - escape?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprLike(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLit.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLit.kt deleted file mode 100644 index d1b560e6b5..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprLit.kt +++ /dev/null @@ -1,20 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.value.PartiQLValue -import org.partiql.value.PartiQLValueExperimental - -@OptIn(PartiQLValueExperimental::class) -/** - * TODO docs, equals, hashcode - */ -public class ExprLit( - @JvmField - public var `value`: PartiQLValue, -) : Expr() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprLit(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprMatch.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprMatch.kt deleted file mode 100644 index 2c73c1e40c..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprMatch.kt +++ /dev/null @@ -1,25 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.graph.GraphMatch - -/** - * TODO docs, equals, hashcode - */ -public class ExprMatch( - @JvmField - public var expr: Expr, - @JvmField - public var pattern: GraphMatch, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expr) - kids.add(pattern) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprMatch(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNot.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNot.kt deleted file mode 100644 index 9edc25c302..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNot.kt +++ /dev/null @@ -1,21 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprNot( - @JvmField - public var `value`: Expr, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(value) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprNot(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNullIf.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNullIf.kt deleted file mode 100644 index a76df35bb0..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprNullIf.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprNullIf( - @JvmField - public var `value`: Expr, - @JvmField - public var nullifier: Expr, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(value) - kids.add(nullifier) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprNullIf(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOperator.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOperator.kt deleted file mode 100644 index cac1ffb7df..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOperator.kt +++ /dev/null @@ -1,26 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprOperator( - @JvmField - public var symbol: String, - @JvmField - public var lhs: Expr?, - @JvmField - public var rhs: Expr, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - lhs?.let { kids.add(it) } - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprOperator(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOr.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOr.kt deleted file mode 100644 index d7486e0c7c..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOr.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprOr( - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprOr(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOverlay.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOverlay.kt deleted file mode 100644 index 5b8b9be5d6..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprOverlay.kt +++ /dev/null @@ -1,30 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprOverlay( - @JvmField - public var `value`: Expr, - @JvmField - public var overlay: Expr, - @JvmField - public var start: Expr, - @JvmField - public var length: Expr?, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(value) - kids.add(overlay) - kids.add(start) - length?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprOverlay(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprParameter.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprParameter.kt deleted file mode 100644 index 4493e3353a..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprParameter.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprParameter( - @JvmField - public var index: Int, -) : Expr() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprParameter(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPath.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPath.kt deleted file mode 100644 index 7456f34739..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPath.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprPath( - @JvmField - public var root: Expr, - @JvmField - public var steps: List, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(root) - kids.addAll(steps) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPath(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPathStep.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPathStep.kt deleted file mode 100644 index 9aeebe730c..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPathStep.kt +++ /dev/null @@ -1,72 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.Identifier - -/** - * TODO docs, equals, hashcode - */ -public abstract class ExprPathStep : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Symbol -> visitor.visitExprPathStepSymbol(this, ctx) - is Index -> visitor.visitExprPathStepIndex(this, ctx) - is Wildcard -> visitor.visitExprPathStepWildcard(this, ctx) - is Unpivot -> visitor.visitExprPathStepUnpivot(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class Symbol( - @JvmField - public var symbol: Identifier.Symbol, - ) : ExprPathStep() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(symbol) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPathStepSymbol(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Index( - @JvmField - public var key: Expr, - ) : ExprPathStep() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(key) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPathStepIndex(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Wildcard : ExprPathStep() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPathStepWildcard(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Unpivot : ExprPathStep() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPathStepUnpivot(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPosition.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPosition.kt deleted file mode 100644 index c0579d3ea9..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprPosition.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprPosition( - @JvmField - public var lhs: Expr, - @JvmField - public var rhs: Expr, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprPosition(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprQuerySet.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprQuerySet.kt deleted file mode 100644 index 743c3abe2d..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprQuerySet.kt +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.OrderBy -import org.partiql.ast.v1.QueryBody - -/** - * TODO docs, equals, hashcode - */ -public class ExprQuerySet( - @JvmField - public var body: QueryBody, - @JvmField - public var orderBy: OrderBy?, - @JvmField - public var limit: Expr?, - @JvmField - public var offset: Expr?, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(body) - orderBy?.let { kids.add(it) } - limit?.let { kids.add(it) } - offset?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprQuerySet(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSessionAttribute.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSessionAttribute.kt deleted file mode 100644 index 418b81ac9e..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSessionAttribute.kt +++ /dev/null @@ -1,26 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprSessionAttribute( - @JvmField - public var attribute: Attribute, -) : Expr() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprSessionAttribute(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Attribute { - CURRENT_USER, - CURRENT_DATE, - OTHER, - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprStruct.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprStruct.kt deleted file mode 100644 index 8d59f8e937..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprStruct.kt +++ /dev/null @@ -1,41 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprStruct( - @JvmField - public var fields: List, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(fields) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprStruct(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public class Field( - @JvmField - public var name: Expr, - @JvmField - public var `value`: Expr, - ) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(name) - kids.add(value) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprStructField(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSubstring.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSubstring.kt deleted file mode 100644 index 0048d95ea5..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprSubstring.kt +++ /dev/null @@ -1,27 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprSubstring( - @JvmField - public var `value`: Expr, - @JvmField - public var start: Expr?, - @JvmField - public var length: Expr?, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(value) - start?.let { kids.add(it) } - length?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprSubstring(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprTrim.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprTrim.kt deleted file mode 100644 index 09e50dc828..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprTrim.kt +++ /dev/null @@ -1,33 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprTrim( - @JvmField - public var `value`: Expr, - @JvmField - public var chars: Expr?, - @JvmField - public var spec: Spec?, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(value) - chars?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprTrim(this, ctx) - - public enum class Spec { - LEADING, - TRAILING, - BOTH, - OTHER, - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprValues.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprValues.kt deleted file mode 100644 index 8cb0fb2623..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprValues.kt +++ /dev/null @@ -1,38 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class ExprValues( - @JvmField - public var rows: List, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(rows) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprValues(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public class Row( - @JvmField - public var items: List, - ) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(items) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprValuesRow(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprVar.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprVar.kt deleted file mode 100644 index 6a649f461b..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprVar.kt +++ /dev/null @@ -1,33 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.Identifier - -/** - * TODO docs, equals, hashcode - */ -public class ExprVar( - @JvmField - public var identifier: Identifier, - @JvmField - public var scope: Scope, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(identifier) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprVar(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Scope { - DEFAULT, - LOCAL, - OTHER, - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprWindow.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprWindow.kt deleted file mode 100644 index d20fb49e1d..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/expr/ExprWindow.kt +++ /dev/null @@ -1,62 +0,0 @@ -package org.partiql.ast.v1.expr - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.Sort - -/** - * TODO docs, equals, hashcode - */ -public class ExprWindow( - @JvmField - public var function: Function, - @JvmField - public var expression: Expr, - @JvmField - public var offset: Expr?, - @JvmField - public var default: Expr?, - @JvmField - public var over: Over, -) : Expr() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(expression) - offset?.let { kids.add(it) } - default?.let { kids.add(it) } - kids.add(over) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprWindow(this, ctx) - - /** - * TODO docs, equals, hashcode - */ - public enum class Function { - LAG, - LEAD, - OTHER, - } - - /** - * TODO docs, equals, hashcode - */ - public class Over( - @JvmField - public var partitions: List?, - @JvmField - public var sorts: List?, - ) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - partitions?.let { kids.addAll(it) } - sorts?.let { kids.addAll(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitExprWindowOver(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphLabel.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphLabel.kt deleted file mode 100644 index 7ee500d74f..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphLabel.kt +++ /dev/null @@ -1,98 +0,0 @@ -package org.partiql.ast.v1.graph - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public abstract class GraphLabel : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Name -> visitor.visitGraphLabelName(this, ctx) - is Wildcard -> visitor.visitGraphLabelWildcard(this, ctx) - is Negation -> visitor.visitGraphLabelNegation(this, ctx) - is Conj -> visitor.visitGraphLabelConj(this, ctx) - is Disj -> visitor.visitGraphLabelDisj(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class Name( - @JvmField - public var name: String, - ) : GraphLabel() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphLabelName(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Wildcard : GraphLabel() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphLabelWildcard(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Negation( - @JvmField - public var arg: GraphLabel, - ) : GraphLabel() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(arg) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphLabelNegation(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Conj( - @JvmField - public var lhs: GraphLabel, - @JvmField - public var rhs: GraphLabel, - ) : GraphLabel() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphLabelConj(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Disj( - @JvmField - public var lhs: GraphLabel, - @JvmField - public var rhs: GraphLabel, - ) : GraphLabel() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(lhs) - kids.add(rhs) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphLabelDisj(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphMatch.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphMatch.kt deleted file mode 100644 index 98614a4777..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphMatch.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.graph - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class GraphMatch( - @JvmField - public var patterns: List, - @JvmField - public var selector: GraphSelector?, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.addAll(patterns) - selector?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatch(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPart.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPart.kt deleted file mode 100644 index 502c88aff7..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPart.kt +++ /dev/null @@ -1,83 +0,0 @@ -package org.partiql.ast.v1.graph - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public abstract class GraphPart : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is Node -> visitor.visitGraphPartNode(this, ctx) - is Edge -> visitor.visitGraphPartEdge(this, ctx) - is Pattern -> visitor.visitGraphPartPattern(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public class Node( - @JvmField - public var prefilter: Expr?, - @JvmField - public var variable: String?, - @JvmField - public var label: GraphLabel?, - ) : GraphPart() { - public override fun children(): Collection { - val kids = mutableListOf() - prefilter?.let { kids.add(it) } - label?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphPartNode(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Edge( - @JvmField - public var direction: GraphDirection, - @JvmField - public var quantifier: GraphQuantifier?, - @JvmField - public var prefilter: Expr?, - @JvmField - public var variable: String?, - @JvmField - public var label: GraphLabel?, - ) : GraphPart() { - public override fun children(): Collection { - val kids = mutableListOf() - quantifier?.let { kids.add(it) } - prefilter?.let { kids.add(it) } - label?.let { kids.add(it) } - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphPartEdge(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class Pattern( - @JvmField - public var pattern: GraphPattern, - ) : GraphPart() { - public override fun children(): Collection { - val kids = mutableListOf() - kids.add(pattern) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphPartPattern(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPattern.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPattern.kt deleted file mode 100644 index 823aa8bf62..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphPattern.kt +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.graph - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor -import org.partiql.ast.v1.expr.Expr - -/** - * TODO docs, equals, hashcode - */ -public class GraphPattern( - @JvmField - public var restrictor: GraphRestrictor?, - @JvmField - public var prefilter: Expr?, - @JvmField - public var variable: String?, - @JvmField - public var quantifier: GraphQuantifier?, - @JvmField - public var parts: List, -) : AstNode() { - public override fun children(): Collection { - val kids = mutableListOf() - prefilter?.let { kids.add(it) } - quantifier?.let { kids.add(it) } - kids.addAll(parts) - return kids.filterNotNull() - } - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphMatchPattern(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphQuantifier.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphQuantifier.kt deleted file mode 100644 index 25c8158e95..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphQuantifier.kt +++ /dev/null @@ -1,19 +0,0 @@ -package org.partiql.ast.v1.graph - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class GraphQuantifier( - @JvmField - public var lower: Long, - @JvmField - public var upper: Long?, -) : AstNode() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphQuantifier(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphSelector.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphSelector.kt deleted file mode 100644 index 433b9f29b3..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/graph/GraphSelector.kt +++ /dev/null @@ -1,88 +0,0 @@ -package org.partiql.ast.v1.graph - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public abstract class GraphSelector : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is AnyShortest -> visitor.visitGraphSelectorAnyShortest(this, ctx) - is AllShortest -> visitor.visitGraphSelectorAllShortest(this, ctx) - is Any -> visitor.visitGraphSelectorAny(this, ctx) - is AnyK -> visitor.visitGraphSelectorAnyK(this, ctx) - is ShortestK -> visitor.visitGraphSelectorShortestK(this, ctx) - is ShortestKGroup -> visitor.visitGraphSelectorShortestKGroup(this, ctx) - else -> throw NotImplementedError() - } - - /** - * TODO docs, equals, hashcode - */ - public object AnyShortest : GraphSelector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphSelectorAnyShortest(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object AllShortest : GraphSelector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphSelectorAllShortest(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public object Any : GraphSelector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphSelectorAny(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class AnyK( - @JvmField - public var k: Long, - ) : GraphSelector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphSelectorAnyK(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class ShortestK( - @JvmField - public var k: Long, - ) : GraphSelector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphSelectorShortestK(this, ctx) - } - - /** - * TODO docs, equals, hashcode - */ - public class ShortestKGroup( - @JvmField - public var k: Long, - ) : GraphSelector() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitGraphSelectorShortestKGroup(this, ctx) - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/Type.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/Type.kt deleted file mode 100644 index a58362af0a..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/Type.kt +++ /dev/null @@ -1,50 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public abstract class Type : AstNode() { - public override fun accept(visitor: AstVisitor, ctx: C): R = when (this) { - is TypeNull -> visitor.visitTypeNull(this, ctx) - is TypeMissing -> visitor.visitTypeMissing(this, ctx) - is TypeBool -> visitor.visitTypeBool(this, ctx) - is TypeTinyint -> visitor.visitTypeTinyint(this, ctx) - is TypeSmallint -> visitor.visitTypeSmallint(this, ctx) - is TypeInt2 -> visitor.visitTypeInt2(this, ctx) - is TypeInt4 -> visitor.visitTypeInt4(this, ctx) - is TypeBigint -> visitor.visitTypeBigint(this, ctx) - is TypeInt8 -> visitor.visitTypeInt8(this, ctx) - is TypeInt -> visitor.visitTypeInt(this, ctx) - is TypeReal -> visitor.visitTypeReal(this, ctx) - is TypeFloat32 -> visitor.visitTypeFloat32(this, ctx) - is TypeFloat64 -> visitor.visitTypeFloat64(this, ctx) - is TypeDecimal -> visitor.visitTypeDecimal(this, ctx) - is TypeNumeric -> visitor.visitTypeNumeric(this, ctx) - is TypeChar -> visitor.visitTypeChar(this, ctx) - is TypeVarchar -> visitor.visitTypeVarchar(this, ctx) - is TypeString -> visitor.visitTypeString(this, ctx) - is TypeSymbol -> visitor.visitTypeSymbol(this, ctx) - is TypeBit -> visitor.visitTypeBit(this, ctx) - is TypeBitVarying -> visitor.visitTypeBitVarying(this, ctx) - is TypeByteString -> visitor.visitTypeByteString(this, ctx) - is TypeBlob -> visitor.visitTypeBlob(this, ctx) - is TypeClob -> visitor.visitTypeClob(this, ctx) - is TypeDate -> visitor.visitTypeDate(this, ctx) - is TypeTime -> visitor.visitTypeTime(this, ctx) - is TypeTimeWithTz -> visitor.visitTypeTimeWithTz(this, ctx) - is TypeTimestamp -> visitor.visitTypeTimestamp(this, ctx) - is TypeTimestampWithTz -> visitor.visitTypeTimestampWithTz(this, ctx) - is TypeInterval -> visitor.visitTypeInterval(this, ctx) - is TypeBag -> visitor.visitTypeBag(this, ctx) - is TypeList -> visitor.visitTypeList(this, ctx) - is TypeSexp -> visitor.visitTypeSexp(this, ctx) - is TypeTuple -> visitor.visitTypeTuple(this, ctx) - is TypeStruct -> visitor.visitTypeStruct(this, ctx) - is TypeAny -> visitor.visitTypeAny(this, ctx) - is TypeCustom -> visitor.visitTypeCustom(this, ctx) - else -> throw NotImplementedError() - } -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeAny.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeAny.kt deleted file mode 100644 index a0978e4da1..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeAny.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeAny : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeAny(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBag.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBag.kt deleted file mode 100644 index f5cbf0aaba..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBag.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeBag : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBag(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBigint.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBigint.kt deleted file mode 100644 index ac8ced02a4..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBigint.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeBigint : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBigint(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBit.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBit.kt deleted file mode 100644 index b85cdb4203..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBit.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeBit( - @JvmField - public var length: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBit(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBitVarying.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBitVarying.kt deleted file mode 100644 index a021ad3348..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBitVarying.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeBitVarying( - @JvmField - public var length: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBitVarying(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBlob.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBlob.kt deleted file mode 100644 index 7facf2f485..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBlob.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeBlob( - @JvmField - public var length: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBlob(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBool.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBool.kt deleted file mode 100644 index 9c368ea706..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeBool.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeBool : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeBool(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeByteString.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeByteString.kt deleted file mode 100644 index b2007af49e..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeByteString.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeByteString( - @JvmField - public var length: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeByteString(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeChar.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeChar.kt deleted file mode 100644 index c45cf65e39..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeChar.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeChar( - @JvmField - public var length: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeChar(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeClob.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeClob.kt deleted file mode 100644 index 3c60031ded..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeClob.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeClob( - @JvmField - public var length: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeClob(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeCustom.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeCustom.kt deleted file mode 100644 index 34e66813b1..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeCustom.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeCustom( - @JvmField - public var name: String, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeCustom(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDate.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDate.kt deleted file mode 100644 index e4a5233a56..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDate.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeDate : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeDate(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDecimal.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDecimal.kt deleted file mode 100644 index 6f413777d2..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeDecimal.kt +++ /dev/null @@ -1,19 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeDecimal( - @JvmField - public var precision: Int?, - @JvmField - public var scale: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeDecimal(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat32.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat32.kt deleted file mode 100644 index 7aa86e10e2..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat32.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeFloat32 : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeFloat32(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat64.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat64.kt deleted file mode 100644 index ba0e0689e6..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeFloat64.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeFloat64 : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeFloat64(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt.kt deleted file mode 100644 index a7cf7198dc..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeInt : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeInt(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt2.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt2.kt deleted file mode 100644 index 4b2c1eee49..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt2.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeInt2 : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeInt2(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt4.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt4.kt deleted file mode 100644 index 55cd3ca77f..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt4.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeInt4 : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeInt4(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt8.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt8.kt deleted file mode 100644 index aefded3e0d..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInt8.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeInt8 : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeInt8(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInterval.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInterval.kt deleted file mode 100644 index f9da3d9f68..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeInterval.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeInterval( - @JvmField - public var precision: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeInterval(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeList.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeList.kt deleted file mode 100644 index fde85c97cc..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeList.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeList : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeList(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeMissing.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeMissing.kt deleted file mode 100644 index d1623b63dc..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeMissing.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeMissing : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeMissing(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNull.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNull.kt deleted file mode 100644 index a29a934c2a..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNull.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeNull : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeNull(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNumeric.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNumeric.kt deleted file mode 100644 index 3e866f4f64..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeNumeric.kt +++ /dev/null @@ -1,19 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeNumeric( - @JvmField - public var precision: Int?, - @JvmField - public var scale: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeNumeric(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeReal.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeReal.kt deleted file mode 100644 index 5a53de756c..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeReal.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeReal : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeReal(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSexp.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSexp.kt deleted file mode 100644 index ebdb5698ce..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSexp.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeSexp : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeSexp(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSmallint.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSmallint.kt deleted file mode 100644 index 558c943fc2..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSmallint.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeSmallint : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeSmallint(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeString.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeString.kt deleted file mode 100644 index d2b85d12b4..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeString.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeString( - @JvmField - public var length: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeString(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeStruct.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeStruct.kt deleted file mode 100644 index 481c139fd5..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeStruct.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeStruct : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeStruct(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSymbol.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSymbol.kt deleted file mode 100644 index 6531b0e3a6..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeSymbol.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeSymbol : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeSymbol(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTime.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTime.kt deleted file mode 100644 index b4185704a6..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTime.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeTime( - @JvmField - public var precision: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTime(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimeWithTz.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimeWithTz.kt deleted file mode 100644 index 3c0f075f22..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimeWithTz.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeTimeWithTz( - @JvmField - public var precision: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTimeWithTz(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestamp.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestamp.kt deleted file mode 100644 index eeec01ee33..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestamp.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeTimestamp( - @JvmField - public var precision: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTimestamp(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestampWithTz.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestampWithTz.kt deleted file mode 100644 index a02f204f6f..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTimestampWithTz.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeTimestampWithTz( - @JvmField - public var precision: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTimestampWithTz(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTinyint.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTinyint.kt deleted file mode 100644 index 18e04f0d83..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTinyint.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeTinyint : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTinyint(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTuple.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTuple.kt deleted file mode 100644 index dd9b1cac15..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeTuple.kt +++ /dev/null @@ -1,14 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public object TypeTuple : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeTuple(this, ctx) -} diff --git a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeVarchar.kt b/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeVarchar.kt deleted file mode 100644 index c5268a9b47..0000000000 --- a/partiql-ast/src/main/kotlin/org/partiql/ast/v1/type/TypeVarchar.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.partiql.ast.v1.type - -import org.partiql.ast.v1.AstNode -import org.partiql.ast.v1.AstVisitor - -/** - * TODO docs, equals, hashcode - */ -public class TypeVarchar( - @JvmField - public var length: Int?, -) : Type() { - public override fun children(): Collection = emptyList() - - public override fun accept(visitor: AstVisitor, ctx: C): R = - visitor.visitTypeVarchar(this, ctx) -} From 4942c88d1c061f3eaf1865f7cca0c1cf81c52ee1 Mon Sep 17 00:00:00 2001 From: Alan Cai Date: Tue, 24 Sep 2024 14:17:28 -0700 Subject: [PATCH 04/11] Remove DDL from v1 AST repr --- partiql-ast/api/partiql-ast.api | 97 ------------------- .../java/org/partiql/ast/v1/AstVisitor.java | 27 ------ .../main/java/org/partiql/ast/v1/Column.java | 42 -------- .../java/org/partiql/ast/v1/Constraint.java | 37 ------- .../org/partiql/ast/v1/ConstraintCheck.java | 33 ------- .../org/partiql/ast/v1/ConstraintNotNull.java | 22 ----- .../partiql/ast/v1/ConstraintNullable.java | 22 ----- .../org/partiql/ast/v1/ConstraintType.java | 21 ---- .../java/org/partiql/ast/v1/CreateIndex.java | 45 --------- .../java/org/partiql/ast/v1/CreateTable.java | 40 -------- .../src/main/java/org/partiql/ast/v1/DDL.java | 23 ----- .../java/org/partiql/ast/v1/DropIndex.java | 37 ------- .../java/org/partiql/ast/v1/DropTable.java | 32 ------ .../java/org/partiql/ast/v1/Statement.java | 2 - .../org/partiql/ast/v1/TableDefinition.java | 30 ------ 15 files changed, 510 deletions(-) delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Column.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Constraint.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintCheck.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNotNull.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNullable.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintType.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/CreateIndex.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/CreateTable.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/DDL.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/DropIndex.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/DropTable.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/TableDefinition.java diff --git a/partiql-ast/api/partiql-ast.api b/partiql-ast/api/partiql-ast.api index ad021511ab..006afff76e 100644 --- a/partiql-ast/api/partiql-ast.api +++ b/partiql-ast/api/partiql-ast.api @@ -5552,17 +5552,6 @@ public abstract class org/partiql/ast/v1/AstNode { public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visit (Lorg/partiql/ast/v1/AstNode;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitColumn (Lorg/partiql/ast/v1/Column;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitConstraint (Lorg/partiql/ast/v1/Constraint;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitConstraintBody (Lorg/partiql/ast/v1/ConstraintType;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitConstraintCheck (Lorg/partiql/ast/v1/ConstraintCheck;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitConstraintNotNull (Lorg/partiql/ast/v1/ConstraintNotNull;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitConstraintNullable (Lorg/partiql/ast/v1/ConstraintNullable;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitCreateIndex (Lorg/partiql/ast/v1/CreateIndex;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitCreateTable (Lorg/partiql/ast/v1/CreateTable;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitDDL (Lorg/partiql/ast/v1/DDL;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitDropIndex (Lorg/partiql/ast/v1/DropIndex;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitDropTable (Lorg/partiql/ast/v1/DropTable;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExclude (Lorg/partiql/ast/v1/Exclude;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExcludePath (Lorg/partiql/ast/v1/ExcludePath;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExcludeStep (Lorg/partiql/ast/v1/ExcludeStep;Ljava/lang/Object;)Ljava/lang/Object; @@ -5663,7 +5652,6 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitSetOp (Lorg/partiql/ast/v1/SetOp;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSort (Lorg/partiql/ast/v1/Sort;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitStatement (Lorg/partiql/ast/v1/Statement;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTableDefinition (Lorg/partiql/ast/v1/TableDefinition;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTarget (Lorg/partiql/ast/v1/Target;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTargetDomain (Lorg/partiql/ast/v1/Target$Domain;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitType (Lorg/partiql/ast/v1/type/Type;Ljava/lang/Object;)Ljava/lang/Object; @@ -5714,69 +5702,6 @@ public final class org/partiql/ast/v1/CaseSensitivity : java/lang/Enum { public static fun values ()[Lorg/partiql/ast/v1/CaseSensitivity; } -public class org/partiql/ast/v1/Column : org/partiql/ast/v1/AstNode { - public field constraints Ljava/util/List; - public field name Ljava/lang/String; - public field type Lorg/partiql/ast/v1/type/Type; - public fun (Ljava/lang/String;Lorg/partiql/ast/v1/type/Type;Ljava/util/List;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/Constraint : org/partiql/ast/v1/AstNode { - public field constraintType Lorg/partiql/ast/v1/ConstraintType; - public field name Ljava/lang/String; - public fun (Ljava/lang/String;Lorg/partiql/ast/v1/ConstraintType;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/ConstraintCheck : org/partiql/ast/v1/ConstraintType { - public field expr Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/ConstraintNotNull : org/partiql/ast/v1/ConstraintType { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/ConstraintNullable : org/partiql/ast/v1/ConstraintType { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public abstract class org/partiql/ast/v1/ConstraintType : org/partiql/ast/v1/AstNode { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; -} - -public class org/partiql/ast/v1/CreateIndex : org/partiql/ast/v1/DDL { - public field fields Ljava/util/List; - public field index Lorg/partiql/ast/v1/Identifier; - public field table Lorg/partiql/ast/v1/Identifier; - public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;Ljava/util/List;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/CreateTable : org/partiql/ast/v1/DDL { - public field definition Lorg/partiql/ast/v1/TableDefinition; - public field name Lorg/partiql/ast/v1/Identifier; - public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/TableDefinition;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public abstract class org/partiql/ast/v1/DDL : org/partiql/ast/v1/Statement { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; -} - public final class org/partiql/ast/v1/DatetimeField : java/lang/Enum { public static final field DAY Lorg/partiql/ast/v1/DatetimeField; public static final field HOUR Lorg/partiql/ast/v1/DatetimeField; @@ -5791,21 +5716,6 @@ public final class org/partiql/ast/v1/DatetimeField : java/lang/Enum { public static fun values ()[Lorg/partiql/ast/v1/DatetimeField; } -public class org/partiql/ast/v1/DropIndex : org/partiql/ast/v1/DDL { - public field index Lorg/partiql/ast/v1/Identifier; - public field table Lorg/partiql/ast/v1/Identifier; - public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/DropTable : org/partiql/ast/v1/DDL { - public field table Lorg/partiql/ast/v1/Identifier; - public fun (Lorg/partiql/ast/v1/Identifier;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - public class org/partiql/ast/v1/Exclude : org/partiql/ast/v1/AstNode { public field excludePaths Ljava/util/List; public fun (Ljava/util/List;)V @@ -6146,13 +6056,6 @@ public abstract class org/partiql/ast/v1/Statement : org/partiql/ast/v1/AstNode public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public class org/partiql/ast/v1/TableDefinition : org/partiql/ast/v1/AstNode { - public field columns Ljava/util/List; - public fun (Ljava/util/List;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - public abstract class org/partiql/ast/v1/Target : org/partiql/ast/v1/AstNode { public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java index b1494a7817..aaf7aa5e7e 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java @@ -86,16 +86,6 @@ public interface AstVisitor { R visitQuery(Query node, C ctx); - R visitDDL(DDL node, C ctx); - - R visitCreateTable(CreateTable node, C ctx); - - R visitCreateIndex(CreateIndex node, C ctx); - - R visitDropTable(DropTable node, C ctx); - - R visitDropIndex(DropIndex node, C ctx); - R visitExplain(Explain node, C ctx); R visitTarget(Target node, C ctx); @@ -374,21 +364,4 @@ R visitGraphSelectorShortestKGroup( R visitGraphLabelConj(GraphLabel.Conj node, C ctx); R visitGraphLabelDisj(GraphLabel.Disj node, C ctx); - - R visitTableDefinition(TableDefinition node, C ctx); - - R visitColumn(Column node, C ctx); - - R visitConstraint(Constraint node, C ctx); - - R visitConstraintBody( - ConstraintType node, - C ctx - ); - - R visitConstraintNullable(ConstraintNullable node, C ctx); - - R visitConstraintNotNull(ConstraintNotNull node, C ctx); - - R visitConstraintCheck(ConstraintCheck node, C ctx); } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Column.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Column.java deleted file mode 100644 index 0e39c19a28..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/Column.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.type.Type; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public class Column extends AstNode { - @NotNull - public String name; - - @NotNull - public Type type; - - @NotNull - public List constraints; - - public Column(@NotNull String name, @NotNull Type type, @NotNull List constraints) { - this.name = name; - this.type = type; - this.constraints = constraints; - } - - @NotNull - @Override - public Collection children() { - List kids = new ArrayList<>(); - kids.add(type); - kids.addAll(constraints); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitColumn(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Constraint.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Constraint.java deleted file mode 100644 index dd7645e77d..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/Constraint.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public class Constraint extends AstNode { - @Nullable - public String name; - - @NotNull - public ConstraintType constraintType; - - public Constraint(@Nullable String name, @NotNull ConstraintType constraintType) { - this.name = name; - this.constraintType = constraintType; - } - - @NotNull - @Override - public Collection children() { - List kids = new ArrayList<>(); - kids.add(constraintType); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitConstraint(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintCheck.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintCheck.java deleted file mode 100644 index b57aa957b9..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintCheck.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.expr.Expr; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public class ConstraintCheck extends ConstraintType { - @NotNull - public Expr expr; - - public ConstraintCheck(@NotNull Expr expr) { - this.expr = expr; - } - - @NotNull - @Override - public Collection children() { - List kids = new ArrayList<>(); - kids.add(expr); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitConstraintCheck(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNotNull.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNotNull.java deleted file mode 100644 index 1d35ae1bb4..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNotNull.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class ConstraintNotNull extends ConstraintType { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitConstraintNotNull(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNullable.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNullable.java deleted file mode 100644 index 689dba4d22..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintNullable.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class ConstraintNullable extends ConstraintType { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitConstraintNullable(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintType.java deleted file mode 100644 index 9cb8577d86..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/ConstraintType.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; - -/** - * TODO docs, equals, hashcode - */ -public abstract class ConstraintType extends AstNode { - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - if (this instanceof ConstraintNullable) { - return visitor.visitConstraintNullable((ConstraintNullable) this, ctx); - } else if (this instanceof ConstraintNotNull) { - return visitor.visitConstraintNotNull((ConstraintNotNull) this, ctx); - } else if (this instanceof ConstraintCheck) { - return visitor.visitConstraintCheck((ConstraintCheck) this, ctx); - } else { - throw new IllegalStateException("Unexpected value: " + this); - } - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/CreateIndex.java b/partiql-ast/src/main/java/org/partiql/ast/v1/CreateIndex.java deleted file mode 100644 index 396fcf770d..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/CreateIndex.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public class CreateIndex extends DDL { - @Nullable - public Identifier index; - - @NotNull - public Identifier table; - - @NotNull - public List fields; - - public CreateIndex(@Nullable Identifier index, @NotNull Identifier table, @NotNull List fields) { - this.index = index; - this.table = table; - this.fields = fields; - } - - @NotNull - @Override - public Collection children() { - List kids = new ArrayList<>(); - if (index != null) { - kids.add(index); - } - kids.add(table); - kids.addAll(fields); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitCreateIndex(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/CreateTable.java b/partiql-ast/src/main/java/org/partiql/ast/v1/CreateTable.java deleted file mode 100644 index d9fb8ca37f..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/CreateTable.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public class CreateTable extends DDL { - @NotNull - public Identifier name; - - @Nullable - public TableDefinition definition; - - public CreateTable(@NotNull Identifier name, @Nullable TableDefinition definition) { - this.name = name; - this.definition = definition; - } - - @NotNull - @Override - public Collection children() { - List kids = new ArrayList<>(); - kids.add(name); - if (definition != null) { - kids.add(definition); - } - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitCreateTable(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/DDL.java b/partiql-ast/src/main/java/org/partiql/ast/v1/DDL.java deleted file mode 100644 index 1bf8fbab4a..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/DDL.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; - -/** - * TODO docs, equals, hashcode - */ -public abstract class DDL extends Statement { - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - if (this instanceof CreateTable) { - return visitor.visitCreateTable((CreateTable) this, ctx); - } else if (this instanceof CreateIndex) { - return visitor.visitCreateIndex((CreateIndex) this, ctx); - } else if (this instanceof DropTable) { - return visitor.visitDropTable((DropTable) this, ctx); - } else if (this instanceof DropIndex) { - return visitor.visitDropIndex((DropIndex) this, ctx); - } else { - throw new IllegalStateException("Unexpected value: " + this); - } - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/DropIndex.java b/partiql-ast/src/main/java/org/partiql/ast/v1/DropIndex.java deleted file mode 100644 index 36c220d8b4..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/DropIndex.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public class DropIndex extends DDL { - @NotNull - public Identifier index; - - @NotNull - public Identifier table; - - public DropIndex(@NotNull Identifier index, @NotNull Identifier table) { - this.index = index; - this.table = table; - } - - @NotNull - @Override - public Collection children() { - List kids = new ArrayList<>(); - kids.add(index); - kids.add(table); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitDropIndex(this, ctx); -} -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/DropTable.java b/partiql-ast/src/main/java/org/partiql/ast/v1/DropTable.java deleted file mode 100644 index 039f1a3799..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/DropTable.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public class DropTable extends DDL { - @NotNull - public Identifier table; - - public DropTable(@NotNull Identifier table) { - this.table = table; - } - - @NotNull - @Override - public Collection children() { - List kids = new ArrayList<>(); - kids.add(table); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitDropTable(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Statement.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Statement.java index 33f99af19f..94ba678f98 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/Statement.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Statement.java @@ -10,8 +10,6 @@ public abstract class Statement extends AstNode { public R accept(@NotNull AstVisitor visitor, C ctx) { if (this instanceof Query) { return visitor.visitQuery((Query) this, ctx); - } else if (this instanceof DDL) { - return visitor.visitDDL((DDL) this, ctx); } else if (this instanceof Explain) { return visitor.visitExplain((Explain) this, ctx); } else { diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/TableDefinition.java b/partiql-ast/src/main/java/org/partiql/ast/v1/TableDefinition.java deleted file mode 100644 index e1a629f82a..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/TableDefinition.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public class TableDefinition extends AstNode { - @NotNull - public List columns; - - public TableDefinition(@NotNull List columns) { - this.columns = columns; - } - - @NotNull - @Override - public Collection children() { - return new ArrayList<>(columns); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTableDefinition(this, ctx); - } -} From 87f1fa09152738838beda1486073eefb330bb839 Mon Sep 17 00:00:00 2001 From: Alan Cai Date: Mon, 30 Sep 2024 17:19:13 -0700 Subject: [PATCH 05/11] Apply John's feedback round 1; still some discussion before other changes --- partiql-ast/api/partiql-ast.api | 109 +++++++----------- .../java/org/partiql/ast/v1/AstVisitor.java | 26 ++--- .../org/partiql/ast/v1/CaseSensitivity.java | 10 -- .../java/org/partiql/ast/v1/ExcludePath.java | 6 +- .../java/org/partiql/ast/v1/Identifier.java | 11 +- .../java/org/partiql/ast/v1/expr/Expr.java | 8 +- .../org/partiql/ast/v1/expr/ExprBetween.java | 5 +- .../partiql/ast/v1/expr/ExprInCollection.java | 5 +- .../org/partiql/ast/v1/expr/ExprIsType.java | 6 +- .../org/partiql/ast/v1/expr/ExprLike.java | 5 +- .../org/partiql/ast/v1/expr/ExprOverlay.java | 9 +- .../v1/expr/{ExprVar.java => ExprVarRef.java} | 6 +- .../expr/{ExprIon.java => ExprVariant.java} | 22 ++-- .../java/org/partiql/ast/v1/type/Type.java | 16 +-- .../partiql/ast/v1/type/TypeByteString.java | 32 ----- ...eFloat64.java => TypeDoublePrecision.java} | 4 +- .../v1/type/{TypeAny.java => TypeFloat.java} | 4 +- .../org/partiql/ast/v1/type/TypeFloat32.java | 24 ---- .../{TypeCustom.java => TypeUserDefined.java} | 6 +- 19 files changed, 108 insertions(+), 206 deletions(-) delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/CaseSensitivity.java rename partiql-ast/src/main/java/org/partiql/ast/v1/expr/{ExprVar.java => ExprVarRef.java} (83%) rename partiql-ast/src/main/java/org/partiql/ast/v1/expr/{ExprIon.java => ExprVariant.java} (53%) delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeByteString.java rename partiql-ast/src/main/java/org/partiql/ast/v1/type/{TypeFloat64.java => TypeDoublePrecision.java} (80%) rename partiql-ast/src/main/java/org/partiql/ast/v1/type/{TypeAny.java => TypeFloat.java} (83%) delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat32.java rename partiql-ast/src/main/java/org/partiql/ast/v1/type/{TypeCustom.java => TypeUserDefined.java} (77%) diff --git a/partiql-ast/api/partiql-ast.api b/partiql-ast/api/partiql-ast.api index 006afff76e..d4a7c99a7b 100644 --- a/partiql-ast/api/partiql-ast.api +++ b/partiql-ast/api/partiql-ast.api @@ -5573,7 +5573,6 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitExprDateDiff (Lorg/partiql/ast/v1/expr/ExprDateDiff;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprExtract (Lorg/partiql/ast/v1/expr/ExprExtract;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprInCollection (Lorg/partiql/ast/v1/expr/ExprInCollection;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprIon (Lorg/partiql/ast/v1/expr/ExprIon;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprIsType (Lorg/partiql/ast/v1/expr/ExprIsType;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprLike (Lorg/partiql/ast/v1/expr/ExprLike;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprLit (Lorg/partiql/ast/v1/expr/ExprLit;Ljava/lang/Object;)Ljava/lang/Object; @@ -5599,7 +5598,8 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitExprTrim (Lorg/partiql/ast/v1/expr/ExprTrim;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprValues (Lorg/partiql/ast/v1/expr/ExprValues;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprValuesRow (Lorg/partiql/ast/v1/expr/ExprValues$Row;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprVar (Lorg/partiql/ast/v1/expr/ExprVar;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprVarRef (Lorg/partiql/ast/v1/expr/ExprVarRef;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprVariant (Lorg/partiql/ast/v1/expr/ExprVariant;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprWindow (Lorg/partiql/ast/v1/expr/ExprWindow;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprWindowOver (Lorg/partiql/ast/v1/expr/ExprWindow$Over;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitFrom (Lorg/partiql/ast/v1/From;Ljava/lang/Object;)Ljava/lang/Object; @@ -5655,21 +5655,18 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitTarget (Lorg/partiql/ast/v1/Target;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTargetDomain (Lorg/partiql/ast/v1/Target$Domain;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitType (Lorg/partiql/ast/v1/type/Type;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeAny (Lorg/partiql/ast/v1/type/TypeAny;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeBag (Lorg/partiql/ast/v1/type/TypeBag;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeBigint (Lorg/partiql/ast/v1/type/TypeBigint;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeBit (Lorg/partiql/ast/v1/type/TypeBit;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeBitVarying (Lorg/partiql/ast/v1/type/TypeBitVarying;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeBlob (Lorg/partiql/ast/v1/type/TypeBlob;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeBool (Lorg/partiql/ast/v1/type/TypeBool;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeByteString (Lorg/partiql/ast/v1/type/TypeByteString;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeChar (Lorg/partiql/ast/v1/type/TypeChar;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeClob (Lorg/partiql/ast/v1/type/TypeClob;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeCustom (Lorg/partiql/ast/v1/type/TypeCustom;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeDate (Lorg/partiql/ast/v1/type/TypeDate;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeDecimal (Lorg/partiql/ast/v1/type/TypeDecimal;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeFloat32 (Lorg/partiql/ast/v1/type/TypeFloat32;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeFloat64 (Lorg/partiql/ast/v1/type/TypeFloat64;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeDoublePrecision (Lorg/partiql/ast/v1/type/TypeDoublePrecision;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeFloat (Lorg/partiql/ast/v1/type/TypeFloat;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeInt (Lorg/partiql/ast/v1/type/TypeInt;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeInt2 (Lorg/partiql/ast/v1/type/TypeInt2;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeInt4 (Lorg/partiql/ast/v1/type/TypeInt4;Ljava/lang/Object;)Ljava/lang/Object; @@ -5691,17 +5688,10 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitTypeTimestampWithTz (Lorg/partiql/ast/v1/type/TypeTimestampWithTz;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeTinyint (Lorg/partiql/ast/v1/type/TypeTinyint;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeTuple (Lorg/partiql/ast/v1/type/TypeTuple;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTypeUserDefined (Lorg/partiql/ast/v1/type/TypeUserDefined;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTypeVarchar (Lorg/partiql/ast/v1/type/TypeVarchar;Ljava/lang/Object;)Ljava/lang/Object; } -public final class org/partiql/ast/v1/CaseSensitivity : java/lang/Enum { - public static final field INSENSITIVE Lorg/partiql/ast/v1/CaseSensitivity; - public static final field OTHER Lorg/partiql/ast/v1/CaseSensitivity; - public static final field SENSITIVE Lorg/partiql/ast/v1/CaseSensitivity; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/CaseSensitivity; - public static fun values ()[Lorg/partiql/ast/v1/CaseSensitivity; -} - public final class org/partiql/ast/v1/DatetimeField : java/lang/Enum { public static final field DAY Lorg/partiql/ast/v1/DatetimeField; public static final field HOUR Lorg/partiql/ast/v1/DatetimeField; @@ -5725,8 +5715,8 @@ public class org/partiql/ast/v1/Exclude : org/partiql/ast/v1/AstNode { public class org/partiql/ast/v1/ExcludePath : org/partiql/ast/v1/AstNode { public field excludeSteps Ljava/util/List; - public field root Lorg/partiql/ast/v1/expr/ExprVar; - public fun (Lorg/partiql/ast/v1/expr/ExprVar;Ljava/util/List;)V + public field root Lorg/partiql/ast/v1/expr/ExprVarRef; + public fun (Lorg/partiql/ast/v1/expr/ExprVarRef;Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -5856,9 +5846,9 @@ public class org/partiql/ast/v1/Identifier$Qualified : org/partiql/ast/v1/Identi } public class org/partiql/ast/v1/Identifier$Symbol : org/partiql/ast/v1/Identifier { - public field caseSensitivity Lorg/partiql/ast/v1/CaseSensitivity; + public field isDelimited Z public field symbol Ljava/lang/String; - public fun (Ljava/lang/String;Lorg/partiql/ast/v1/CaseSensitivity;)V + public fun (Ljava/lang/String;Z)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -6085,10 +6075,10 @@ public class org/partiql/ast/v1/expr/ExprAnd : org/partiql/ast/v1/expr/Expr { public class org/partiql/ast/v1/expr/ExprBetween : org/partiql/ast/v1/expr/Expr { public final field from Lorg/partiql/ast/v1/expr/Expr; - public final field not Ljava/lang/Boolean; + public final field not Z public final field to Lorg/partiql/ast/v1/expr/Expr; public final field value Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/Boolean;)V + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Z)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -6181,35 +6171,28 @@ public class org/partiql/ast/v1/expr/ExprExtract : org/partiql/ast/v1/expr/Expr public class org/partiql/ast/v1/expr/ExprInCollection : org/partiql/ast/v1/expr/Expr { public field lhs Lorg/partiql/ast/v1/expr/Expr; - public field not Ljava/lang/Boolean; + public field not Z public field rhs Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/Boolean;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/expr/ExprIon : org/partiql/ast/v1/expr/Expr { - public field value Lcom/amazon/ionelement/api/IonElement; - public fun (Lcom/amazon/ionelement/api/IonElement;)V + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Z)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } public class org/partiql/ast/v1/expr/ExprIsType : org/partiql/ast/v1/expr/Expr { - public field not Ljava/lang/Boolean; + public field not Z public field type Lorg/partiql/ast/v1/type/Type; public field value Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/type/Type;Ljava/lang/Boolean;)V + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/type/Type;Z)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } public class org/partiql/ast/v1/expr/ExprLike : org/partiql/ast/v1/expr/Expr { public field escape Lorg/partiql/ast/v1/expr/Expr; - public field not Ljava/lang/Boolean; + public field not Z public field pattern Lorg/partiql/ast/v1/expr/Expr; public field value Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/Boolean;)V + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Z)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -6405,20 +6388,29 @@ public class org/partiql/ast/v1/expr/ExprValues$Row : org/partiql/ast/v1/AstNode public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/expr/ExprVar : org/partiql/ast/v1/expr/Expr { +public class org/partiql/ast/v1/expr/ExprVarRef : org/partiql/ast/v1/expr/Expr { public field identifier Lorg/partiql/ast/v1/Identifier; - public field scope Lorg/partiql/ast/v1/expr/ExprVar$Scope; - public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/expr/ExprVar$Scope;)V + public field scope Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; + public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/expr/ExprVarRef$Scope;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprVar$Scope : java/lang/Enum { - public static final field DEFAULT Lorg/partiql/ast/v1/expr/ExprVar$Scope; - public static final field LOCAL Lorg/partiql/ast/v1/expr/ExprVar$Scope; - public static final field OTHER Lorg/partiql/ast/v1/expr/ExprVar$Scope; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprVar$Scope; - public static fun values ()[Lorg/partiql/ast/v1/expr/ExprVar$Scope; +public final class org/partiql/ast/v1/expr/ExprVarRef$Scope : java/lang/Enum { + public static final field DEFAULT Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; + public static final field LOCAL Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; + public static final field OTHER Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; + public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; + public static fun values ()[Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; +} + +public class org/partiql/ast/v1/expr/ExprVariant : org/partiql/ast/v1/expr/Expr { + public field encoding Ljava/lang/String; + public field value Ljava/lang/String; + public fun (Ljava/lang/String;Ljava/lang/String;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public synthetic fun children ()Ljava/util/Collection; + public fun children ()Ljava/util/List; } public class org/partiql/ast/v1/expr/ExprWindow : org/partiql/ast/v1/expr/Expr { @@ -6617,12 +6609,6 @@ public abstract class org/partiql/ast/v1/type/Type : org/partiql/ast/v1/AstNode public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public class org/partiql/ast/v1/type/TypeAny : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - public class org/partiql/ast/v1/type/TypeBag : org/partiql/ast/v1/type/Type { public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; @@ -6662,13 +6648,6 @@ public class org/partiql/ast/v1/type/TypeBool : org/partiql/ast/v1/type/Type { public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/type/TypeByteString : org/partiql/ast/v1/type/Type { - public field length Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - public class org/partiql/ast/v1/type/TypeChar : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V @@ -6683,13 +6662,6 @@ public class org/partiql/ast/v1/type/TypeClob : org/partiql/ast/v1/type/Type { public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/type/TypeCustom : org/partiql/ast/v1/type/Type { - public field name Ljava/lang/String; - public fun (Ljava/lang/String;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - public class org/partiql/ast/v1/type/TypeDate : org/partiql/ast/v1/type/Type { public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeDate; public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; @@ -6704,13 +6676,13 @@ public class org/partiql/ast/v1/type/TypeDecimal : org/partiql/ast/v1/type/Type public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/type/TypeFloat32 : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeDoublePrecision : org/partiql/ast/v1/type/Type { public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/type/TypeFloat64 : org/partiql/ast/v1/type/Type { +public class org/partiql/ast/v1/type/TypeFloat : org/partiql/ast/v1/type/Type { public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; @@ -6850,6 +6822,13 @@ public class org/partiql/ast/v1/type/TypeTuple : org/partiql/ast/v1/type/Type { public fun children ()Ljava/util/Collection; } +public class org/partiql/ast/v1/type/TypeUserDefined : org/partiql/ast/v1/type/Type { + public field name Ljava/lang/String; + public fun (Ljava/lang/String;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + public class org/partiql/ast/v1/type/TypeVarchar : org/partiql/ast/v1/type/Type { public field length Ljava/lang/Integer; public fun (Ljava/lang/Integer;)V diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java index aaf7aa5e7e..1726c1eb7c 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java @@ -12,7 +12,6 @@ import org.partiql.ast.v1.expr.ExprDateDiff; import org.partiql.ast.v1.expr.ExprExtract; import org.partiql.ast.v1.expr.ExprInCollection; -import org.partiql.ast.v1.expr.ExprIon; import org.partiql.ast.v1.expr.ExprIsType; import org.partiql.ast.v1.expr.ExprLike; import org.partiql.ast.v1.expr.ExprLit; @@ -32,7 +31,8 @@ import org.partiql.ast.v1.expr.ExprSubstring; import org.partiql.ast.v1.expr.ExprTrim; import org.partiql.ast.v1.expr.ExprValues; -import org.partiql.ast.v1.expr.ExprVar; +import org.partiql.ast.v1.expr.ExprVarRef; +import org.partiql.ast.v1.expr.ExprVariant; import org.partiql.ast.v1.expr.ExprWindow; import org.partiql.ast.v1.graph.GraphLabel; import org.partiql.ast.v1.graph.GraphMatch; @@ -41,21 +41,19 @@ import org.partiql.ast.v1.graph.GraphQuantifier; import org.partiql.ast.v1.graph.GraphSelector; import org.partiql.ast.v1.type.Type; -import org.partiql.ast.v1.type.TypeAny; import org.partiql.ast.v1.type.TypeBag; import org.partiql.ast.v1.type.TypeBigint; import org.partiql.ast.v1.type.TypeBit; import org.partiql.ast.v1.type.TypeBitVarying; import org.partiql.ast.v1.type.TypeBlob; import org.partiql.ast.v1.type.TypeBool; -import org.partiql.ast.v1.type.TypeByteString; import org.partiql.ast.v1.type.TypeChar; import org.partiql.ast.v1.type.TypeClob; -import org.partiql.ast.v1.type.TypeCustom; +import org.partiql.ast.v1.type.TypeUserDefined; import org.partiql.ast.v1.type.TypeDate; import org.partiql.ast.v1.type.TypeDecimal; -import org.partiql.ast.v1.type.TypeFloat32; -import org.partiql.ast.v1.type.TypeFloat64; +import org.partiql.ast.v1.type.TypeDoublePrecision; +import org.partiql.ast.v1.type.TypeFloat; import org.partiql.ast.v1.type.TypeInt; import org.partiql.ast.v1.type.TypeInt2; import org.partiql.ast.v1.type.TypeInt4; @@ -116,9 +114,9 @@ public interface AstVisitor { R visitTypeReal(TypeReal node, C ctx); - R visitTypeFloat32(TypeFloat32 node, C ctx); + R visitTypeFloat(TypeFloat node, C ctx); - R visitTypeFloat64(TypeFloat64 node, C ctx); + R visitTypeDoublePrecision(TypeDoublePrecision node, C ctx); R visitTypeDecimal(TypeDecimal node, C ctx); @@ -136,8 +134,6 @@ public interface AstVisitor { R visitTypeBitVarying(TypeBitVarying node, C ctx); - R visitTypeByteString(TypeByteString node, C ctx); - R visitTypeBlob(TypeBlob node, C ctx); R visitTypeClob(TypeClob node, C ctx); @@ -164,9 +160,7 @@ public interface AstVisitor { R visitTypeStruct(TypeStruct node, C ctx); - R visitTypeAny(TypeAny node, C ctx); - - R visitTypeCustom(TypeCustom node, C ctx); + R visitTypeUserDefined(TypeUserDefined node, C ctx); R visitIdentifier(Identifier node, C ctx); @@ -186,9 +180,9 @@ public interface AstVisitor { R visitExprLit(ExprLit node, C ctx); - R visitExprIon(ExprIon node, C ctx); + R visitExprVariant(ExprVariant node, C ctx); - R visitExprVar(ExprVar node, C ctx); + R visitExprVarRef(ExprVarRef node, C ctx); R visitExprSessionAttribute(ExprSessionAttribute node, C ctx); diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/CaseSensitivity.java b/partiql-ast/src/main/java/org/partiql/ast/v1/CaseSensitivity.java deleted file mode 100644 index ee7a7a30d8..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/CaseSensitivity.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.partiql.ast.v1; - -/** - * TODO docs, equals, hashcode - */ -public enum CaseSensitivity { - SENSITIVE, - INSENSITIVE, - OTHER, -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludePath.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludePath.java index 0a0ee57cba..e468f47195 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludePath.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludePath.java @@ -1,7 +1,7 @@ package org.partiql.ast.v1; import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.expr.ExprVar; +import org.partiql.ast.v1.expr.ExprVarRef; import java.util.ArrayList; import java.util.Collection; @@ -12,12 +12,12 @@ */ public class ExcludePath extends AstNode { @NotNull - public ExprVar root; + public ExprVarRef root; @NotNull public List excludeSteps; - public ExcludePath(@NotNull ExprVar root, @NotNull List excludeSteps) { + public ExcludePath(@NotNull ExprVarRef root, @NotNull List excludeSteps) { this.root = root; this.excludeSteps = excludeSteps; } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java index 45ab8f8900..149f3c8c40 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java @@ -22,18 +22,19 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { } /** - * TODO docs, equals, hashcode + * TODO docs, equals, hashcode; TODO change to other name pending comment followup to + * https://github.com/partiql/partiql-lang-kotlin/pull/1579#discussion_r1775983916 + * */ public static class Symbol extends Identifier { @NotNull public String symbol; - @NotNull - public CaseSensitivity caseSensitivity; + public boolean isDelimited; - public Symbol(@NotNull String symbol, @NotNull CaseSensitivity caseSensitivity) { + public Symbol(@NotNull String symbol, boolean isDelimited) { this.symbol = symbol; - this.caseSensitivity = caseSensitivity; + this.isDelimited = isDelimited; } @NotNull diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java index ead2f0eadd..e508a69ca8 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java @@ -12,10 +12,10 @@ public abstract class Expr extends AstNode { public R accept(@NotNull AstVisitor visitor, C ctx) { if (this instanceof ExprLit) { return visitor.visitExprLit((ExprLit) this, ctx); - } else if (this instanceof ExprIon) { - return visitor.visitExprIon((ExprIon) this, ctx); - } else if (this instanceof ExprVar) { - return visitor.visitExprVar((ExprVar) this, ctx); + } else if (this instanceof ExprVariant) { + return visitor.visitExprVariant((ExprVariant) this, ctx); + } else if (this instanceof ExprVarRef) { + return visitor.visitExprVarRef((ExprVarRef) this, ctx); } else if (this instanceof ExprSessionAttribute) { return visitor.visitExprSessionAttribute((ExprSessionAttribute) this, ctx); } else if (this instanceof ExprPath) { diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java index b3467e6617..b00733e690 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java @@ -21,10 +21,9 @@ public class ExprBetween extends Expr { @NotNull public final Expr to; - @NotNull - public final Boolean not; + public final boolean not; - public ExprBetween(@NotNull Expr value, @NotNull Expr from, @NotNull Expr to, @NotNull Boolean not) { + public ExprBetween(@NotNull Expr value, @NotNull Expr from, @NotNull Expr to, @NotNull boolean not) { this.value = value; this.from = from; this.to = to; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java index 2312f6cce3..78893edae6 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java @@ -19,10 +19,9 @@ public class ExprInCollection extends Expr { @NotNull public Expr rhs; - @Nullable - public Boolean not; + public boolean not; - public ExprInCollection(@NotNull Expr lhs, @NotNull Expr rhs, @Nullable Boolean not) { + public ExprInCollection(@NotNull Expr lhs, @NotNull Expr rhs, boolean not) { this.lhs = lhs; this.rhs = rhs; this.not = not; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java index ee7828b292..eb212b869e 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java @@ -1,7 +1,6 @@ package org.partiql.ast.v1.expr; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.partiql.ast.v1.AstNode; import org.partiql.ast.v1.AstVisitor; import org.partiql.ast.v1.type.Type; @@ -20,10 +19,9 @@ public class ExprIsType extends Expr { @NotNull public Type type; - @Nullable - public Boolean not; + public boolean not; - public ExprIsType(@NotNull Expr value, @NotNull Type type, @Nullable Boolean not) { + public ExprIsType(@NotNull Expr value, @NotNull Type type, boolean not) { this.value = value; this.type = type; this.not = not; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLike.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLike.java index b63228e346..9c2b571b32 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLike.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLike.java @@ -22,10 +22,9 @@ public class ExprLike extends Expr { @Nullable public Expr escape; - @Nullable - public Boolean not; + public boolean not; - public ExprLike(@NotNull Expr value, @NotNull Expr pattern, @Nullable Expr escape, @Nullable Boolean not) { + public ExprLike(@NotNull Expr value, @NotNull Expr pattern, @Nullable Expr escape, boolean not) { this.value = value; this.pattern = pattern; this.escape = escape; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOverlay.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOverlay.java index 62f186a3ae..a13e24aa47 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOverlay.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprOverlay.java @@ -1,6 +1,7 @@ package org.partiql.ast.v1.expr; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.partiql.ast.v1.AstNode; import org.partiql.ast.v1.AstVisitor; @@ -21,10 +22,10 @@ public class ExprOverlay extends Expr { @NotNull public Expr from; - @NotNull + @Nullable public Expr forLength; - public ExprOverlay(@NotNull Expr value, @NotNull Expr placing, @NotNull Expr from, @NotNull Expr forLength) { + public ExprOverlay(@NotNull Expr value, @NotNull Expr placing, @NotNull Expr from, @Nullable Expr forLength) { this.value = value; this.placing = placing; this.from = from; @@ -38,7 +39,9 @@ public Collection children() { kids.add(value); kids.add(placing); kids.add(from); - kids.add(forLength); + if (forLength != null) { + kids.add(forLength); + } return kids; } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVar.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVarRef.java similarity index 83% rename from partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVar.java rename to partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVarRef.java index a69b948828..1cca5c37a8 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVar.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVarRef.java @@ -12,14 +12,14 @@ /** * TODO docs, equals, hashcode */ -public class ExprVar extends Expr { +public class ExprVarRef extends Expr { @NotNull public Identifier identifier; @NotNull public Scope scope; - public ExprVar(@NotNull Identifier identifier, @NotNull Scope scope) { + public ExprVarRef(@NotNull Identifier identifier, @NotNull Scope scope) { this.identifier = identifier; this.scope = scope; } @@ -34,7 +34,7 @@ public Collection children() { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitExprVar(this, ctx); + return visitor.visitExprVarRef(this, ctx); } /** diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIon.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVariant.java similarity index 53% rename from partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIon.java rename to partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVariant.java index 1e09c6b071..da56da692d 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIon.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVariant.java @@ -3,30 +3,30 @@ import org.jetbrains.annotations.NotNull; import org.partiql.ast.v1.AstNode; import org.partiql.ast.v1.AstVisitor; -import com.amazon.ionelement.api.IonElement; import java.util.Collections; -import java.util.Collection; +import java.util.List; -/** - * TODO docs, equals, hashcode - */ -public class ExprIon extends Expr { +public class ExprVariant extends Expr { @NotNull - public IonElement value; + public String value; + @NotNull + public String encoding; - public ExprIon(@NotNull IonElement value) { + public ExprVariant(@NotNull String value, @NotNull String encoding) { this.value = value; + this.encoding = encoding; } - @Override @NotNull - public Collection children() { + @Override + public List children() { return Collections.emptyList(); } + @NotNull @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitExprIon(this, ctx); + return visitor.visitExprVariant(this, ctx); } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java index 0d2525810c..de93bb0ff6 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java @@ -32,10 +32,10 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitTypeInt((TypeInt) this, ctx); } else if (this instanceof TypeReal) { return visitor.visitTypeReal((TypeReal) this, ctx); - } else if (this instanceof TypeFloat32) { - return visitor.visitTypeFloat32((TypeFloat32) this, ctx); - } else if (this instanceof TypeFloat64) { - return visitor.visitTypeFloat64((TypeFloat64) this, ctx); + } else if (this instanceof TypeFloat) { + return visitor.visitTypeFloat((TypeFloat) this, ctx); + } else if (this instanceof TypeDoublePrecision) { + return visitor.visitTypeDoublePrecision((TypeDoublePrecision) this, ctx); } else if (this instanceof TypeDecimal) { return visitor.visitTypeDecimal((TypeDecimal) this, ctx); } else if (this instanceof TypeNumeric) { @@ -52,8 +52,6 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitTypeBit((TypeBit) this, ctx); } else if (this instanceof TypeBitVarying) { return visitor.visitTypeBitVarying((TypeBitVarying) this, ctx); - } else if (this instanceof TypeByteString) { - return visitor.visitTypeByteString((TypeByteString) this, ctx); } else if (this instanceof TypeBlob) { return visitor.visitTypeBlob((TypeBlob) this, ctx); } else if (this instanceof TypeClob) { @@ -80,10 +78,8 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitTypeTuple((TypeTuple) this, ctx); } else if (this instanceof TypeStruct) { return visitor.visitTypeStruct((TypeStruct) this, ctx); - } else if (this instanceof TypeAny) { - return visitor.visitTypeAny((TypeAny) this, ctx); - } else if (this instanceof TypeCustom) { - return visitor.visitTypeCustom((TypeCustom) this, ctx); + } else if (this instanceof TypeUserDefined) { + return visitor.visitTypeUserDefined((TypeUserDefined) this, ctx); } else { throw new IllegalStateException("Unexpected value: " + this); } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeByteString.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeByteString.java deleted file mode 100644 index 6c11b95489..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeByteString.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeByteString extends Type { - @Nullable - public Integer length; - - public TypeByteString(@Nullable Integer length) { - this.length = length; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeByteString(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat64.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDoublePrecision.java similarity index 80% rename from partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat64.java rename to partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDoublePrecision.java index 9cee8cf2d5..4b32f88201 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat64.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDoublePrecision.java @@ -10,7 +10,7 @@ /** * TODO docs, equals, hashcode */ -public class TypeFloat64 extends Type { +public class TypeDoublePrecision extends Type { @NotNull @Override public Collection children() { @@ -19,6 +19,6 @@ public Collection children() { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeFloat64(this, ctx); + return visitor.visitTypeDoublePrecision(this, ctx); } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeAny.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat.java similarity index 83% rename from partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeAny.java rename to partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat.java index 6ff9328138..54038ca62d 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeAny.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat.java @@ -10,7 +10,7 @@ /** * TODO docs, equals, hashcode */ -public class TypeAny extends Type { +public class TypeFloat extends Type { @NotNull @Override public Collection children() { @@ -19,6 +19,6 @@ public Collection children() { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeAny(this, ctx); + return visitor.visitTypeFloat(this, ctx); } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat32.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat32.java deleted file mode 100644 index 8760feb30f..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat32.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeFloat32 extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeFloat32(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeCustom.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeUserDefined.java similarity index 77% rename from partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeCustom.java rename to partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeUserDefined.java index fa40ce3e89..b98fc6279c 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeCustom.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeUserDefined.java @@ -10,11 +10,11 @@ /** * TODO docs, equals, hashcode */ -public class TypeCustom extends Type { +public class TypeUserDefined extends Type { @NotNull public String name; - public TypeCustom(@NotNull String name) { + public TypeUserDefined(@NotNull String name) { this.name = name; } @@ -26,6 +26,6 @@ public Collection children() { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeCustom(this, ctx); + return visitor.visitTypeUserDefined(this, ctx); } } From 6f95593c97dd1b9fde299729290bd63ca535ff5c Mon Sep 17 00:00:00 2001 From: Alan Cai Date: Thu, 3 Oct 2024 17:13:09 -0700 Subject: [PATCH 06/11] Make enums ints; refactor Type, Identifier, Path, ExprCollection --- partiql-ast/api/partiql-ast.api | 931 +++++++----------- .../java/org/partiql/ast/v1/AstVisitor.java | 145 +-- .../java/org/partiql/ast/v1/DataType.java | 318 ++++++ .../org/partiql/ast/v1/DatetimeField.java | 67 +- .../main/java/org/partiql/ast/v1/Enum.java | 8 + .../java/org/partiql/ast/v1/ExcludeStep.java | 4 +- .../java/org/partiql/ast/v1/FromJoin.java | 22 +- .../java/org/partiql/ast/v1/FromType.java | 33 + .../java/org/partiql/ast/v1/FromValue.java | 24 +- .../main/java/org/partiql/ast/v1/GroupBy.java | 19 +- .../org/partiql/ast/v1/GroupByStrategy.java | 33 + .../java/org/partiql/ast/v1/Identifier.java | 73 +- .../v1/{PathLit.java => IdentifierChain.java} | 19 +- .../java/org/partiql/ast/v1/JoinType.java | 68 ++ .../src/main/java/org/partiql/ast/v1/Let.java | 10 +- .../main/java/org/partiql/ast/v1/Nulls.java | 33 + .../main/java/org/partiql/ast/v1/Order.java | 30 + .../main/java/org/partiql/ast/v1/OrderBy.java | 5 +- .../java/org/partiql/ast/v1/PathLitStep.java | 59 -- .../java/org/partiql/ast/v1/ProjectItem.java | 4 +- .../main/java/org/partiql/ast/v1/SetOp.java | 16 +- .../java/org/partiql/ast/v1/SetOpType.java | 38 + .../org/partiql/ast/v1/SetQuantifier.java | 33 +- .../main/java/org/partiql/ast/v1/Sort.java | 24 +- .../java/org/partiql/ast/v1/expr/Expr.java | 10 +- .../{ExprCollection.java => ExprArray.java} | 22 +- .../{type/TypeReal.java => expr/ExprBag.java} | 18 +- .../org/partiql/ast/v1/expr/ExprBetween.java | 2 +- .../org/partiql/ast/v1/expr/ExprCall.java | 6 +- .../org/partiql/ast/v1/expr/ExprCast.java | 7 +- .../org/partiql/ast/v1/expr/ExprDateAdd.java | 44 - .../org/partiql/ast/v1/expr/ExprDateDiff.java | 44 - .../partiql/ast/v1/expr/ExprInCollection.java | 1 - .../org/partiql/ast/v1/expr/ExprIsType.java | 7 +- .../org/partiql/ast/v1/expr/ExprNullIf.java | 14 +- .../org/partiql/ast/v1/expr/ExprPath.java | 13 +- .../org/partiql/ast/v1/expr/ExprPathStep.java | 97 -- .../ast/v1/expr/ExprSessionAttribute.java | 15 +- .../org/partiql/ast/v1/expr/ExprTrim.java | 13 +- .../org/partiql/ast/v1/expr/ExprVarRef.java | 19 +- .../org/partiql/ast/v1/expr/ExprWindow.java | 15 +- .../org/partiql/ast/v1/expr/PathStep.java | 124 +++ .../java/org/partiql/ast/v1/expr/Scope.java | 35 + .../partiql/ast/v1/expr/SessionAttribute.java | 35 + .../org/partiql/ast/v1/expr/TrimSpec.java | 37 + .../partiql/ast/v1/expr/WindowFunction.java | 35 + .../partiql/ast/v1/graph/GraphDirection.java | 63 +- .../partiql/ast/v1/graph/GraphRestrictor.java | 39 +- .../java/org/partiql/ast/v1/type/Type.java | 87 -- .../java/org/partiql/ast/v1/type/TypeBag.java | 24 - .../org/partiql/ast/v1/type/TypeBigint.java | 24 - .../java/org/partiql/ast/v1/type/TypeBit.java | 32 - .../partiql/ast/v1/type/TypeBitVarying.java | 32 - .../org/partiql/ast/v1/type/TypeBlob.java | 32 - .../org/partiql/ast/v1/type/TypeBool.java | 28 - .../org/partiql/ast/v1/type/TypeChar.java | 32 - .../org/partiql/ast/v1/type/TypeClob.java | 32 - .../org/partiql/ast/v1/type/TypeDate.java | 28 - .../org/partiql/ast/v1/type/TypeDecimal.java | 36 - .../ast/v1/type/TypeDoublePrecision.java | 24 - .../org/partiql/ast/v1/type/TypeFloat.java | 24 - .../java/org/partiql/ast/v1/type/TypeInt.java | 24 - .../org/partiql/ast/v1/type/TypeInt2.java | 24 - .../org/partiql/ast/v1/type/TypeInt4.java | 24 - .../org/partiql/ast/v1/type/TypeInt8.java | 24 - .../org/partiql/ast/v1/type/TypeInterval.java | 32 - .../org/partiql/ast/v1/type/TypeList.java | 24 - .../org/partiql/ast/v1/type/TypeMissing.java | 24 - .../org/partiql/ast/v1/type/TypeNull.java | 24 - .../org/partiql/ast/v1/type/TypeNumeric.java | 36 - .../org/partiql/ast/v1/type/TypeSexp.java | 24 - .../org/partiql/ast/v1/type/TypeSmallint.java | 24 - .../org/partiql/ast/v1/type/TypeString.java | 32 - .../org/partiql/ast/v1/type/TypeStruct.java | 24 - .../org/partiql/ast/v1/type/TypeSymbol.java | 24 - .../org/partiql/ast/v1/type/TypeTime.java | 32 - .../partiql/ast/v1/type/TypeTimeWithTz.java | 32 - .../partiql/ast/v1/type/TypeTimestamp.java | 32 - .../ast/v1/type/TypeTimestampWithTz.java | 32 - .../org/partiql/ast/v1/type/TypeTinyint.java | 24 - .../org/partiql/ast/v1/type/TypeTuple.java | 24 - .../partiql/ast/v1/type/TypeUserDefined.java | 31 - .../org/partiql/ast/v1/type/TypeVarchar.java | 32 - 83 files changed, 1509 insertions(+), 2260 deletions(-) create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Enum.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/FromType.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/GroupByStrategy.java rename partiql-ast/src/main/java/org/partiql/ast/v1/{PathLit.java => IdentifierChain.java} (55%) create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/JoinType.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Nulls.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Order.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/PathLitStep.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/SetOpType.java rename partiql-ast/src/main/java/org/partiql/ast/v1/expr/{ExprCollection.java => ExprArray.java} (58%) rename partiql-ast/src/main/java/org/partiql/ast/v1/{type/TypeReal.java => expr/ExprBag.java} (55%) delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateAdd.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateDiff.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPathStep.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/PathStep.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/Scope.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/SessionAttribute.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/TrimSpec.java create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/expr/WindowFunction.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBag.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBigint.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBit.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBitVarying.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBlob.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBool.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeChar.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeClob.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDate.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDecimal.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDoublePrecision.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt2.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt4.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt8.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInterval.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeList.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeMissing.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNull.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNumeric.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSexp.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSmallint.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeString.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeStruct.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSymbol.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTime.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimeWithTz.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestamp.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestampWithTz.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTinyint.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTuple.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeUserDefined.java delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeVarchar.java diff --git a/partiql-ast/api/partiql-ast.api b/partiql-ast/api/partiql-ast.api index d4a7c99a7b..adb39b30a8 100644 --- a/partiql-ast/api/partiql-ast.api +++ b/partiql-ast/api/partiql-ast.api @@ -5562,15 +5562,14 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitExplain (Lorg/partiql/ast/v1/Explain;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExpr (Lorg/partiql/ast/v1/expr/Expr;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprAnd (Lorg/partiql/ast/v1/expr/ExprAnd;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprArray (Lorg/partiql/ast/v1/expr/ExprArray;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitExprBag (Lorg/partiql/ast/v1/expr/ExprBag;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprBetween (Lorg/partiql/ast/v1/expr/ExprBetween;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprCall (Lorg/partiql/ast/v1/expr/ExprCall;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprCase (Lorg/partiql/ast/v1/expr/ExprCase;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprCaseBranch (Lorg/partiql/ast/v1/expr/ExprCase$Branch;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprCast (Lorg/partiql/ast/v1/expr/ExprCast;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprCoalesce (Lorg/partiql/ast/v1/expr/ExprCoalesce;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprCollection (Lorg/partiql/ast/v1/expr/ExprCollection;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprDateAdd (Lorg/partiql/ast/v1/expr/ExprDateAdd;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprDateDiff (Lorg/partiql/ast/v1/expr/ExprDateDiff;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprExtract (Lorg/partiql/ast/v1/expr/ExprExtract;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprInCollection (Lorg/partiql/ast/v1/expr/ExprInCollection;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprIsType (Lorg/partiql/ast/v1/expr/ExprIsType;Ljava/lang/Object;)Ljava/lang/Object; @@ -5584,11 +5583,6 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitExprOverlay (Lorg/partiql/ast/v1/expr/ExprOverlay;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprParameter (Lorg/partiql/ast/v1/expr/ExprParameter;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprPath (Lorg/partiql/ast/v1/expr/ExprPath;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPathStep (Lorg/partiql/ast/v1/expr/ExprPathStep;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPathStepIndex (Lorg/partiql/ast/v1/expr/ExprPathStep$Index;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPathStepSymbol (Lorg/partiql/ast/v1/expr/ExprPathStep$Symbol;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPathStepUnpivot (Lorg/partiql/ast/v1/expr/ExprPathStep$Unpivot;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitExprPathStepWildcard (Lorg/partiql/ast/v1/expr/ExprPathStep$Wildcard;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprPosition (Lorg/partiql/ast/v1/expr/ExprPosition;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprQuerySet (Lorg/partiql/ast/v1/expr/ExprQuerySet;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprSessionAttribute (Lorg/partiql/ast/v1/expr/ExprSessionAttribute;Ljava/lang/Object;)Ljava/lang/Object; @@ -5628,15 +5622,15 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitGroupBy (Lorg/partiql/ast/v1/GroupBy;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitGroupByKey (Lorg/partiql/ast/v1/GroupBy$Key;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitIdentifier (Lorg/partiql/ast/v1/Identifier;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitIdentifierQualified (Lorg/partiql/ast/v1/Identifier$Qualified;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitIdentifierSymbol (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitIdentifierChain (Lorg/partiql/ast/v1/IdentifierChain;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitLet (Lorg/partiql/ast/v1/Let;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitLetBinding (Lorg/partiql/ast/v1/Let$Binding;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitOrderBy (Lorg/partiql/ast/v1/OrderBy;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitPathLit (Lorg/partiql/ast/v1/PathLit;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitPathLitStep (Lorg/partiql/ast/v1/PathLitStep;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitPathLitStepIndex (Lorg/partiql/ast/v1/PathLitStep$Index;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitPathLitStepSymbol (Lorg/partiql/ast/v1/PathLitStep$Symbol;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathStep (Lorg/partiql/ast/v1/expr/PathStep;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathStepAllElements (Lorg/partiql/ast/v1/expr/PathStep$AllElements;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathStepAllFields (Lorg/partiql/ast/v1/expr/PathStep$AllFields;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathStepElement (Lorg/partiql/ast/v1/expr/PathStep$Element;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitPathStepField (Lorg/partiql/ast/v1/expr/PathStep$Field;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitProjectItem (Lorg/partiql/ast/v1/ProjectItem;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitProjectItemAll (Lorg/partiql/ast/v1/ProjectItem$All;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitProjectItemExpression (Lorg/partiql/ast/v1/ProjectItem$Expression;Ljava/lang/Object;)Ljava/lang/Object; @@ -5654,56 +5648,141 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitStatement (Lorg/partiql/ast/v1/Statement;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTarget (Lorg/partiql/ast/v1/Target;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitTargetDomain (Lorg/partiql/ast/v1/Target$Domain;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitType (Lorg/partiql/ast/v1/type/Type;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBag (Lorg/partiql/ast/v1/type/TypeBag;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBigint (Lorg/partiql/ast/v1/type/TypeBigint;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBit (Lorg/partiql/ast/v1/type/TypeBit;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBitVarying (Lorg/partiql/ast/v1/type/TypeBitVarying;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBlob (Lorg/partiql/ast/v1/type/TypeBlob;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeBool (Lorg/partiql/ast/v1/type/TypeBool;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeChar (Lorg/partiql/ast/v1/type/TypeChar;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeClob (Lorg/partiql/ast/v1/type/TypeClob;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeDate (Lorg/partiql/ast/v1/type/TypeDate;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeDecimal (Lorg/partiql/ast/v1/type/TypeDecimal;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeDoublePrecision (Lorg/partiql/ast/v1/type/TypeDoublePrecision;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeFloat (Lorg/partiql/ast/v1/type/TypeFloat;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeInt (Lorg/partiql/ast/v1/type/TypeInt;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeInt2 (Lorg/partiql/ast/v1/type/TypeInt2;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeInt4 (Lorg/partiql/ast/v1/type/TypeInt4;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeInt8 (Lorg/partiql/ast/v1/type/TypeInt8;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeInterval (Lorg/partiql/ast/v1/type/TypeInterval;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeList (Lorg/partiql/ast/v1/type/TypeList;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeMissing (Lorg/partiql/ast/v1/type/TypeMissing;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeNull (Lorg/partiql/ast/v1/type/TypeNull;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeNumeric (Lorg/partiql/ast/v1/type/TypeNumeric;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeReal (Lorg/partiql/ast/v1/type/TypeReal;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeSexp (Lorg/partiql/ast/v1/type/TypeSexp;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeSmallint (Lorg/partiql/ast/v1/type/TypeSmallint;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeString (Lorg/partiql/ast/v1/type/TypeString;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeStruct (Lorg/partiql/ast/v1/type/TypeStruct;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeSymbol (Lorg/partiql/ast/v1/type/TypeSymbol;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTime (Lorg/partiql/ast/v1/type/TypeTime;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTimeWithTz (Lorg/partiql/ast/v1/type/TypeTimeWithTz;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTimestamp (Lorg/partiql/ast/v1/type/TypeTimestamp;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTimestampWithTz (Lorg/partiql/ast/v1/type/TypeTimestampWithTz;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTinyint (Lorg/partiql/ast/v1/type/TypeTinyint;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeTuple (Lorg/partiql/ast/v1/type/TypeTuple;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeUserDefined (Lorg/partiql/ast/v1/type/TypeUserDefined;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTypeVarchar (Lorg/partiql/ast/v1/type/TypeVarchar;Ljava/lang/Object;)Ljava/lang/Object; -} - -public final class org/partiql/ast/v1/DatetimeField : java/lang/Enum { - public static final field DAY Lorg/partiql/ast/v1/DatetimeField; - public static final field HOUR Lorg/partiql/ast/v1/DatetimeField; - public static final field MINUTE Lorg/partiql/ast/v1/DatetimeField; - public static final field MONTH Lorg/partiql/ast/v1/DatetimeField; - public static final field OTHER Lorg/partiql/ast/v1/DatetimeField; - public static final field SECOND Lorg/partiql/ast/v1/DatetimeField; - public static final field TIMEZONE_HOUR Lorg/partiql/ast/v1/DatetimeField; - public static final field TIMEZONE_MINUTE Lorg/partiql/ast/v1/DatetimeField; - public static final field YEAR Lorg/partiql/ast/v1/DatetimeField; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/DatetimeField; - public static fun values ()[Lorg/partiql/ast/v1/DatetimeField; +} + +public class org/partiql/ast/v1/DataType : org/partiql/ast/v1/Enum { + public static final field BAG I + public static final field BIGINT I + public static final field BIT I + public static final field BIT_VARYING I + public static final field BLOB I + public static final field BOOL I + public static final field BOOLEAN I + public static final field CHAR I + public static final field CHARACTER I + public static final field CHARACTER_VARYING I + public static final field CLOB I + public static final field DATE I + public static final field DEC I + public static final field DECIMAL I + public static final field DOUBLE_PRECISION I + public static final field FLOAT I + public static final field INT I + public static final field INT2 I + public static final field INT4 I + public static final field INT8 I + public static final field INTEGER I + public static final field INTEGER2 I + public static final field INTEGER4 I + public static final field INTEGER8 I + public static final field INTERVAL I + public static final field LIST I + public static final field MISSING I + public static final field NULL I + public static final field NUMERIC I + public static final field REAL I + public static final field SEXP I + public static final field SMALLINT I + public static final field STRING I + public static final field STRUCT I + public static final field SYMBOL I + public static final field TIME I + public static final field TIMESTAMP I + public static final field TIMESTAMP_WITH_TIME_ZONE I + public static final field TIME_WITH_TIME_ZONE I + public static final field TINYINT I + public static final field TUPLE I + public static final field UNKNOWN I + public static final field USER_DEFINED I + public static final field VARCHAR I + public static fun BAG ()Lorg/partiql/ast/v1/DataType; + public static fun BIGINT ()Lorg/partiql/ast/v1/DataType; + public static fun BIT ()Lorg/partiql/ast/v1/DataType; + public static fun BIT (I)Lorg/partiql/ast/v1/DataType; + public static fun BIT_VARYING ()Lorg/partiql/ast/v1/DataType; + public static fun BIT_VARYING (I)Lorg/partiql/ast/v1/DataType; + public static fun BLOB ()Lorg/partiql/ast/v1/DataType; + public static fun BLOB (I)Lorg/partiql/ast/v1/DataType; + public static fun BOOL ()Lorg/partiql/ast/v1/DataType; + public static fun BOOLEAN ()Lorg/partiql/ast/v1/DataType; + public static fun CHAR ()Lorg/partiql/ast/v1/DataType; + public static fun CHAR (I)Lorg/partiql/ast/v1/DataType; + public static fun CHARACTER ()Lorg/partiql/ast/v1/DataType; + public static fun CHARACTER (I)Lorg/partiql/ast/v1/DataType; + public static fun CHARACTER_VARYING ()Lorg/partiql/ast/v1/DataType; + public static fun CHARACTER_VARYING (I)Lorg/partiql/ast/v1/DataType; + public static fun CLOB ()Lorg/partiql/ast/v1/DataType; + public static fun CLOB (I)Lorg/partiql/ast/v1/DataType; + public static fun DATE ()Lorg/partiql/ast/v1/DataType; + public static fun DEC ()Lorg/partiql/ast/v1/DataType; + public static fun DECIMAL ()Lorg/partiql/ast/v1/DataType; + public static fun DECIMAL (I)Lorg/partiql/ast/v1/DataType; + public static fun DECIMAL (II)Lorg/partiql/ast/v1/DataType; + public static fun DOUBLE_PRECISION ()Lorg/partiql/ast/v1/DataType; + public static fun FLOAT ()Lorg/partiql/ast/v1/DataType; + public static fun INT ()Lorg/partiql/ast/v1/DataType; + public static fun INT2 ()Lorg/partiql/ast/v1/DataType; + public static fun INT4 ()Lorg/partiql/ast/v1/DataType; + public static fun INT8 ()Lorg/partiql/ast/v1/DataType; + public static fun INTEGER ()Lorg/partiql/ast/v1/DataType; + public static fun INTEGER2 ()Lorg/partiql/ast/v1/DataType; + public static fun INTEGER4 ()Lorg/partiql/ast/v1/DataType; + public static fun INTEGER8 ()Lorg/partiql/ast/v1/DataType; + public static fun INTERVAL ()Lorg/partiql/ast/v1/DataType; + public static fun LIST ()Lorg/partiql/ast/v1/DataType; + public static fun MISSING ()Lorg/partiql/ast/v1/DataType; + public static fun NULL ()Lorg/partiql/ast/v1/DataType; + public static fun NUMERIC ()Lorg/partiql/ast/v1/DataType; + public static fun NUMERIC (I)Lorg/partiql/ast/v1/DataType; + public static fun NUMERIC (II)Lorg/partiql/ast/v1/DataType; + public static fun REAL ()Lorg/partiql/ast/v1/DataType; + public static fun SEXP ()Lorg/partiql/ast/v1/DataType; + public static fun SMALLINT ()Lorg/partiql/ast/v1/DataType; + public static fun STRING ()Lorg/partiql/ast/v1/DataType; + public static fun STRING (I)Lorg/partiql/ast/v1/DataType; + public static fun STRUCT ()Lorg/partiql/ast/v1/DataType; + public static fun SYMBOL ()Lorg/partiql/ast/v1/DataType; + public static fun TIME ()Lorg/partiql/ast/v1/DataType; + public static fun TIME (I)Lorg/partiql/ast/v1/DataType; + public static fun TIMESTAMP ()Lorg/partiql/ast/v1/DataType; + public static fun TIMESTAMP (I)Lorg/partiql/ast/v1/DataType; + public static fun TIMESTAMP_WITH_TIME_ZONE ()Lorg/partiql/ast/v1/DataType; + public static fun TIMESTAMP_WITH_TIME_ZONE (I)Lorg/partiql/ast/v1/DataType; + public static fun TIME_WITH_TIME_ZONE ()Lorg/partiql/ast/v1/DataType; + public static fun TIME_WITH_TIME_ZONE (I)Lorg/partiql/ast/v1/DataType; + public static fun TINYINT ()Lorg/partiql/ast/v1/DataType; + public static fun TUPLE ()Lorg/partiql/ast/v1/DataType; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/DataType; + public static fun USER_DEFINED ()Lorg/partiql/ast/v1/DataType; + public static fun VARCHAR ()Lorg/partiql/ast/v1/DataType; + public static fun VARCHAR (I)Lorg/partiql/ast/v1/DataType; + public fun code ()I +} + +public class org/partiql/ast/v1/DatetimeField : org/partiql/ast/v1/Enum { + public static final field DAY I + public static final field HOUR I + public static final field MINUTE I + public static final field MONTH I + public static final field SECOND I + public static final field TIMEZONE_HOUR I + public static final field TIMEZONE_MINUTE I + public static final field UNKNOWN I + public static final field YEAR I + public static fun DAY ()Lorg/partiql/ast/v1/DatetimeField; + public static fun HOUR ()Lorg/partiql/ast/v1/DatetimeField; + public static fun MINUTE ()Lorg/partiql/ast/v1/DatetimeField; + public static fun MONTH ()Lorg/partiql/ast/v1/DatetimeField; + public static fun SECOND ()Lorg/partiql/ast/v1/DatetimeField; + public static fun TIMEZONE_HOUR ()Lorg/partiql/ast/v1/DatetimeField; + public static fun TIMEZONE_MINUTE ()Lorg/partiql/ast/v1/DatetimeField; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/DatetimeField; + public static fun YEAR ()Lorg/partiql/ast/v1/DatetimeField; + public fun code ()I +} + +public abstract interface class org/partiql/ast/v1/Enum { + public abstract fun code ()I } public class org/partiql/ast/v1/Exclude : org/partiql/ast/v1/AstNode { @@ -5739,8 +5818,8 @@ public class org/partiql/ast/v1/ExcludeStep$CollWildcard : org/partiql/ast/v1/Ex } public class org/partiql/ast/v1/ExcludeStep$StructField : org/partiql/ast/v1/ExcludeStep { - public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; - public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V + public field symbol Lorg/partiql/ast/v1/Identifier; + public fun (Lorg/partiql/ast/v1/Identifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -5765,87 +5844,63 @@ public abstract class org/partiql/ast/v1/From : org/partiql/ast/v1/AstNode { public class org/partiql/ast/v1/FromJoin : org/partiql/ast/v1/From { public field condition Lorg/partiql/ast/v1/expr/Expr; + public field joinType Lorg/partiql/ast/v1/JoinType; public field lhs Lorg/partiql/ast/v1/From; public field rhs Lorg/partiql/ast/v1/From; - public field type Lorg/partiql/ast/v1/FromJoin$Type; - public fun (Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/FromJoin$Type;Lorg/partiql/ast/v1/expr/Expr;)V + public fun (Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/From;Lorg/partiql/ast/v1/JoinType;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/FromJoin$Type : java/lang/Enum { - public static final field COMMA Lorg/partiql/ast/v1/FromJoin$Type; - public static final field CROSS Lorg/partiql/ast/v1/FromJoin$Type; - public static final field FULL Lorg/partiql/ast/v1/FromJoin$Type; - public static final field FULL_OUTER Lorg/partiql/ast/v1/FromJoin$Type; - public static final field INNER Lorg/partiql/ast/v1/FromJoin$Type; - public static final field LEFT Lorg/partiql/ast/v1/FromJoin$Type; - public static final field LEFT_OUTER Lorg/partiql/ast/v1/FromJoin$Type; - public static final field OTHER Lorg/partiql/ast/v1/FromJoin$Type; - public static final field RIGHT Lorg/partiql/ast/v1/FromJoin$Type; - public static final field RIGHT_OUTER Lorg/partiql/ast/v1/FromJoin$Type; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/FromJoin$Type; - public static fun values ()[Lorg/partiql/ast/v1/FromJoin$Type; +public class org/partiql/ast/v1/FromType : org/partiql/ast/v1/Enum { + public static final field SCAN I + public static final field UNKNOWN I + public static final field UNPIVOT I + public static fun SCAN ()Lorg/partiql/ast/v1/FromType; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/FromType; + public static fun UNPIVOT ()Lorg/partiql/ast/v1/FromType; + public fun code ()I } public class org/partiql/ast/v1/FromValue : org/partiql/ast/v1/From { - public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; - public field atAlias Lorg/partiql/ast/v1/Identifier$Symbol; - public field byAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field asAlias Lorg/partiql/ast/v1/Identifier; + public field atAlias Lorg/partiql/ast/v1/Identifier; + public field byAlias Lorg/partiql/ast/v1/Identifier; public field expr Lorg/partiql/ast/v1/expr/Expr; - public field type Lorg/partiql/ast/v1/FromValue$Type; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/FromValue$Type;Lorg/partiql/ast/v1/Identifier$Symbol;Lorg/partiql/ast/v1/Identifier$Symbol;Lorg/partiql/ast/v1/Identifier$Symbol;)V + public field fromType Lorg/partiql/ast/v1/FromType; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/FromType;Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/FromValue$Type : java/lang/Enum { - public static final field OTHER Lorg/partiql/ast/v1/FromValue$Type; - public static final field SCAN Lorg/partiql/ast/v1/FromValue$Type; - public static final field UNPIVOT Lorg/partiql/ast/v1/FromValue$Type; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/FromValue$Type; - public static fun values ()[Lorg/partiql/ast/v1/FromValue$Type; -} - public class org/partiql/ast/v1/GroupBy : org/partiql/ast/v1/AstNode { - public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field asAlias Lorg/partiql/ast/v1/Identifier; public field keys Ljava/util/List; - public field strategy Lorg/partiql/ast/v1/GroupBy$Strategy; - public fun (Lorg/partiql/ast/v1/GroupBy$Strategy;Ljava/util/List;Lorg/partiql/ast/v1/Identifier$Symbol;)V + public field strategy Lorg/partiql/ast/v1/GroupByStrategy; + public fun (Lorg/partiql/ast/v1/GroupByStrategy;Ljava/util/List;Lorg/partiql/ast/v1/Identifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } public class org/partiql/ast/v1/GroupBy$Key : org/partiql/ast/v1/AstNode { - public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field asAlias Lorg/partiql/ast/v1/Identifier; public field expr Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/GroupBy$Strategy : java/lang/Enum { - public static final field FULL Lorg/partiql/ast/v1/GroupBy$Strategy; - public static final field OTHER Lorg/partiql/ast/v1/GroupBy$Strategy; - public static final field PARTIAL Lorg/partiql/ast/v1/GroupBy$Strategy; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/GroupBy$Strategy; - public static fun values ()[Lorg/partiql/ast/v1/GroupBy$Strategy; -} - -public abstract class org/partiql/ast/v1/Identifier : org/partiql/ast/v1/AstNode { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +public class org/partiql/ast/v1/GroupByStrategy : org/partiql/ast/v1/Enum { + public static final field FULL I + public static final field PARTIAL I + public static final field UNKNOWN I + public static fun FULL ()Lorg/partiql/ast/v1/GroupByStrategy; + public static fun PARTIAL ()Lorg/partiql/ast/v1/GroupByStrategy; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/GroupByStrategy; + public fun code ()I } -public class org/partiql/ast/v1/Identifier$Qualified : org/partiql/ast/v1/Identifier { - public field root Lorg/partiql/ast/v1/Identifier$Symbol; - public field steps Ljava/util/List; - public fun (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/util/List;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/Identifier$Symbol : org/partiql/ast/v1/Identifier { +public class org/partiql/ast/v1/Identifier : org/partiql/ast/v1/AstNode { public field isDelimited Z public field symbol Ljava/lang/String; public fun (Ljava/lang/String;Z)V @@ -5853,50 +5908,76 @@ public class org/partiql/ast/v1/Identifier$Symbol : org/partiql/ast/v1/Identifie public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/Let : org/partiql/ast/v1/AstNode { - public field bindings Ljava/util/List; - public fun (Ljava/util/List;)V +public class org/partiql/ast/v1/IdentifierChain : org/partiql/ast/v1/AstNode { + public field next Lorg/partiql/ast/v1/IdentifierChain; + public field root Lorg/partiql/ast/v1/Identifier; + public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/IdentifierChain;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/Let$Binding : org/partiql/ast/v1/AstNode { - public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; - public field expr Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; +public class org/partiql/ast/v1/JoinType : org/partiql/ast/v1/Enum { + public static final field COMMA I + public static final field CROSS I + public static final field FULL I + public static final field FULL_OUTER I + public static final field INNER I + public static final field LEFT I + public static final field LEFT_OUTER I + public static final field RIGHT I + public static final field RIGHT_OUTER I + public static final field UNKNOWN I + public static fun COMMA ()Lorg/partiql/ast/v1/JoinType; + public static fun CROSS ()Lorg/partiql/ast/v1/JoinType; + public static fun FULL ()Lorg/partiql/ast/v1/JoinType; + public static fun FULL_OUTER ()Lorg/partiql/ast/v1/JoinType; + public static fun INNER ()Lorg/partiql/ast/v1/JoinType; + public static fun LEFT ()Lorg/partiql/ast/v1/JoinType; + public static fun LEFT_OUTER ()Lorg/partiql/ast/v1/JoinType; + public static fun RIGHT ()Lorg/partiql/ast/v1/JoinType; + public static fun RIGHT_OUTER ()Lorg/partiql/ast/v1/JoinType; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/JoinType; + public fun code ()I } -public class org/partiql/ast/v1/OrderBy : org/partiql/ast/v1/AstNode { - public field sorts Ljava/util/List; +public class org/partiql/ast/v1/Let : org/partiql/ast/v1/AstNode { + public field bindings Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/PathLit : org/partiql/ast/v1/AstNode { - public field root Lorg/partiql/ast/v1/Identifier$Symbol; - public field steps Ljava/util/List; - public fun (Lorg/partiql/ast/v1/Identifier$Symbol;Ljava/util/List;)V +public class org/partiql/ast/v1/Let$Binding : org/partiql/ast/v1/AstNode { + public field asAlias Lorg/partiql/ast/v1/Identifier; + public field expr Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/PathLitStep : org/partiql/ast/v1/AstNode { - public fun ()V +public class org/partiql/ast/v1/Nulls : org/partiql/ast/v1/Enum { + public static final field FIRST I + public static final field LAST I + public static final field UNKNOWN I + public static fun FIRST ()Lorg/partiql/ast/v1/Nulls; + public static fun LAST ()Lorg/partiql/ast/v1/Nulls; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/Nulls; + public fun code ()I } -public class org/partiql/ast/v1/PathLitStep$Index : org/partiql/ast/v1/PathLitStep { - public field index I - public fun (I)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; +public class org/partiql/ast/v1/Order : org/partiql/ast/v1/Enum { + public static final field ASC I + public static final field DESC I + public static final field UNKNOWN I + public static fun ASC ()Lorg/partiql/ast/v1/Order; + public static fun DESC ()Lorg/partiql/ast/v1/Order; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/Order; + public fun code ()I } -public class org/partiql/ast/v1/PathLitStep$Symbol : org/partiql/ast/v1/PathLitStep { - public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; - public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V +public class org/partiql/ast/v1/OrderBy : org/partiql/ast/v1/AstNode { + public field sorts Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -5914,9 +5995,9 @@ public class org/partiql/ast/v1/ProjectItem$All : org/partiql/ast/v1/ProjectItem } public class org/partiql/ast/v1/ProjectItem$Expression : org/partiql/ast/v1/ProjectItem { - public field asAlias Lorg/partiql/ast/v1/Identifier$Symbol; + public field asAlias Lorg/partiql/ast/v1/Identifier; public field expr Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier$Symbol;)V + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -5992,55 +6073,40 @@ public class org/partiql/ast/v1/SelectValue : org/partiql/ast/v1/Select { } public class org/partiql/ast/v1/SetOp : org/partiql/ast/v1/AstNode { + public field setOpType Lorg/partiql/ast/v1/SetOpType; public field setq Lorg/partiql/ast/v1/SetQuantifier; - public field type Lorg/partiql/ast/v1/SetOp$Type; - public fun (Lorg/partiql/ast/v1/SetOp$Type;Lorg/partiql/ast/v1/SetQuantifier;)V + public fun (Lorg/partiql/ast/v1/SetOpType;Lorg/partiql/ast/v1/SetQuantifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/SetOp$Type : java/lang/Enum { - public static final field EXCEPT Lorg/partiql/ast/v1/SetOp$Type; - public static final field INTERSECT Lorg/partiql/ast/v1/SetOp$Type; - public static final field OTHER Lorg/partiql/ast/v1/SetOp$Type; - public static final field UNION Lorg/partiql/ast/v1/SetOp$Type; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/SetOp$Type; - public static fun values ()[Lorg/partiql/ast/v1/SetOp$Type; +public class org/partiql/ast/v1/SetOpType : org/partiql/ast/v1/Enum { + public static fun EXCEPT ()Lorg/partiql/ast/v1/SetOpType; + public static fun INTERSECT ()Lorg/partiql/ast/v1/SetOpType; + public static fun UNION ()Lorg/partiql/ast/v1/SetOpType; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/SetOpType; + public fun code ()I } -public final class org/partiql/ast/v1/SetQuantifier : java/lang/Enum { - public static final field ALL Lorg/partiql/ast/v1/SetQuantifier; - public static final field DISTINCT Lorg/partiql/ast/v1/SetQuantifier; - public static final field OTHER Lorg/partiql/ast/v1/SetQuantifier; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/SetQuantifier; - public static fun values ()[Lorg/partiql/ast/v1/SetQuantifier; +public class org/partiql/ast/v1/SetQuantifier : org/partiql/ast/v1/Enum { + public static final field ALL I + public static final field DISTINCT I + public static final field UNKNOWN I + public static fun ALL ()Lorg/partiql/ast/v1/SetQuantifier; + public static fun DISTINCT ()Lorg/partiql/ast/v1/SetQuantifier; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/SetQuantifier; + public fun code ()I } public class org/partiql/ast/v1/Sort : org/partiql/ast/v1/AstNode { - public field dir Lorg/partiql/ast/v1/Sort$Dir; public field expr Lorg/partiql/ast/v1/expr/Expr; - public field nulls Lorg/partiql/ast/v1/Sort$Nulls; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Sort$Dir;Lorg/partiql/ast/v1/Sort$Nulls;)V + public field nulls Lorg/partiql/ast/v1/Nulls; + public field order Lorg/partiql/ast/v1/Order; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Order;Lorg/partiql/ast/v1/Nulls;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/Sort$Dir : java/lang/Enum { - public static final field ASC Lorg/partiql/ast/v1/Sort$Dir; - public static final field DESC Lorg/partiql/ast/v1/Sort$Dir; - public static final field OTHER Lorg/partiql/ast/v1/Sort$Dir; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Sort$Dir; - public static fun values ()[Lorg/partiql/ast/v1/Sort$Dir; -} - -public final class org/partiql/ast/v1/Sort$Nulls : java/lang/Enum { - public static final field FIRST Lorg/partiql/ast/v1/Sort$Nulls; - public static final field LAST Lorg/partiql/ast/v1/Sort$Nulls; - public static final field OTHER Lorg/partiql/ast/v1/Sort$Nulls; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/Sort$Nulls; - public static fun values ()[Lorg/partiql/ast/v1/Sort$Nulls; -} - public abstract class org/partiql/ast/v1/Statement : org/partiql/ast/v1/AstNode { public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; @@ -6073,6 +6139,20 @@ public class org/partiql/ast/v1/expr/ExprAnd : org/partiql/ast/v1/expr/Expr { public fun children ()Ljava/util/Collection; } +public class org/partiql/ast/v1/expr/ExprArray : org/partiql/ast/v1/expr/Expr { + public final field values Ljava/util/List; + public fun (Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public class org/partiql/ast/v1/expr/ExprBag : org/partiql/ast/v1/expr/Expr { + public final field values Ljava/util/List; + public fun (Ljava/util/List;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + public class org/partiql/ast/v1/expr/ExprBetween : org/partiql/ast/v1/expr/Expr { public final field from Lorg/partiql/ast/v1/expr/Expr; public final field not Z @@ -6085,9 +6165,9 @@ public class org/partiql/ast/v1/expr/ExprBetween : org/partiql/ast/v1/expr/Expr public class org/partiql/ast/v1/expr/ExprCall : org/partiql/ast/v1/expr/Expr { public field args Ljava/util/List; - public field function Lorg/partiql/ast/v1/Identifier; + public field function Lorg/partiql/ast/v1/IdentifierChain; public field setq Lorg/partiql/ast/v1/SetQuantifier; - public fun (Lorg/partiql/ast/v1/Identifier;Ljava/util/List;Lorg/partiql/ast/v1/SetQuantifier;)V + public fun (Lorg/partiql/ast/v1/IdentifierChain;Ljava/util/List;Lorg/partiql/ast/v1/SetQuantifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -6110,9 +6190,9 @@ public class org/partiql/ast/v1/expr/ExprCase$Branch : org/partiql/ast/v1/AstNod } public class org/partiql/ast/v1/expr/ExprCast : org/partiql/ast/v1/expr/Expr { - public final field asType Lorg/partiql/ast/v1/type/Type; + public final field asType Lorg/partiql/ast/v1/DataType; public final field value Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/type/Type;)V + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/DataType;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -6124,43 +6204,6 @@ public class org/partiql/ast/v1/expr/ExprCoalesce : org/partiql/ast/v1/expr/Expr public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/expr/ExprCollection : org/partiql/ast/v1/expr/Expr { - public final field type Lorg/partiql/ast/v1/expr/ExprCollection$Type; - public final field values Ljava/util/List; - public fun (Lorg/partiql/ast/v1/expr/ExprCollection$Type;Ljava/util/List;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public final class org/partiql/ast/v1/expr/ExprCollection$Type : java/lang/Enum { - public static final field ARRAY Lorg/partiql/ast/v1/expr/ExprCollection$Type; - public static final field BAG Lorg/partiql/ast/v1/expr/ExprCollection$Type; - public static final field LIST Lorg/partiql/ast/v1/expr/ExprCollection$Type; - public static final field OTHER Lorg/partiql/ast/v1/expr/ExprCollection$Type; - public static final field SEXP Lorg/partiql/ast/v1/expr/ExprCollection$Type; - public static final field VALUES Lorg/partiql/ast/v1/expr/ExprCollection$Type; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprCollection$Type; - public static fun values ()[Lorg/partiql/ast/v1/expr/ExprCollection$Type; -} - -public class org/partiql/ast/v1/expr/ExprDateAdd : org/partiql/ast/v1/expr/Expr { - public field field Lorg/partiql/ast/v1/DatetimeField; - public field lhs Lorg/partiql/ast/v1/expr/Expr; - public field rhs Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/expr/ExprDateDiff : org/partiql/ast/v1/expr/Expr { - public field field Lorg/partiql/ast/v1/DatetimeField; - public field lhs Lorg/partiql/ast/v1/expr/Expr; - public field rhs Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/DatetimeField;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - public class org/partiql/ast/v1/expr/ExprExtract : org/partiql/ast/v1/expr/Expr { public field field Lorg/partiql/ast/v1/DatetimeField; public field source Lorg/partiql/ast/v1/expr/Expr; @@ -6180,9 +6223,9 @@ public class org/partiql/ast/v1/expr/ExprInCollection : org/partiql/ast/v1/expr/ public class org/partiql/ast/v1/expr/ExprIsType : org/partiql/ast/v1/expr/Expr { public field not Z - public field type Lorg/partiql/ast/v1/type/Type; + public field type Lorg/partiql/ast/v1/DataType; public field value Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/type/Type;Z)V + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/DataType;Z)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -6220,8 +6263,8 @@ public class org/partiql/ast/v1/expr/ExprNot : org/partiql/ast/v1/expr/Expr { } public class org/partiql/ast/v1/expr/ExprNullIf : org/partiql/ast/v1/expr/Expr { - public field nullifier Lorg/partiql/ast/v1/expr/Expr; - public field value Lorg/partiql/ast/v1/expr/Expr; + public field v1 Lorg/partiql/ast/v1/expr/Expr; + public field v2 Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; @@ -6262,39 +6305,9 @@ public class org/partiql/ast/v1/expr/ExprParameter : org/partiql/ast/v1/expr/Exp } public class org/partiql/ast/v1/expr/ExprPath : org/partiql/ast/v1/expr/Expr { + public field next Lorg/partiql/ast/v1/expr/PathStep; public field root Lorg/partiql/ast/v1/expr/Expr; - public field steps Ljava/util/List; - public fun (Lorg/partiql/ast/v1/expr/Expr;Ljava/util/List;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public abstract class org/partiql/ast/v1/expr/ExprPathStep : org/partiql/ast/v1/AstNode { - public fun ()V -} - -public class org/partiql/ast/v1/expr/ExprPathStep$Index : org/partiql/ast/v1/expr/ExprPathStep { - public field key Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/expr/ExprPathStep$Symbol : org/partiql/ast/v1/expr/ExprPathStep { - public field symbol Lorg/partiql/ast/v1/Identifier$Symbol; - public fun (Lorg/partiql/ast/v1/Identifier$Symbol;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/expr/ExprPathStep$Unpivot : org/partiql/ast/v1/expr/ExprPathStep { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/expr/ExprPathStep$Wildcard : org/partiql/ast/v1/expr/ExprPathStep { - public fun ()V + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/PathStep;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -6318,20 +6331,12 @@ public class org/partiql/ast/v1/expr/ExprQuerySet : org/partiql/ast/v1/expr/Expr } public class org/partiql/ast/v1/expr/ExprSessionAttribute : org/partiql/ast/v1/expr/Expr { - public field attribute Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; - public fun (Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute;)V + public field sessionAttribute Lorg/partiql/ast/v1/expr/SessionAttribute; + public fun (Lorg/partiql/ast/v1/expr/SessionAttribute;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprSessionAttribute$Attribute : java/lang/Enum { - public static final field CURRENT_DATE Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; - public static final field CURRENT_USER Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; - public static final field OTHER Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; - public static fun values ()[Lorg/partiql/ast/v1/expr/ExprSessionAttribute$Attribute; -} - public class org/partiql/ast/v1/expr/ExprStruct : org/partiql/ast/v1/expr/Expr { public field fields Ljava/util/List; public fun (Ljava/util/List;)V @@ -6358,22 +6363,13 @@ public class org/partiql/ast/v1/expr/ExprSubstring : org/partiql/ast/v1/expr/Exp public class org/partiql/ast/v1/expr/ExprTrim : org/partiql/ast/v1/expr/Expr { public field chars Lorg/partiql/ast/v1/expr/Expr; - public field spec Lorg/partiql/ast/v1/expr/ExprTrim$Spec; + public field trimSpec Lorg/partiql/ast/v1/expr/TrimSpec; public field value Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/ExprTrim$Spec;)V + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/TrimSpec;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprTrim$Spec : java/lang/Enum { - public static final field BOTH Lorg/partiql/ast/v1/expr/ExprTrim$Spec; - public static final field LEADING Lorg/partiql/ast/v1/expr/ExprTrim$Spec; - public static final field OTHER Lorg/partiql/ast/v1/expr/ExprTrim$Spec; - public static final field TRAILING Lorg/partiql/ast/v1/expr/ExprTrim$Spec; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprTrim$Spec; - public static fun values ()[Lorg/partiql/ast/v1/expr/ExprTrim$Spec; -} - public class org/partiql/ast/v1/expr/ExprValues : org/partiql/ast/v1/expr/Expr { public field rows Ljava/util/List; public fun (Ljava/util/List;)V @@ -6389,21 +6385,13 @@ public class org/partiql/ast/v1/expr/ExprValues$Row : org/partiql/ast/v1/AstNode } public class org/partiql/ast/v1/expr/ExprVarRef : org/partiql/ast/v1/expr/Expr { - public field identifier Lorg/partiql/ast/v1/Identifier; - public field scope Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; - public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/expr/ExprVarRef$Scope;)V + public field identifierChain Lorg/partiql/ast/v1/IdentifierChain; + public field scope Lorg/partiql/ast/v1/expr/Scope; + public fun (Lorg/partiql/ast/v1/IdentifierChain;Lorg/partiql/ast/v1/expr/Scope;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprVarRef$Scope : java/lang/Enum { - public static final field DEFAULT Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; - public static final field LOCAL Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; - public static final field OTHER Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; - public static fun values ()[Lorg/partiql/ast/v1/expr/ExprVarRef$Scope; -} - public class org/partiql/ast/v1/expr/ExprVariant : org/partiql/ast/v1/expr/Expr { public field encoding Ljava/lang/String; public field value Ljava/lang/String; @@ -6416,22 +6404,14 @@ public class org/partiql/ast/v1/expr/ExprVariant : org/partiql/ast/v1/expr/Expr public class org/partiql/ast/v1/expr/ExprWindow : org/partiql/ast/v1/expr/Expr { public field defaultValue Lorg/partiql/ast/v1/expr/Expr; public field expression Lorg/partiql/ast/v1/expr/Expr; - public field function Lorg/partiql/ast/v1/expr/ExprWindow$Function; public field offset Lorg/partiql/ast/v1/expr/Expr; public field over Lorg/partiql/ast/v1/expr/ExprWindow$Over; - public fun (Lorg/partiql/ast/v1/expr/ExprWindow$Function;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/ExprWindow$Over;)V + public field windowFunction Lorg/partiql/ast/v1/expr/WindowFunction; + public fun (Lorg/partiql/ast/v1/expr/WindowFunction;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/ExprWindow$Over;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/expr/ExprWindow$Function : java/lang/Enum { - public static final field LAG Lorg/partiql/ast/v1/expr/ExprWindow$Function; - public static final field LEAD Lorg/partiql/ast/v1/expr/ExprWindow$Function; - public static final field OTHER Lorg/partiql/ast/v1/expr/ExprWindow$Function; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/expr/ExprWindow$Function; - public static fun values ()[Lorg/partiql/ast/v1/expr/ExprWindow$Function; -} - public class org/partiql/ast/v1/expr/ExprWindow$Over : org/partiql/ast/v1/AstNode { public field partitions Ljava/util/List; public field sorts Ljava/util/List; @@ -6440,17 +6420,99 @@ public class org/partiql/ast/v1/expr/ExprWindow$Over : org/partiql/ast/v1/AstNod public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphDirection : java/lang/Enum { - public static final field LEFT Lorg/partiql/ast/v1/graph/GraphDirection; - public static final field LEFT_OR_RIGHT Lorg/partiql/ast/v1/graph/GraphDirection; - public static final field LEFT_OR_UNDIRECTED Lorg/partiql/ast/v1/graph/GraphDirection; - public static final field LEFT_UNDIRECTED_OR_RIGHT Lorg/partiql/ast/v1/graph/GraphDirection; - public static final field OTHER Lorg/partiql/ast/v1/graph/GraphDirection; - public static final field RIGHT Lorg/partiql/ast/v1/graph/GraphDirection; - public static final field UNDIRECTED Lorg/partiql/ast/v1/graph/GraphDirection; - public static final field UNDIRECTED_OR_RIGHT Lorg/partiql/ast/v1/graph/GraphDirection; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/graph/GraphDirection; - public static fun values ()[Lorg/partiql/ast/v1/graph/GraphDirection; +public abstract class org/partiql/ast/v1/expr/PathStep : org/partiql/ast/v1/AstNode { + public field next Lorg/partiql/ast/v1/expr/PathStep; + public fun ()V +} + +public class org/partiql/ast/v1/expr/PathStep$AllElements : org/partiql/ast/v1/expr/PathStep { + public fun (Lorg/partiql/ast/v1/expr/PathStep;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public class org/partiql/ast/v1/expr/PathStep$AllFields : org/partiql/ast/v1/expr/PathStep { + public fun (Lorg/partiql/ast/v1/expr/PathStep;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public class org/partiql/ast/v1/expr/PathStep$Element : org/partiql/ast/v1/expr/PathStep { + public field element Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/PathStep;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public class org/partiql/ast/v1/expr/PathStep$Field : org/partiql/ast/v1/expr/PathStep { + public field field Lorg/partiql/ast/v1/Identifier; + public fun (Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/expr/PathStep;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public class org/partiql/ast/v1/expr/Scope : org/partiql/ast/v1/Enum { + public static final field DEFAULT I + public static final field LOCAL I + public static final field UNKNOWN I + public static fun DEFAULT ()Lorg/partiql/ast/v1/expr/Scope; + public static fun LOCAL ()Lorg/partiql/ast/v1/expr/Scope; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/expr/Scope; + public fun code ()I +} + +public class org/partiql/ast/v1/expr/SessionAttribute : org/partiql/ast/v1/Enum { + public static final field CURRENT_DATE I + public static final field CURRENT_USER I + public static final field UNKNOWN I + public fun (I)V + public static fun CURRENT_DATE ()Lorg/partiql/ast/v1/expr/SessionAttribute; + public static fun CURRENT_USER ()Lorg/partiql/ast/v1/expr/SessionAttribute; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/expr/SessionAttribute; + public fun code ()I +} + +public class org/partiql/ast/v1/expr/TrimSpec : org/partiql/ast/v1/Enum { + public static final field BOTH I + public static final field LEADING I + public static final field TRAILING I + public static final field UNKNOWN I + public static fun BOTH ()Lorg/partiql/ast/v1/expr/TrimSpec; + public static fun LEADING ()Lorg/partiql/ast/v1/expr/TrimSpec; + public static fun TRAILING ()Lorg/partiql/ast/v1/expr/TrimSpec; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/expr/TrimSpec; + public fun code ()I +} + +public class org/partiql/ast/v1/expr/WindowFunction : org/partiql/ast/v1/Enum { + public static final field LAG I + public static final field LEAD I + public static final field UNKNOWN I + public fun (I)V + public static fun LAG ()Lorg/partiql/ast/v1/expr/WindowFunction; + public static fun LEAD ()Lorg/partiql/ast/v1/expr/WindowFunction; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/expr/WindowFunction; + public fun code ()I +} + +public class org/partiql/ast/v1/graph/GraphDirection : org/partiql/ast/v1/Enum { + public static final field LEFT I + public static final field LEFT_OR_RIGHT I + public static final field LEFT_OR_UNDIRECTED I + public static final field LEFT_UNDIRECTED_OR_RIGHT I + public static final field RIGHT I + public static final field UNDIRECTED I + public static final field UNDIRECTED_OR_RIGHT I + public static final field UNKNOWN I + public static fun LEFT ()Lorg/partiql/ast/v1/graph/GraphDirection; + public static fun LEFT_OR_RIGHT ()Lorg/partiql/ast/v1/graph/GraphDirection; + public static fun LEFT_OR_UNDIRECTED ()Lorg/partiql/ast/v1/graph/GraphDirection; + public static fun LEFT_UNDIRECTED_OR_RIGHT ()Lorg/partiql/ast/v1/graph/GraphDirection; + public static fun RIGHT ()Lorg/partiql/ast/v1/graph/GraphDirection; + public static fun UNDIRECTED ()Lorg/partiql/ast/v1/graph/GraphDirection; + public static fun UNDIRECTED_OR_RIGHT ()Lorg/partiql/ast/v1/graph/GraphDirection; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/graph/GraphDirection; + public fun code ()I } public abstract class org/partiql/ast/v1/graph/GraphLabel : org/partiql/ast/v1/AstNode { @@ -6551,13 +6613,16 @@ public class org/partiql/ast/v1/graph/GraphQuantifier : org/partiql/ast/v1/AstNo public fun children ()Ljava/util/Collection; } -public final class org/partiql/ast/v1/graph/GraphRestrictor : java/lang/Enum { - public static final field ACYCLIC Lorg/partiql/ast/v1/graph/GraphRestrictor; - public static final field OTHER Lorg/partiql/ast/v1/graph/GraphRestrictor; - public static final field SIMPLE Lorg/partiql/ast/v1/graph/GraphRestrictor; - public static final field TRAIL Lorg/partiql/ast/v1/graph/GraphRestrictor; - public static fun valueOf (Ljava/lang/String;)Lorg/partiql/ast/v1/graph/GraphRestrictor; - public static fun values ()[Lorg/partiql/ast/v1/graph/GraphRestrictor; +public class org/partiql/ast/v1/graph/GraphRestrictor : org/partiql/ast/v1/Enum { + public static final field ACYCLIC I + public static final field SIMPLE I + public static final field TRAIL I + public static final field UNKNOWN I + public static fun ACYCLIC ()Lorg/partiql/ast/v1/graph/GraphRestrictor; + public static fun SIMPLE ()Lorg/partiql/ast/v1/graph/GraphRestrictor; + public static fun TRAIL ()Lorg/partiql/ast/v1/graph/GraphRestrictor; + public static fun UNKNOWN ()Lorg/partiql/ast/v1/graph/GraphRestrictor; + public fun code ()I } public abstract class org/partiql/ast/v1/graph/GraphSelector : org/partiql/ast/v1/AstNode { @@ -6604,238 +6669,6 @@ public class org/partiql/ast/v1/graph/GraphSelector$ShortestKGroup : org/partiql public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/type/Type : org/partiql/ast/v1/AstNode { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; -} - -public class org/partiql/ast/v1/type/TypeBag : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeBigint : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeBit : org/partiql/ast/v1/type/Type { - public field length Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeBitVarying : org/partiql/ast/v1/type/Type { - public field length Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeBlob : org/partiql/ast/v1/type/Type { - public field length Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeBool : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeBool; - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeChar : org/partiql/ast/v1/type/Type { - public field length Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeClob : org/partiql/ast/v1/type/Type { - public field length Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeDate : org/partiql/ast/v1/type/Type { - public static final field INSTANCE Lorg/partiql/ast/v1/type/TypeDate; - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeDecimal : org/partiql/ast/v1/type/Type { - public field precision Ljava/lang/Integer; - public field scale Ljava/lang/Integer; - public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeDoublePrecision : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeFloat : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeInt : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeInt2 : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeInt4 : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeInt8 : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeInterval : org/partiql/ast/v1/type/Type { - public field precision Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeList : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeMissing : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeNull : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeNumeric : org/partiql/ast/v1/type/Type { - public field precision Ljava/lang/Integer; - public field scale Ljava/lang/Integer; - public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeReal : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeSexp : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeSmallint : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeString : org/partiql/ast/v1/type/Type { - public field length Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeStruct : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeSymbol : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeTime : org/partiql/ast/v1/type/Type { - public field precision Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeTimeWithTz : org/partiql/ast/v1/type/Type { - public field precision Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeTimestamp : org/partiql/ast/v1/type/Type { - public field precision Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeTimestampWithTz : org/partiql/ast/v1/type/Type { - public field precision Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeTinyint : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeTuple : org/partiql/ast/v1/type/Type { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeUserDefined : org/partiql/ast/v1/type/Type { - public field name Ljava/lang/String; - public fun (Ljava/lang/String;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/type/TypeVarchar : org/partiql/ast/v1/type/Type { - public field length Ljava/lang/Integer; - public fun (Ljava/lang/Integer;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - public abstract class org/partiql/ast/visitor/AstBaseVisitor : org/partiql/ast/visitor/AstVisitor { public fun ()V public abstract fun defaultReturn (Lorg/partiql/ast/AstNode;Ljava/lang/Object;)Ljava/lang/Object; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java index 1726c1eb7c..422fc35d6e 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java @@ -2,14 +2,13 @@ import org.partiql.ast.v1.expr.Expr; import org.partiql.ast.v1.expr.ExprAnd; +import org.partiql.ast.v1.expr.ExprArray; +import org.partiql.ast.v1.expr.ExprBag; import org.partiql.ast.v1.expr.ExprBetween; import org.partiql.ast.v1.expr.ExprCall; import org.partiql.ast.v1.expr.ExprCase; import org.partiql.ast.v1.expr.ExprCast; import org.partiql.ast.v1.expr.ExprCoalesce; -import org.partiql.ast.v1.expr.ExprCollection; -import org.partiql.ast.v1.expr.ExprDateAdd; -import org.partiql.ast.v1.expr.ExprDateDiff; import org.partiql.ast.v1.expr.ExprExtract; import org.partiql.ast.v1.expr.ExprInCollection; import org.partiql.ast.v1.expr.ExprIsType; @@ -23,7 +22,7 @@ import org.partiql.ast.v1.expr.ExprOverlay; import org.partiql.ast.v1.expr.ExprParameter; import org.partiql.ast.v1.expr.ExprPath; -import org.partiql.ast.v1.expr.ExprPathStep; +import org.partiql.ast.v1.expr.PathStep; import org.partiql.ast.v1.expr.ExprPosition; import org.partiql.ast.v1.expr.ExprQuerySet; import org.partiql.ast.v1.expr.ExprSessionAttribute; @@ -40,42 +39,6 @@ import org.partiql.ast.v1.graph.GraphPattern; import org.partiql.ast.v1.graph.GraphQuantifier; import org.partiql.ast.v1.graph.GraphSelector; -import org.partiql.ast.v1.type.Type; -import org.partiql.ast.v1.type.TypeBag; -import org.partiql.ast.v1.type.TypeBigint; -import org.partiql.ast.v1.type.TypeBit; -import org.partiql.ast.v1.type.TypeBitVarying; -import org.partiql.ast.v1.type.TypeBlob; -import org.partiql.ast.v1.type.TypeBool; -import org.partiql.ast.v1.type.TypeChar; -import org.partiql.ast.v1.type.TypeClob; -import org.partiql.ast.v1.type.TypeUserDefined; -import org.partiql.ast.v1.type.TypeDate; -import org.partiql.ast.v1.type.TypeDecimal; -import org.partiql.ast.v1.type.TypeDoublePrecision; -import org.partiql.ast.v1.type.TypeFloat; -import org.partiql.ast.v1.type.TypeInt; -import org.partiql.ast.v1.type.TypeInt2; -import org.partiql.ast.v1.type.TypeInt4; -import org.partiql.ast.v1.type.TypeInt8; -import org.partiql.ast.v1.type.TypeInterval; -import org.partiql.ast.v1.type.TypeList; -import org.partiql.ast.v1.type.TypeMissing; -import org.partiql.ast.v1.type.TypeNull; -import org.partiql.ast.v1.type.TypeNumeric; -import org.partiql.ast.v1.type.TypeReal; -import org.partiql.ast.v1.type.TypeSexp; -import org.partiql.ast.v1.type.TypeSmallint; -import org.partiql.ast.v1.type.TypeString; -import org.partiql.ast.v1.type.TypeStruct; -import org.partiql.ast.v1.type.TypeSymbol; -import org.partiql.ast.v1.type.TypeTime; -import org.partiql.ast.v1.type.TypeTimeWithTz; -import org.partiql.ast.v1.type.TypeTimestamp; -import org.partiql.ast.v1.type.TypeTimestampWithTz; -import org.partiql.ast.v1.type.TypeTinyint; -import org.partiql.ast.v1.type.TypeTuple; -import org.partiql.ast.v1.type.TypeVarchar; public interface AstVisitor { R visit(AstNode node, C ctx); @@ -90,91 +53,9 @@ public interface AstVisitor { R visitTargetDomain(Target.Domain node, C ctx); - R visitType(Type node, C ctx); - - R visitTypeNull(TypeNull node, C ctx); - - R visitTypeMissing(TypeMissing node, C ctx); - - R visitTypeBool(TypeBool node, C ctx); - - R visitTypeTinyint(TypeTinyint node, C ctx); - - R visitTypeSmallint(TypeSmallint node, C ctx); - - R visitTypeInt2(TypeInt2 node, C ctx); - - R visitTypeInt4(TypeInt4 node, C ctx); - - R visitTypeBigint(TypeBigint node, C ctx); - - R visitTypeInt8(TypeInt8 node, C ctx); - - R visitTypeInt(TypeInt node, C ctx); - - R visitTypeReal(TypeReal node, C ctx); - - R visitTypeFloat(TypeFloat node, C ctx); - - R visitTypeDoublePrecision(TypeDoublePrecision node, C ctx); - - R visitTypeDecimal(TypeDecimal node, C ctx); - - R visitTypeNumeric(TypeNumeric node, C ctx); - - R visitTypeChar(TypeChar node, C ctx); - - R visitTypeVarchar(TypeVarchar node, C ctx); - - R visitTypeString(TypeString node, C ctx); - - R visitTypeSymbol(TypeSymbol node, C ctx); - - R visitTypeBit(TypeBit node, C ctx); - - R visitTypeBitVarying(TypeBitVarying node, C ctx); - - R visitTypeBlob(TypeBlob node, C ctx); - - R visitTypeClob(TypeClob node, C ctx); - - R visitTypeDate(TypeDate node, C ctx); - - R visitTypeTime(TypeTime node, C ctx); - - R visitTypeTimeWithTz(TypeTimeWithTz node, C ctx); - - R visitTypeTimestamp(TypeTimestamp node, C ctx); - - R visitTypeTimestampWithTz(TypeTimestampWithTz node, C ctx); - - R visitTypeInterval(TypeInterval node, C ctx); - - R visitTypeBag(TypeBag node, C ctx); - - R visitTypeList(TypeList node, C ctx); - - R visitTypeSexp(TypeSexp node, C ctx); - - R visitTypeTuple(TypeTuple node, C ctx); - - R visitTypeStruct(TypeStruct node, C ctx); - - R visitTypeUserDefined(TypeUserDefined node, C ctx); - R visitIdentifier(Identifier node, C ctx); - R visitIdentifierSymbol(Identifier.Symbol node, C ctx); - - R visitIdentifierQualified(Identifier.Qualified node, C ctx); - - R visitPathLit(PathLit node, C ctx); - - R visitPathLitStep(PathLitStep node, C ctx); - - R visitPathLitStepSymbol(PathLitStep.Symbol node, C ctx); - - R visitPathLitStepIndex(PathLitStep.Index node, C ctx); + R visitIdentifierChain(IdentifierChain node, C ctx); R visitExpr(Expr node, C ctx); @@ -188,15 +69,15 @@ public interface AstVisitor { R visitExprPath(ExprPath node, C ctx); - R visitExprPathStep(ExprPathStep node, C ctx); + R visitPathStep(PathStep node, C ctx); - R visitExprPathStepSymbol(ExprPathStep.Symbol node, C ctx); + R visitPathStepField(PathStep.Field node, C ctx); - R visitExprPathStepIndex(ExprPathStep.Index node, C ctx); + R visitPathStepElement(PathStep.Element node, C ctx); - R visitExprPathStepWildcard(ExprPathStep.Wildcard node, C ctx); + R visitPathStepAllElements(PathStep.AllElements node, C ctx); - R visitExprPathStepUnpivot(ExprPathStep.Unpivot node, C ctx); + R visitPathStepAllFields(PathStep.AllFields node, C ctx); R visitExprCall(ExprCall node, C ctx); @@ -214,7 +95,9 @@ public interface AstVisitor { R visitExprValuesRow(ExprValues.Row node, C ctx); - R visitExprCollection(ExprCollection node, C ctx); + R visitExprArray(ExprArray node, C ctx); + + R visitExprBag(ExprBag node, C ctx); R visitExprStruct(ExprStruct node, C ctx); @@ -248,10 +131,6 @@ public interface AstVisitor { R visitExprCast(ExprCast node, C ctx); - R visitExprDateAdd(ExprDateAdd node, C ctx); - - R visitExprDateDiff(ExprDateDiff node, C ctx); - R visitExprQuerySet(ExprQuerySet node, C ctx); R visitExprMatch(ExprMatch node, C ctx); diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java new file mode 100644 index 0000000000..9610afdef7 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java @@ -0,0 +1,318 @@ +package org.partiql.ast.v1; + +public class DataType implements Enum { + public static final int UNKNOWN = 0; + public static final int NULL = 1; + public static final int MISSING = 2; + public static final int BOOL = 3; + public static final int BOOLEAN = 4; + public static final int TINYINT = 5; // TODO not defined in parser yet + public static final int SMALLINT = 6; + public static final int INTEGER2 = 7; + public static final int INT2 = 8; + public static final int INTEGER = 9; + public static final int INT = 10; + public static final int INTEGER4 = 11; + public static final int INT4 = 12; + public static final int INTEGER8 = 13; + public static final int INT8 = 14; + public static final int BIGINT = 15; + public static final int REAL = 16; + public static final int DOUBLE_PRECISION = 17; + public static final int FLOAT = 18; + public static final int DECIMAL = 19; + public static final int DEC = 20; + public static final int NUMERIC = 21; + public static final int BIT = 22; // TODO not defined in parser yet + public static final int BIT_VARYING = 23; // TODO not defined in parser yet + public static final int CHAR = 24; + public static final int CHARACTER = 25; + public static final int VARCHAR = 26; + public static final int CHARACTER_VARYING = 27; + public static final int STRING = 28; + public static final int SYMBOL = 29; + public static final int BLOB = 30; + public static final int CLOB = 31; + public static final int DATE = 32; + public static final int STRUCT = 33; + public static final int TUPLE = 34; + public static final int LIST = 35; + public static final int SEXP = 36; + public static final int BAG = 37; + public static final int TIME = 38; + public static final int TIMESTAMP = 39; + public static final int TIME_WITH_TIME_ZONE = 40; + public static final int TIMESTAMP_WITH_TIME_ZONE = 41; + public static final int INTERVAL = 42; // TODO not defined in parser yet + public static final int USER_DEFINED = 43; + + public static DataType UNKNOWN() { + return new DataType(UNKNOWN); + } + + public static DataType NULL() { + return new DataType(NULL); + } + + public static DataType MISSING() { + return new DataType(MISSING); + } + + public static DataType BOOL() { + return new DataType(BOOL); + } + + public static DataType BOOLEAN() { + return new DataType(BOOLEAN); + } + + public static DataType TINYINT() { + return new DataType(TINYINT); + } + + public static DataType SMALLINT() { + return new DataType(SMALLINT); + } + + public static DataType INTEGER2() { + return new DataType(INTEGER2); + } + + public static DataType INT2() { + return new DataType(INT2); + } + + public static DataType INTEGER() { + return new DataType(INTEGER); + } + + public static DataType INT() { + return new DataType(INT); + } + + public static DataType INTEGER4() { + return new DataType(INTEGER4); + } + + public static DataType INT4() { + return new DataType(INT4); + } + + public static DataType INTEGER8() { + return new DataType(INTEGER8); + } + + public static DataType INT8() { + return new DataType(INT8); + } + + public static DataType BIGINT() { + return new DataType(BIGINT); + } + + public static DataType REAL() { + return new DataType(REAL); + } + + public static DataType DOUBLE_PRECISION() { + return new DataType(DOUBLE_PRECISION); + } + + public static DataType FLOAT() { + return new DataType(FLOAT); + } + + public static DataType DECIMAL() { + return new DataType(DECIMAL); + } + + public static DataType DECIMAL(int precision) { + return new DataType(DECIMAL, precision, null, null); + } + + public static DataType DECIMAL(int precision, int scale) { + return new DataType(DECIMAL, precision, scale, null); + } + + public static DataType DEC() { + return new DataType(DEC); + } + + public static DataType NUMERIC() { + return new DataType(NUMERIC); + } + + public static DataType NUMERIC(int precision) { + return new DataType(NUMERIC, precision, null, null); + } + + public static DataType NUMERIC(int precision, int scale) { + return new DataType(NUMERIC, precision, scale, null); + } + + public static DataType BIT() { + return new DataType(BIT); + } + + public static DataType BIT(int length) { + return new DataType(BIT, null, null, length); + } + + public static DataType BIT_VARYING() { + return new DataType(BIT_VARYING); + } + + public static DataType BIT_VARYING(int length) { + return new DataType(BIT_VARYING, null, null, length); + } + + public static DataType CHAR() { + return new DataType(CHAR); + } + + public static DataType CHAR(int length) { + return new DataType(CHAR, null, null, length); + } + + public static DataType CHARACTER() { + return new DataType(CHARACTER); + } + + public static DataType CHARACTER(int length) { + return new DataType(CHARACTER, null, null, length); + } + + public static DataType VARCHAR() { + return new DataType(VARCHAR); + } + + public static DataType VARCHAR(int length) { + return new DataType(VARCHAR, null, null, length); + } + + public static DataType CHARACTER_VARYING() { + return new DataType(CHARACTER_VARYING); + } + + public static DataType CHARACTER_VARYING(int length) { + return new DataType(CHARACTER_VARYING, null, null, length); + } + + public static DataType STRING() { + return new DataType(STRING); + } + + public static DataType STRING(int length) { + return new DataType(STRING, null, null, length); + } + + public static DataType SYMBOL() { + return new DataType(SYMBOL); + } + + public static DataType BLOB() { + return new DataType(BLOB); + } + + public static DataType BLOB(int length) { + return new DataType(BLOB, null, null, length); + } + + public static DataType CLOB() { + return new DataType(CLOB); + } + + public static DataType CLOB(int length) { + return new DataType(CLOB, null, null, length); + } + + public static DataType DATE() { + return new DataType(DATE); + } + + public static DataType STRUCT() { + return new DataType(STRUCT); + } + + public static DataType TUPLE() { + return new DataType(TUPLE); + } + + public static DataType LIST() { + return new DataType(LIST); + } + + public static DataType SEXP() { + return new DataType(SEXP); + } + + public static DataType BAG() { + return new DataType(BAG); + } + + public static DataType TIME() { + return new DataType(TIME); + } + + public static DataType TIME(int precision) { + return new DataType(TIME, precision, null, null); + } + + public static DataType TIMESTAMP() { + return new DataType(TIMESTAMP); + } + + public static DataType TIMESTAMP(int precision) { + return new DataType(TIMESTAMP, precision, null, null); + } + + public static DataType TIME_WITH_TIME_ZONE() { + return new DataType(TIME_WITH_TIME_ZONE); + } + + public static DataType TIME_WITH_TIME_ZONE(int precision) { + return new DataType(TIME_WITH_TIME_ZONE, precision, null, null); + } + + public static DataType TIMESTAMP_WITH_TIME_ZONE() { + return new DataType(TIMESTAMP_WITH_TIME_ZONE); + } + + public static DataType TIMESTAMP_WITH_TIME_ZONE(int precision) { + return new DataType(TIMESTAMP_WITH_TIME_ZONE, precision, null, null); + } + + public static DataType INTERVAL() { + return new DataType(INTERVAL); + } + + public static DataType USER_DEFINED() { + return new DataType(USER_DEFINED); + } + + private final int code; + private final Integer precision; + private final Integer scale; + private final Integer length; + + // Private constructor for no parameter DataTypes + private DataType(int code) { + this.code = code; + this.precision = null; + this.scale = null; + this.length = null; + } + + // Private constructor for DataTypes with parameters + private DataType(int code, Integer precision, Integer scale, Integer length) { + this.code = code; + this.precision = precision; + this.scale = scale; + this.length = length; + } + + @Override + public int code() { + return code; + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/DatetimeField.java b/partiql-ast/src/main/java/org/partiql/ast/v1/DatetimeField.java index f391cf86cf..13327f7684 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/DatetimeField.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/DatetimeField.java @@ -3,14 +3,61 @@ /** * TODO docs, equals, hashcode */ -public enum DatetimeField { - YEAR, - MONTH, - DAY, - HOUR, - MINUTE, - SECOND, - TIMEZONE_HOUR, - TIMEZONE_MINUTE, - OTHER, +public class DatetimeField implements Enum { + public static final int UNKNOWN = 0; + public static final int YEAR = 1; + public static final int MONTH = 2; + public static final int DAY = 3; + public static final int HOUR = 4; + public static final int MINUTE = 5; + public static final int SECOND = 6; + public static final int TIMEZONE_HOUR = 7; + public static final int TIMEZONE_MINUTE = 8; + + public static DatetimeField UNKNOWN() { + return new DatetimeField(UNKNOWN); + } + + public static DatetimeField YEAR() { + return new DatetimeField(YEAR); + } + + public static DatetimeField MONTH() { + return new DatetimeField(MONTH); + } + + public static DatetimeField DAY() { + return new DatetimeField(DAY); + } + + public static DatetimeField HOUR() { + return new DatetimeField(HOUR); + } + + public static DatetimeField MINUTE() { + return new DatetimeField(MINUTE); + } + + public static DatetimeField SECOND() { + return new DatetimeField(SECOND); + } + + public static DatetimeField TIMEZONE_HOUR() { + return new DatetimeField(TIMEZONE_HOUR); + } + + public static DatetimeField TIMEZONE_MINUTE() { + return new DatetimeField(TIMEZONE_MINUTE); + } + + private final int code; + + private DatetimeField(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Enum.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Enum.java new file mode 100644 index 0000000000..e4551f21fd --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Enum.java @@ -0,0 +1,8 @@ +package org.partiql.ast.v1; + +/** + * TODO docs, equals, hashcode + */ +public interface Enum { + int code(); +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludeStep.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludeStep.java index 0b85b29ac3..42a42b1ef8 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludeStep.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/ExcludeStep.java @@ -15,9 +15,9 @@ public abstract class ExcludeStep extends AstNode { */ public static class StructField extends ExcludeStep { @NotNull - public Identifier.Symbol symbol; + public Identifier symbol; - public StructField(@NotNull Identifier.Symbol symbol) { + public StructField(@NotNull Identifier symbol) { this.symbol = symbol; } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java b/partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java index bf2d9dccdb..7daaa5dfad 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java @@ -19,15 +19,15 @@ public class FromJoin extends From { public From rhs; @Nullable - public Type type; + public JoinType joinType; @Nullable public Expr condition; - public FromJoin(@NotNull From lhs, @NotNull From rhs, @Nullable Type type, @Nullable Expr condition) { + public FromJoin(@NotNull From lhs, @NotNull From rhs, @Nullable JoinType joinType, @Nullable Expr condition) { this.lhs = lhs; this.rhs = rhs; - this.type = type; + this.joinType = joinType; this.condition = condition; } @@ -47,20 +47,4 @@ public Collection children() { public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitFromJoin(this, ctx); } - - /** - * TODO docs, equals, hashcode - */ - public enum Type { - INNER, - LEFT, - LEFT_OUTER, - RIGHT, - RIGHT_OUTER, - FULL, - FULL_OUTER, - CROSS, - COMMA, - OTHER - } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/FromType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/FromType.java new file mode 100644 index 0000000000..3303f20b68 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/FromType.java @@ -0,0 +1,33 @@ +package org.partiql.ast.v1; + +/** + * TODO docs, equals, hashcode + */ +public class FromType implements Enum { + public static final int UNKNOWN = 0; + public static final int SCAN = 1; + public static final int UNPIVOT = 2; + + public static FromType UNKNOWN() { + return new FromType(UNKNOWN); + } + + public static FromType SCAN() { + return new FromType(SCAN); + } + + public static FromType UNPIVOT() { + return new FromType(UNPIVOT); + } + + private final int code; + + private FromType(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/FromValue.java b/partiql-ast/src/main/java/org/partiql/ast/v1/FromValue.java index 92ec8548dd..b7198b9ab8 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/FromValue.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/FromValue.java @@ -16,29 +16,30 @@ public class FromValue extends From { public Expr expr; @NotNull - public Type type; + public FromType fromType; @Nullable - public Identifier.Symbol asAlias; + public Identifier asAlias; @Nullable - public Identifier.Symbol atAlias; + public Identifier atAlias; /** * TODO get rid of `BY` */ @Nullable - public Identifier.Symbol byAlias; + public Identifier byAlias; - public FromValue(@NotNull Expr expr, @NotNull Type type, @Nullable Identifier.Symbol asAlias, - @Nullable Identifier.Symbol atAlias, @Nullable Identifier.Symbol byAlias) { + public FromValue(@NotNull Expr expr, @NotNull FromType fromType, @Nullable Identifier asAlias, + @Nullable Identifier atAlias, @Nullable Identifier byAlias) { this.expr = expr; - this.type = type; + this.fromType = fromType; this.asAlias = asAlias; this.atAlias = atAlias; this.byAlias = byAlias; } + @NotNull @Override public Collection children() { List kids = new ArrayList<>(); @@ -53,13 +54,4 @@ public Collection children() { public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitFromValue(this, ctx); } - - /** - * TODO docs, equals, hashcode - */ - public enum Type { - SCAN, - UNPIVOT, - OTHER - } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/GroupBy.java b/partiql-ast/src/main/java/org/partiql/ast/v1/GroupBy.java index 37aa711758..e3ea0e12c0 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/GroupBy.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/GroupBy.java @@ -13,15 +13,15 @@ */ public class GroupBy extends AstNode { @NotNull - public Strategy strategy; + public GroupByStrategy strategy; @NotNull public List keys; @Nullable - public Identifier.Symbol asAlias; + public Identifier asAlias; - public GroupBy(@NotNull Strategy strategy, @NotNull List keys, @Nullable Identifier.Symbol asAlias) { + public GroupBy(@NotNull GroupByStrategy strategy, @NotNull List keys, @Nullable Identifier asAlias) { this.strategy = strategy; this.keys = keys; this.asAlias = asAlias; @@ -42,15 +42,6 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitGroupBy(this, ctx); } - /** - * TODO docs, equals, hashcode - */ - public enum Strategy { - FULL, - PARTIAL, - OTHER - } - /** * TODO docs, equals, hashcode */ @@ -59,9 +50,9 @@ public static class Key extends AstNode { public Expr expr; @Nullable - public Identifier.Symbol asAlias; + public Identifier asAlias; - public Key(@NotNull Expr expr, @Nullable Identifier.Symbol asAlias) { + public Key(@NotNull Expr expr, @Nullable Identifier asAlias) { this.expr = expr; this.asAlias = asAlias; } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/GroupByStrategy.java b/partiql-ast/src/main/java/org/partiql/ast/v1/GroupByStrategy.java new file mode 100644 index 0000000000..d1ee546a16 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/GroupByStrategy.java @@ -0,0 +1,33 @@ +package org.partiql.ast.v1; + +/** + * TODO docs, equals, hashcode + */ +public class GroupByStrategy implements Enum { + public static final int UNKNOWN = 0; + public static final int FULL = 1; + public static final int PARTIAL = 2; + + public static GroupByStrategy UNKNOWN() { + return new GroupByStrategy(UNKNOWN); + } + + public static GroupByStrategy FULL() { + return new GroupByStrategy(FULL); + } + + public static GroupByStrategy PARTIAL() { + return new GroupByStrategy(PARTIAL); + } + + private final int code; + + private GroupByStrategy(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java index 149f3c8c40..896d74f544 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Identifier.java @@ -4,78 +4,29 @@ import java.util.ArrayList; import java.util.Collection; -import java.util.List; /** * TODO docs, equals, hashcode */ -public abstract class Identifier extends AstNode { - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - if (this instanceof Symbol) { - return visitor.visitIdentifierSymbol((Symbol) this, ctx); - } else if (this instanceof Qualified) { - return visitor.visitIdentifierQualified((Qualified) this, ctx); - } else { - throw new IllegalStateException("Unexpected value: " + this); - } - } +public class Identifier extends AstNode { + @NotNull + public String symbol; - /** - * TODO docs, equals, hashcode; TODO change to other name pending comment followup to - * https://github.com/partiql/partiql-lang-kotlin/pull/1579#discussion_r1775983916 - * - */ - public static class Symbol extends Identifier { - @NotNull - public String symbol; + public boolean isDelimited; - public boolean isDelimited; - - public Symbol(@NotNull String symbol, boolean isDelimited) { + public Identifier(@NotNull String symbol, boolean isDelimited) { this.symbol = symbol; this.isDelimited = isDelimited; } - @NotNull - @Override - public Collection children() { - return new ArrayList<>(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitIdentifierSymbol(this, ctx); - } + @NotNull + @Override + public Collection children() { + return new ArrayList<>(); } - /** - * TODO docs, equals, hashcode - */ - public static class Qualified extends Identifier { - @NotNull - public Symbol root; - - @NotNull - public List steps; - - public Qualified(@NotNull Symbol root, @NotNull List steps) { - this.root = root; - this.steps = steps; - } - - @NotNull - @Override - public Collection children() { - List kids = new ArrayList<>(); - kids.add(root); - kids.addAll(steps); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitIdentifierQualified(this, ctx); - } + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitIdentifier(this, ctx); } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/PathLit.java b/partiql-ast/src/main/java/org/partiql/ast/v1/IdentifierChain.java similarity index 55% rename from partiql-ast/src/main/java/org/partiql/ast/v1/PathLit.java rename to partiql-ast/src/main/java/org/partiql/ast/v1/IdentifierChain.java index 07ae2a1ac4..81f78e3f60 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/PathLit.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/IdentifierChain.java @@ -1,6 +1,7 @@ package org.partiql.ast.v1; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.Collection; @@ -9,16 +10,16 @@ /** * TODO docs, equals, hashcode */ -public class PathLit extends AstNode { +public class IdentifierChain extends AstNode { @NotNull - public Identifier.Symbol root; + public Identifier root; - @NotNull - public List steps; + @Nullable + public IdentifierChain next; - public PathLit(@NotNull Identifier.Symbol root, @NotNull List steps) { + public IdentifierChain(@NotNull Identifier root, @Nullable IdentifierChain next) { this.root = root; - this.steps = steps; + this.next = next; } @NotNull @@ -26,12 +27,14 @@ public PathLit(@NotNull Identifier.Symbol root, @NotNull List steps public Collection children() { List kids = new ArrayList<>(); kids.add(root); - kids.addAll(steps); + if (next != null) { + kids.add(next); + } return kids; } @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitPathLit(this, ctx); + return visitor.visitIdentifierChain(this, ctx); } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/JoinType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/JoinType.java new file mode 100644 index 0000000000..74a51b055c --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/JoinType.java @@ -0,0 +1,68 @@ +package org.partiql.ast.v1; + +/** + * TODO docs, equals, hashcode + */ +public class JoinType implements Enum { + public static final int UNKNOWN = 0; + public static final int INNER = 1; + public static final int LEFT = 2; + public static final int LEFT_OUTER = 3; + public static final int RIGHT = 4; + public static final int RIGHT_OUTER = 5; + public static final int FULL = 6; + public static final int FULL_OUTER = 7; + public static final int CROSS = 8; + public static final int COMMA = 9; + + public static JoinType UNKNOWN() { + return new JoinType(UNKNOWN); + } + + public static JoinType INNER() { + return new JoinType(INNER); + } + + public static JoinType LEFT() { + return new JoinType(LEFT); + } + + public static JoinType LEFT_OUTER() { + return new JoinType(LEFT_OUTER); + } + + public static JoinType RIGHT() { + return new JoinType(RIGHT); + } + + public static JoinType RIGHT_OUTER() { + return new JoinType(RIGHT_OUTER); + } + + public static JoinType FULL() { + return new JoinType(FULL); + } + + public static JoinType FULL_OUTER() { + return new JoinType(FULL_OUTER); + } + + public static JoinType CROSS() { + return new JoinType(CROSS); + } + + public static JoinType COMMA() { + return new JoinType(COMMA); + } + + private final int code; + + private JoinType(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Let.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Let.java index 89c710f2d9..b9d040c47f 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/Let.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Let.java @@ -37,12 +37,12 @@ public static class Binding extends AstNode { public Expr expr; @NotNull - public Identifier.Symbol asAlias; + public Identifier asAlias; - public Binding(@NotNull Expr expr, @NotNull Identifier.Symbol asAlias) { - this.expr = expr; - this.asAlias = asAlias; - } + public Binding(@NotNull Expr expr, @NotNull Identifier asAlias) { + this.expr = expr; + this.asAlias = asAlias; + } @NotNull @Override diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Nulls.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Nulls.java new file mode 100644 index 0000000000..718cb0d7d5 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Nulls.java @@ -0,0 +1,33 @@ +package org.partiql.ast.v1; + +/** + * TODO docs, equals, hashcode + */ +public class Nulls implements Enum { + public static final int UNKNOWN = 0; + public static final int FIRST = 1; + public static final int LAST = 2; + + public static Nulls UNKNOWN() { + return new Nulls(UNKNOWN); + } + + public static Nulls FIRST() { + return new Nulls(FIRST); + } + + public static Nulls LAST() { + return new Nulls(LAST); + } + + private final int code; + + private Nulls(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Order.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Order.java new file mode 100644 index 0000000000..1c60b46f0f --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Order.java @@ -0,0 +1,30 @@ +package org.partiql.ast.v1; + +public class Order implements Enum { + public static final int UNKNOWN = 0; + public static final int ASC = 1; + public static final int DESC = 2; + + public static Order UNKNOWN() { + return new Order(UNKNOWN); + } + + public static Order ASC() { + return new Order(ASC); + } + + public static Order DESC() { + return new Order(DESC); + } + + private final int code; + + private Order(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/OrderBy.java b/partiql-ast/src/main/java/org/partiql/ast/v1/OrderBy.java index b545138d37..2008867d42 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/OrderBy.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/OrderBy.java @@ -17,11 +17,10 @@ public OrderBy(@NotNull List sorts) { this.sorts = sorts; } + @NotNull @Override public Collection children() { - List kids = new ArrayList<>(); - kids.addAll(sorts); - return kids; + return new ArrayList<>(sorts); } @Override diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/PathLitStep.java b/partiql-ast/src/main/java/org/partiql/ast/v1/PathLitStep.java deleted file mode 100644 index 4ba37f5f44..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/PathLitStep.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public abstract class PathLitStep extends AstNode { - /** - * TODO docs, equals, hashcode - */ - public static class Symbol extends PathLitStep { - @NotNull - public Identifier.Symbol symbol; - - public Symbol(@NotNull Identifier.Symbol symbol) { - this.symbol = symbol; - } - - @NotNull - @Override - public Collection children() { - List kids = new ArrayList<>(); - kids.add(symbol); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitPathLitStepSymbol(this, ctx); - } - } - - /** - * TODO docs, equals, hashcode - */ - public static class Index extends PathLitStep { - public int index; - - public Index(int index) { - this.index = index; - } - - @NotNull - @Override - public Collection children() { - return new ArrayList<>(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitPathLitStepIndex(this, ctx); - } - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java index c522e49fa1..d8cebe51d8 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java @@ -56,9 +56,9 @@ public static class Expression extends ProjectItem { public Expr expr; @Nullable - public Identifier.Symbol asAlias; + public Identifier asAlias; - public Expression(@NotNull Expr expr, @Nullable Identifier.Symbol asAlias) { + public Expression(@NotNull Expr expr, @Nullable Identifier asAlias) { this.expr = expr; this.asAlias = asAlias; } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/SetOp.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SetOp.java index db50e9c7ba..13a77764da 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/SetOp.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SetOp.java @@ -11,13 +11,13 @@ */ public class SetOp extends AstNode { @NotNull - public Type type; + public SetOpType setOpType; @Nullable public SetQuantifier setq; - public SetOp(@NotNull Type type, @Nullable SetQuantifier setq) { - this.type = type; + public SetOp(@NotNull SetOpType setOpType, @Nullable SetQuantifier setq) { + this.setOpType = setOpType; this.setq = setq; } @@ -31,14 +31,4 @@ public Collection children() { public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitSetOp(this, ctx); } - - /** - * TODO docs, equals, hashcode - */ - public enum Type { - UNION, - INTERSECT, - EXCEPT, - OTHER - } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/SetOpType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SetOpType.java new file mode 100644 index 0000000000..b7253118b7 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SetOpType.java @@ -0,0 +1,38 @@ +package org.partiql.ast.v1; + +/** + * TODO docs, equals, hashcode + */ +public class SetOpType implements Enum { + private static final int UNKNOWN = 0; + private static final int UNION = 1; + private static final int INTERSECT = 2; + private static final int EXCEPT = 3; + + public static SetOpType UNKNOWN() { + return new SetOpType(UNKNOWN); + } + + public static SetOpType UNION() { + return new SetOpType(UNION); + } + + public static SetOpType INTERSECT() { + return new SetOpType(INTERSECT); + } + + public static SetOpType EXCEPT() { + return new SetOpType(EXCEPT); + } + + private final int code; + + private SetOpType(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/SetQuantifier.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SetQuantifier.java index 4a60c59686..344bc6a85e 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/SetQuantifier.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SetQuantifier.java @@ -3,8 +3,31 @@ /** * TODO docs, equals, hashcode */ -public enum SetQuantifier { - ALL, - DISTINCT, - OTHER, -} +public class SetQuantifier implements Enum { + public static final int UNKNOWN = 0; + public static final int ALL = 1; + public static final int DISTINCT = 2; + + public static SetQuantifier UNKNOWN() { + return new SetQuantifier(UNKNOWN); + } + + public static SetQuantifier ALL() { + return new SetQuantifier(ALL); + } + + public static SetQuantifier DISTINCT() { + return new SetQuantifier(DISTINCT); + } + + private final int code; + + private SetQuantifier(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } +} \ No newline at end of file diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Sort.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Sort.java index 81a79d9e34..a1009d1524 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/Sort.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Sort.java @@ -16,14 +16,14 @@ public class Sort extends AstNode { public Expr expr; @Nullable - public Dir dir; + public Order order; @Nullable public Nulls nulls; - public Sort(@NotNull Expr expr, @Nullable Dir dir, @Nullable Nulls nulls) { + public Sort(@NotNull Expr expr, @Nullable Order order, @Nullable Nulls nulls) { this.expr = expr; - this.dir = dir; + this.order = order; this.nulls = nulls; } @@ -39,22 +39,4 @@ public Collection children() { public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitSort(this, ctx); } - - /** - * TODO docs, equals, hashcode - */ - public enum Dir { - ASC, - DESC, - OTHER - } - - /** - * TODO docs, equals, hashcode - */ - public enum Nulls { - FIRST, - LAST, - OTHER - } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java index e508a69ca8..92305a86b9 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Expr.java @@ -34,8 +34,10 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitExprOr((ExprOr) this, ctx); } else if (this instanceof ExprValues) { return visitor.visitExprValues((ExprValues) this, ctx); - } else if (this instanceof ExprCollection) { - return visitor.visitExprCollection((ExprCollection) this, ctx); + } else if (this instanceof ExprArray) { + return visitor.visitExprArray((ExprArray) this, ctx); + } else if (this instanceof ExprBag) { + return visitor.visitExprBag((ExprBag) this, ctx); } else if (this instanceof ExprStruct) { return visitor.visitExprStruct((ExprStruct) this, ctx); } else if (this instanceof ExprLike) { @@ -64,10 +66,6 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitExprExtract((ExprExtract) this, ctx); } else if (this instanceof ExprCast) { return visitor.visitExprCast((ExprCast) this, ctx); - } else if (this instanceof ExprDateAdd) { - return visitor.visitExprDateAdd((ExprDateAdd) this, ctx); - } else if (this instanceof ExprDateDiff) { - return visitor.visitExprDateDiff((ExprDateDiff) this, ctx); } else if (this instanceof ExprQuerySet) { return visitor.visitExprQuerySet((ExprQuerySet) this, ctx); } else if (this instanceof ExprMatch) { diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCollection.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprArray.java similarity index 58% rename from partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCollection.java rename to partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprArray.java index d096e90818..c2324cc502 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCollection.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprArray.java @@ -11,15 +11,11 @@ /** * TODO docs, equals, hashcode */ -public class ExprCollection extends Expr { - @NotNull - public final Type type; - +public class ExprArray extends Expr { @NotNull public final List values; - public ExprCollection(@NotNull Type type, @NotNull List values) { - this.type = type; + public ExprArray(@NotNull List values) { this.values = values; } @@ -31,18 +27,6 @@ public Collection children() { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitExprCollection(this, ctx); - } - - /** - * TODO docs, equals, hashcode - */ - public enum Type { - BAG, - ARRAY, - VALUES, - LIST, - SEXP, - OTHER + return visitor.visitExprArray(this, ctx); } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeReal.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBag.java similarity index 55% rename from partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeReal.java rename to partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBag.java index 643db2c912..efa0dfea59 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeReal.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBag.java @@ -1,24 +1,32 @@ -package org.partiql.ast.v1.type; +package org.partiql.ast.v1.expr; import org.jetbrains.annotations.NotNull; import org.partiql.ast.v1.AstNode; import org.partiql.ast.v1.AstVisitor; +import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; +import java.util.List; /** * TODO docs, equals, hashcode */ -public class TypeReal extends Type { +public class ExprBag extends Expr { @NotNull + public final List values; + + public ExprBag(@NotNull List values) { + this.values = values; + } + @Override + @NotNull public Collection children() { - return Collections.emptyList(); + return new ArrayList<>(values); } @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeReal(this, ctx); + return visitor.visitExprBag(this, ctx); } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java index b00733e690..a446ed206e 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java @@ -23,7 +23,7 @@ public class ExprBetween extends Expr { public final boolean not; - public ExprBetween(@NotNull Expr value, @NotNull Expr from, @NotNull Expr to, @NotNull boolean not) { + public ExprBetween(@NotNull Expr value, @NotNull Expr from, @NotNull Expr to, boolean not) { this.value = value; this.from = from; this.to = to; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java index 64415b1fa0..883c0c26c8 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java @@ -3,7 +3,7 @@ import org.jetbrains.annotations.NotNull; import org.partiql.ast.v1.AstNode; import org.partiql.ast.v1.AstVisitor; -import org.partiql.ast.v1.Identifier; +import org.partiql.ast.v1.IdentifierChain; import org.partiql.ast.v1.SetQuantifier; import java.util.ArrayList; @@ -14,11 +14,11 @@ * TODO docs, equals, hashcode */ public class ExprCall extends Expr { - public Identifier function; + public IdentifierChain function; public List args; public SetQuantifier setq; - public ExprCall(Identifier function, List args, SetQuantifier setq) { + public ExprCall(IdentifierChain function, List args, SetQuantifier setq) { this.function = function; this.args = args; this.setq = setq; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java index 59288a4d7a..96d7e4550f 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java @@ -3,7 +3,7 @@ import org.jetbrains.annotations.NotNull; import org.partiql.ast.v1.AstNode; import org.partiql.ast.v1.AstVisitor; -import org.partiql.ast.v1.type.Type; +import org.partiql.ast.v1.DataType; import java.util.ArrayList; import java.util.Collection; @@ -17,9 +17,9 @@ public class ExprCast extends Expr { public final Expr value; @NotNull - public final Type asType; + public final DataType asType; - public ExprCast(@NotNull Expr value, @NotNull Type asType) { + public ExprCast(@NotNull Expr value, @NotNull DataType asType) { this.value = value; this.asType = asType; } @@ -29,7 +29,6 @@ public ExprCast(@NotNull Expr value, @NotNull Type asType) { public Collection children() { List kids = new ArrayList<>(); kids.add(value); - kids.add(asType); return kids; } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateAdd.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateAdd.java deleted file mode 100644 index 9ca964a4ee..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateAdd.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.partiql.ast.v1.expr; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; -import org.partiql.ast.v1.DatetimeField; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public class ExprDateAdd extends Expr { - @NotNull - public DatetimeField field; - - @NotNull - public Expr lhs; - - @NotNull - public Expr rhs; - - public ExprDateAdd(@NotNull DatetimeField field, @NotNull Expr lhs, @NotNull Expr rhs) { - this.field = field; - this.lhs = lhs; - this.rhs = rhs; - } - - @Override - @NotNull - public Collection children() { - List kids = new ArrayList<>(); - kids.add(lhs); - kids.add(rhs); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitExprDateAdd(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateDiff.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateDiff.java deleted file mode 100644 index 68799aaf51..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprDateDiff.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.partiql.ast.v1.expr; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; -import org.partiql.ast.v1.DatetimeField; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public class ExprDateDiff extends Expr { - @NotNull - public DatetimeField field; - - @NotNull - public Expr lhs; - - @NotNull - public Expr rhs; - - public ExprDateDiff(@NotNull DatetimeField field, @NotNull Expr lhs, @NotNull Expr rhs) { - this.field = field; - this.lhs = lhs; - this.rhs = rhs; - } - - @Override - @NotNull - public Collection children() { - List kids = new ArrayList<>(); - kids.add(lhs); - kids.add(rhs); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitExprDateDiff(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java index 78893edae6..dc23fdde9a 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprInCollection.java @@ -1,7 +1,6 @@ package org.partiql.ast.v1.expr; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.partiql.ast.v1.AstNode; import org.partiql.ast.v1.AstVisitor; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java index eb212b869e..a8f20ba88b 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprIsType.java @@ -3,7 +3,7 @@ import org.jetbrains.annotations.NotNull; import org.partiql.ast.v1.AstNode; import org.partiql.ast.v1.AstVisitor; -import org.partiql.ast.v1.type.Type; +import org.partiql.ast.v1.DataType; import java.util.ArrayList; import java.util.Collection; @@ -17,11 +17,11 @@ public class ExprIsType extends Expr { public Expr value; @NotNull - public Type type; + public DataType type; public boolean not; - public ExprIsType(@NotNull Expr value, @NotNull Type type, boolean not) { + public ExprIsType(@NotNull Expr value, @NotNull DataType type, boolean not) { this.value = value; this.type = type; this.not = not; @@ -32,7 +32,6 @@ public ExprIsType(@NotNull Expr value, @NotNull Type type, boolean not) { public Collection children() { List kids = new ArrayList<>(); kids.add(value); - kids.add(type); return kids; } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNullIf.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNullIf.java index 70fb6711e7..95991700ba 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNullIf.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprNullIf.java @@ -13,22 +13,22 @@ */ public class ExprNullIf extends Expr { @NotNull - public Expr value; + public Expr v1; @NotNull - public Expr nullifier; + public Expr v2; - public ExprNullIf(@NotNull Expr value, @NotNull Expr nullifier) { - this.value = value; - this.nullifier = nullifier; + public ExprNullIf(@NotNull Expr v1, @NotNull Expr v2) { + this.v1 = v1; + this.v2 = v2; } @Override @NotNull public Collection children() { List kids = new ArrayList<>(); - kids.add(value); - kids.add(nullifier); + kids.add(v1); + kids.add(v2); return kids; } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPath.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPath.java index 250f7a548c..ec521c0108 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPath.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPath.java @@ -1,6 +1,7 @@ package org.partiql.ast.v1.expr; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.partiql.ast.v1.AstNode; import org.partiql.ast.v1.AstVisitor; @@ -15,12 +16,12 @@ public class ExprPath extends Expr { @NotNull public Expr root; - @NotNull - public List steps; + @Nullable + public PathStep next; - public ExprPath(@NotNull Expr root, @NotNull List steps) { + public ExprPath(@NotNull Expr root, @Nullable PathStep next) { this.root = root; - this.steps = steps; + this.next = next; } @Override @@ -28,7 +29,9 @@ public ExprPath(@NotNull Expr root, @NotNull List steps) { public Collection children() { List kids = new ArrayList<>(); kids.add(root); - kids.addAll(steps); + if (next != null) { + kids.add(next); + } return kids; } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPathStep.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPathStep.java deleted file mode 100644 index 365370ba72..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprPathStep.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.partiql.ast.v1.expr; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; -import org.partiql.ast.v1.Identifier; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public abstract class ExprPathStep extends AstNode { - - /** - * TODO docs, equals, hashcode - */ - public static class Symbol extends ExprPathStep { - @NotNull - public Identifier.Symbol symbol; - - public Symbol(@NotNull Identifier.Symbol symbol) { - this.symbol = symbol; - } - - @Override - @NotNull - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitExprPathStepSymbol(this, ctx); - } - } - - /** - * TODO docs, equals, hashcode - */ - public static class Index extends ExprPathStep { - @NotNull - public Expr key; - - public Index(@NotNull Expr key) { - this.key = key; - } - - @Override - @NotNull - public Collection children() { - List kids = new ArrayList<>(); - kids.add(key); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitExprPathStepIndex(this, ctx); - } - } - - /** - * TODO docs, equals, hashcode - */ - public static class Wildcard extends ExprPathStep { - @Override - @NotNull - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitExprPathStepWildcard(this, ctx); - } - } - - /** - * TODO docs, equals, hashcode - */ - public static class Unpivot extends ExprPathStep { - @Override - @NotNull - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitExprPathStepUnpivot(this, ctx); - } - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSessionAttribute.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSessionAttribute.java index f1e491e87c..518793e773 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSessionAttribute.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprSessionAttribute.java @@ -12,10 +12,10 @@ */ public class ExprSessionAttribute extends Expr { @NotNull - public Attribute attribute; + public SessionAttribute sessionAttribute; - public ExprSessionAttribute(@NotNull Attribute attribute) { - this.attribute = attribute; + public ExprSessionAttribute(@NotNull SessionAttribute sessionAttribute) { + this.sessionAttribute = sessionAttribute; } @Override @@ -28,13 +28,4 @@ public Collection children() { public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitExprSessionAttribute(this, ctx); } - - /** - * TODO docs, equals, hashcode - */ - public enum Attribute { - CURRENT_USER, - CURRENT_DATE, - OTHER - } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprTrim.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprTrim.java index aa95dba346..6551f68178 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprTrim.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprTrim.java @@ -20,12 +20,12 @@ public class ExprTrim extends Expr { public Expr chars; @Nullable - public Spec spec; + public TrimSpec trimSpec; - public ExprTrim(@NotNull Expr value, @Nullable Expr chars, @Nullable Spec spec) { + public ExprTrim(@NotNull Expr value, @Nullable Expr chars, @Nullable TrimSpec trimSpec) { this.value = value; this.chars = chars; - this.spec = spec; + this.trimSpec = trimSpec; } @Override @@ -43,11 +43,4 @@ public Collection children() { public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitExprTrim(this, ctx); } - - public enum Spec { - LEADING, - TRAILING, - BOTH, - OTHER - } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVarRef.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVarRef.java index 1cca5c37a8..b0db6cd190 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVarRef.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprVarRef.java @@ -3,7 +3,7 @@ import org.jetbrains.annotations.NotNull; import org.partiql.ast.v1.AstNode; import org.partiql.ast.v1.AstVisitor; -import org.partiql.ast.v1.Identifier; +import org.partiql.ast.v1.IdentifierChain; import java.util.ArrayList; import java.util.Collection; @@ -14,13 +14,13 @@ */ public class ExprVarRef extends Expr { @NotNull - public Identifier identifier; + public IdentifierChain identifierChain; @NotNull public Scope scope; - public ExprVarRef(@NotNull Identifier identifier, @NotNull Scope scope) { - this.identifier = identifier; + public ExprVarRef(@NotNull IdentifierChain identifierChain, @NotNull Scope scope) { + this.identifierChain = identifierChain; this.scope = scope; } @@ -28,7 +28,7 @@ public ExprVarRef(@NotNull Identifier identifier, @NotNull Scope scope) { @NotNull public Collection children() { List kids = new ArrayList<>(); - kids.add(identifier); + kids.add(identifierChain); return kids; } @@ -36,13 +36,4 @@ public Collection children() { public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitExprVarRef(this, ctx); } - - /** - * TODO docs, equals, hashcode - */ - public enum Scope { - DEFAULT, - LOCAL, - OTHER - } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprWindow.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprWindow.java index 59ef292764..6832d6c762 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprWindow.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprWindow.java @@ -15,7 +15,7 @@ */ public class ExprWindow extends Expr { @NotNull - public Function function; + public WindowFunction windowFunction; @NotNull public Expr expression; @@ -29,8 +29,8 @@ public class ExprWindow extends Expr { @NotNull public Over over; - public ExprWindow(@NotNull Function function, @NotNull Expr expression, @Nullable Expr offset, @Nullable Expr defaultValue, @NotNull Over over) { - this.function = function; + public ExprWindow(@NotNull WindowFunction windowFunction, @NotNull Expr expression, @Nullable Expr offset, @Nullable Expr defaultValue, @NotNull Over over) { + this.windowFunction = windowFunction; this.expression = expression; this.offset = offset; this.defaultValue = defaultValue; @@ -57,15 +57,6 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { return visitor.visitExprWindow(this, ctx); } - /** - * TODO docs, equals, hashcode - */ - public enum Function { - LAG, - LEAD, - OTHER - } - /** * TODO docs, equals, hashcode */ diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/PathStep.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/PathStep.java new file mode 100644 index 0000000000..175f6c23ce --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/PathStep.java @@ -0,0 +1,124 @@ +package org.partiql.ast.v1.expr; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.partiql.ast.v1.AstNode; +import org.partiql.ast.v1.AstVisitor; +import org.partiql.ast.v1.Identifier; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * TODO docs, equals, hashcode + */ +public abstract class PathStep extends AstNode { + @Nullable + public PathStep next; + + /** + * TODO docs, equals, hashcode + */ + public static class Field extends PathStep { + @NotNull + public Identifier field; + + public Field(@NotNull Identifier field, @Nullable PathStep next) { + this.field = field; + this.next = next; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + if (next != null) { + kids.add(next); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitPathStepField(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class Element extends PathStep { + @NotNull + public Expr element; + + public Element(@NotNull Expr element, @Nullable PathStep next) { + this.element = element; + this.next = next; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + kids.add(element); + if (next != null) { + kids.add(next); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitPathStepElement(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class AllElements extends PathStep { + public AllElements(@Nullable PathStep next) { + this.next = next; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + if (next != null) { + kids.add(next); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitPathStepAllElements(this, ctx); + } + } + + /** + * TODO docs, equals, hashcode + */ + public static class AllFields extends PathStep { + public AllFields(@Nullable PathStep next) { + this.next = next; + } + + @Override + @NotNull + public Collection children() { + List kids = new ArrayList<>(); + if (next != null) { + kids.add(next); + } + return kids; + } + + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + return visitor.visitPathStepAllFields(this, ctx); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Scope.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Scope.java new file mode 100644 index 0000000000..4cd1909c0d --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/Scope.java @@ -0,0 +1,35 @@ +package org.partiql.ast.v1.expr; + +import org.partiql.ast.v1.Enum; + +/** + * TODO docs, equals, hashcode + */ +public class Scope implements Enum { + public static final int UNKNOWN = 0; + public static final int DEFAULT = 1; + public static final int LOCAL = 2; + + public static Scope UNKNOWN() { + return new Scope(UNKNOWN); + } + + public static Scope DEFAULT() { + return new Scope(DEFAULT); + } + + public static Scope LOCAL() { + return new Scope(LOCAL); + } + + private final int code; + + private Scope(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/SessionAttribute.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/SessionAttribute.java new file mode 100644 index 0000000000..6a96e8c64e --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/SessionAttribute.java @@ -0,0 +1,35 @@ +package org.partiql.ast.v1.expr; + +import org.partiql.ast.v1.Enum; + +/** + * TODO docs, equals, hashcode + */ +public class SessionAttribute implements Enum { + public static final int UNKNOWN = 0; + public static final int CURRENT_USER = 1; + public static final int CURRENT_DATE = 2; + + public static SessionAttribute UNKNOWN() { + return new SessionAttribute(UNKNOWN); + } + + public static SessionAttribute CURRENT_USER() { + return new SessionAttribute(CURRENT_USER); + } + + public static SessionAttribute CURRENT_DATE() { + return new SessionAttribute(CURRENT_DATE); + } + + private final int code; + + public SessionAttribute(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/TrimSpec.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/TrimSpec.java new file mode 100644 index 0000000000..2f023383d9 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/TrimSpec.java @@ -0,0 +1,37 @@ +package org.partiql.ast.v1.expr; + +import org.partiql.ast.v1.Enum; + +public class TrimSpec implements Enum { + public static final int UNKNOWN = 0; + public static final int LEADING = 1; + public static final int TRAILING = 2; + public static final int BOTH = 3; + + public static TrimSpec UNKNOWN() { + return new TrimSpec(UNKNOWN); + } + + public static TrimSpec LEADING() { + return new TrimSpec(LEADING); + } + + public static TrimSpec TRAILING() { + return new TrimSpec(TRAILING); + } + + public static TrimSpec BOTH() { + return new TrimSpec(BOTH); + } + + private final int code; + + private TrimSpec(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/WindowFunction.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/WindowFunction.java new file mode 100644 index 0000000000..98d3a84140 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/WindowFunction.java @@ -0,0 +1,35 @@ +package org.partiql.ast.v1.expr; + +import org.partiql.ast.v1.Enum; + +/** + * TODO docs, equals, hashcode + */ +public class WindowFunction implements Enum { + public static final int UNKNOWN = 0; + public static final int LAG = 0; + public static final int LEAD = 0; + + public static WindowFunction UNKNOWN() { + return new WindowFunction(UNKNOWN); + } + + public static WindowFunction LAG() { + return new WindowFunction(LAG); + } + + public static WindowFunction LEAD() { + return new WindowFunction(LEAD); + } + + private final int code; + + public WindowFunction(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphDirection.java b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphDirection.java index 1e43e8bbc4..2194e4585f 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphDirection.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphDirection.java @@ -1,15 +1,60 @@ package org.partiql.ast.v1.graph; +import org.partiql.ast.v1.Enum; + /** * TODO docs, equals, hashcode */ -public enum GraphDirection { - LEFT, - UNDIRECTED, - RIGHT, - LEFT_OR_UNDIRECTED, - UNDIRECTED_OR_RIGHT, - LEFT_OR_RIGHT, - LEFT_UNDIRECTED_OR_RIGHT, - OTHER, +public class GraphDirection implements Enum { + public static final int UNKNOWN = 0; + public static final int LEFT = 1; + public static final int UNDIRECTED = 2; + public static final int RIGHT = 3; + public static final int LEFT_OR_UNDIRECTED = 4; + public static final int UNDIRECTED_OR_RIGHT = 5; + public static final int LEFT_OR_RIGHT = 6; + public static final int LEFT_UNDIRECTED_OR_RIGHT = 7; + + public static GraphDirection UNKNOWN() { + return new GraphDirection(UNKNOWN); + } + + public static GraphDirection LEFT() { + return new GraphDirection(LEFT); + } + + public static GraphDirection UNDIRECTED() { + return new GraphDirection(UNDIRECTED); + } + + public static GraphDirection RIGHT() { + return new GraphDirection(RIGHT); + } + + public static GraphDirection LEFT_OR_UNDIRECTED() { + return new GraphDirection(LEFT_OR_UNDIRECTED); + } + + public static GraphDirection UNDIRECTED_OR_RIGHT() { + return new GraphDirection(UNDIRECTED_OR_RIGHT); + } + + public static GraphDirection LEFT_OR_RIGHT() { + return new GraphDirection(LEFT_OR_RIGHT); + } + + public static GraphDirection LEFT_UNDIRECTED_OR_RIGHT() { + return new GraphDirection(LEFT_UNDIRECTED_OR_RIGHT); + } + + private final int code; + + private GraphDirection(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphRestrictor.java b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphRestrictor.java index 602a3ebd2e..71017576bc 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphRestrictor.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/graph/GraphRestrictor.java @@ -1,11 +1,40 @@ package org.partiql.ast.v1.graph; +import org.partiql.ast.v1.Enum; + /** * TODO docs, equals, hashcode */ -public enum GraphRestrictor { - TRAIL, - ACYCLIC, - SIMPLE, - OTHER, +public class GraphRestrictor implements Enum { + public static final int UNKNOWN = 0; + public static final int TRAIL = 1; + public static final int ACYCLIC = 2; + public static final int SIMPLE = 3; + + public static GraphRestrictor UNKNOWN() { + return new GraphRestrictor(UNKNOWN); + } + + public static GraphRestrictor TRAIL() { + return new GraphRestrictor(TRAIL); + } + + public static GraphRestrictor ACYCLIC() { + return new GraphRestrictor(ACYCLIC); + } + + public static GraphRestrictor SIMPLE() { + return new GraphRestrictor(SIMPLE); + } + + private final int code; + + private GraphRestrictor(int code) { + this.code = code; + } + + @Override + public int code() { + return code; + } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java deleted file mode 100644 index de93bb0ff6..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/Type.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -/** - * TODO docs, equals, hashcode - */ -public abstract class Type extends AstNode { - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - if (this instanceof TypeNull) { - return visitor.visitTypeNull((TypeNull) this, ctx); - } else if (this instanceof TypeMissing) { - return visitor.visitTypeMissing((TypeMissing) this, ctx); - } else if (this instanceof TypeBool) { - return visitor.visitTypeBool((TypeBool) this, ctx); - } else if (this instanceof TypeTinyint) { - return visitor.visitTypeTinyint((TypeTinyint) this, ctx); - } else if (this instanceof TypeSmallint) { - return visitor.visitTypeSmallint((TypeSmallint) this, ctx); - } else if (this instanceof TypeInt2) { - return visitor.visitTypeInt2((TypeInt2) this, ctx); - } else if (this instanceof TypeInt4) { - return visitor.visitTypeInt4((TypeInt4) this, ctx); - } else if (this instanceof TypeBigint) { - return visitor.visitTypeBigint((TypeBigint) this, ctx); - } else if (this instanceof TypeInt8) { - return visitor.visitTypeInt8((TypeInt8) this, ctx); - } else if (this instanceof TypeInt) { - return visitor.visitTypeInt((TypeInt) this, ctx); - } else if (this instanceof TypeReal) { - return visitor.visitTypeReal((TypeReal) this, ctx); - } else if (this instanceof TypeFloat) { - return visitor.visitTypeFloat((TypeFloat) this, ctx); - } else if (this instanceof TypeDoublePrecision) { - return visitor.visitTypeDoublePrecision((TypeDoublePrecision) this, ctx); - } else if (this instanceof TypeDecimal) { - return visitor.visitTypeDecimal((TypeDecimal) this, ctx); - } else if (this instanceof TypeNumeric) { - return visitor.visitTypeNumeric((TypeNumeric) this, ctx); - } else if (this instanceof TypeChar) { - return visitor.visitTypeChar((TypeChar) this, ctx); - } else if (this instanceof TypeVarchar) { - return visitor.visitTypeVarchar((TypeVarchar) this, ctx); - } else if (this instanceof TypeString) { - return visitor.visitTypeString((TypeString) this, ctx); - } else if (this instanceof TypeSymbol) { - return visitor.visitTypeSymbol((TypeSymbol) this, ctx); - } else if (this instanceof TypeBit) { - return visitor.visitTypeBit((TypeBit) this, ctx); - } else if (this instanceof TypeBitVarying) { - return visitor.visitTypeBitVarying((TypeBitVarying) this, ctx); - } else if (this instanceof TypeBlob) { - return visitor.visitTypeBlob((TypeBlob) this, ctx); - } else if (this instanceof TypeClob) { - return visitor.visitTypeClob((TypeClob) this, ctx); - } else if (this instanceof TypeDate) { - return visitor.visitTypeDate((TypeDate) this, ctx); - } else if (this instanceof TypeTime) { - return visitor.visitTypeTime((TypeTime) this, ctx); - } else if (this instanceof TypeTimeWithTz) { - return visitor.visitTypeTimeWithTz((TypeTimeWithTz) this, ctx); - } else if (this instanceof TypeTimestamp) { - return visitor.visitTypeTimestamp((TypeTimestamp) this, ctx); - } else if (this instanceof TypeTimestampWithTz) { - return visitor.visitTypeTimestampWithTz((TypeTimestampWithTz) this, ctx); - } else if (this instanceof TypeInterval) { - return visitor.visitTypeInterval((TypeInterval) this, ctx); - } else if (this instanceof TypeBag) { - return visitor.visitTypeBag((TypeBag) this, ctx); - } else if (this instanceof TypeList) { - return visitor.visitTypeList((TypeList) this, ctx); - } else if (this instanceof TypeSexp) { - return visitor.visitTypeSexp((TypeSexp) this, ctx); - } else if (this instanceof TypeTuple) { - return visitor.visitTypeTuple((TypeTuple) this, ctx); - } else if (this instanceof TypeStruct) { - return visitor.visitTypeStruct((TypeStruct) this, ctx); - } else if (this instanceof TypeUserDefined) { - return visitor.visitTypeUserDefined((TypeUserDefined) this, ctx); - } else { - throw new IllegalStateException("Unexpected value: " + this); - } - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBag.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBag.java deleted file mode 100644 index 6b42abb106..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBag.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeBag extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeBag(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBigint.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBigint.java deleted file mode 100644 index 262a1730f5..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBigint.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeBigint extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeBigint(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBit.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBit.java deleted file mode 100644 index 831b09d2fd..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBit.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeBit extends Type { - @Nullable - public Integer length; - - public TypeBit(@Nullable Integer length) { - this.length = length; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeBit(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBitVarying.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBitVarying.java deleted file mode 100644 index 2987bc3460..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBitVarying.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeBitVarying extends Type { - @Nullable - public Integer length; - - public TypeBitVarying(@Nullable Integer length) { - this.length = length; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeBitVarying(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBlob.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBlob.java deleted file mode 100644 index 572ec323b2..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBlob.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeBlob extends Type { - @Nullable - public Integer length; - - public TypeBlob(@Nullable Integer length) { - this.length = length; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeBlob(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBool.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBool.java deleted file mode 100644 index 41b2a56ec2..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeBool.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeBool extends Type { - public static final TypeBool INSTANCE = new TypeBool(); - - private TypeBool() {} - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeBool(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeChar.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeChar.java deleted file mode 100644 index 95171ba6c7..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeChar.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeChar extends Type { - @Nullable - public Integer length; - - public TypeChar(@Nullable Integer length) { - this.length = length; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeChar(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeClob.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeClob.java deleted file mode 100644 index 048dab9d8b..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeClob.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeClob extends Type { - @Nullable - public Integer length; - - public TypeClob(@Nullable Integer length) { - this.length = length; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeClob(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDate.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDate.java deleted file mode 100644 index 65565126ba..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDate.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeDate extends Type { - public static final TypeDate INSTANCE = new TypeDate(); - - private TypeDate() {} - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeDate(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDecimal.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDecimal.java deleted file mode 100644 index 1f619a3f58..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDecimal.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeDecimal extends Type { - @Nullable - public Integer precision; - - @Nullable - public Integer scale; - - public TypeDecimal(@Nullable Integer precision, @Nullable Integer scale) { - this.precision = precision; - this.scale = scale; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeDecimal(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDoublePrecision.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDoublePrecision.java deleted file mode 100644 index 4b32f88201..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeDoublePrecision.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeDoublePrecision extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeDoublePrecision(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat.java deleted file mode 100644 index 54038ca62d..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeFloat.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeFloat extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeFloat(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt.java deleted file mode 100644 index 8eccbc4601..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeInt extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeInt(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt2.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt2.java deleted file mode 100644 index c3840981f2..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt2.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeInt2 extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeInt2(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt4.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt4.java deleted file mode 100644 index fae081e456..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt4.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeInt4 extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeInt4(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt8.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt8.java deleted file mode 100644 index 83bf6f0ba6..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInt8.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeInt8 extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeInt8(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInterval.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInterval.java deleted file mode 100644 index f06fc69ff5..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeInterval.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeInterval extends Type { - @Nullable - public Integer precision; - - public TypeInterval(@Nullable Integer precision) { - this.precision = precision; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeInterval(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeList.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeList.java deleted file mode 100644 index fd22400985..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeList.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeList extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeList(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeMissing.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeMissing.java deleted file mode 100644 index e1a822330b..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeMissing.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeMissing extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeMissing(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNull.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNull.java deleted file mode 100644 index af6d3e1bec..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNull.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeNull extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeNull(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNumeric.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNumeric.java deleted file mode 100644 index cdd82f65cf..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeNumeric.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeNumeric extends Type { - @Nullable - public Integer precision; - - @Nullable - public Integer scale; - - public TypeNumeric(@Nullable Integer precision, @Nullable Integer scale) { - this.precision = precision; - this.scale = scale; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeNumeric(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSexp.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSexp.java deleted file mode 100644 index f8f92a8a6b..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSexp.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeSexp extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeSexp(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSmallint.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSmallint.java deleted file mode 100644 index 7889aa1df7..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSmallint.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeSmallint extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeSmallint(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeString.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeString.java deleted file mode 100644 index 0b7a9a0868..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeString.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeString extends Type { - @Nullable - public Integer length; - - public TypeString(@Nullable Integer length) { - this.length = length; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeString(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeStruct.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeStruct.java deleted file mode 100644 index f55bc4e518..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeStruct.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeStruct extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeStruct(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSymbol.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSymbol.java deleted file mode 100644 index 142b88bfa7..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeSymbol.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeSymbol extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeSymbol(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTime.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTime.java deleted file mode 100644 index 951cb0878b..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTime.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeTime extends Type { - @Nullable - public Integer precision; - - public TypeTime(@Nullable Integer precision) { - this.precision = precision; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeTime(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimeWithTz.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimeWithTz.java deleted file mode 100644 index d35879c50c..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimeWithTz.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeTimeWithTz extends Type { - @Nullable - public Integer precision; - - public TypeTimeWithTz(@Nullable Integer precision) { - this.precision = precision; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeTimeWithTz(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestamp.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestamp.java deleted file mode 100644 index 7688167ac0..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestamp.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeTimestamp extends Type { - @Nullable - public Integer precision; - - public TypeTimestamp(@Nullable Integer precision) { - this.precision = precision; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeTimestamp(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestampWithTz.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestampWithTz.java deleted file mode 100644 index a733cd6561..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTimestampWithTz.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeTimestampWithTz extends Type { - @Nullable - public Integer precision; - - public TypeTimestampWithTz(@Nullable Integer precision) { - this.precision = precision; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeTimestampWithTz(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTinyint.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTinyint.java deleted file mode 100644 index 2742c732ef..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTinyint.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeTinyint extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeTinyint(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTuple.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTuple.java deleted file mode 100644 index e4e38738f0..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeTuple.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeTuple extends Type { - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeTuple(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeUserDefined.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeUserDefined.java deleted file mode 100644 index b98fc6279c..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeUserDefined.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeUserDefined extends Type { - @NotNull - public String name; - - public TypeUserDefined(@NotNull String name) { - this.name = name; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeUserDefined(this, ctx); - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeVarchar.java b/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeVarchar.java deleted file mode 100644 index 8ab6f79121..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/type/TypeVarchar.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.partiql.ast.v1.type; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.AstNode; -import org.partiql.ast.v1.AstVisitor; - -import java.util.Collection; -import java.util.Collections; - -/** - * TODO docs, equals, hashcode - */ -public class TypeVarchar extends Type { - @Nullable - public Integer length; - - public TypeVarchar(@Nullable Integer length) { - this.length = length; - } - - @NotNull - @Override - public Collection children() { - return Collections.emptyList(); - } - - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitTypeVarchar(this, ctx); - } -} From 252603a9fa71f83955350668b399691707ab5b0c Mon Sep 17 00:00:00 2001 From: Alan Cai Date: Fri, 4 Oct 2024 12:40:06 -0700 Subject: [PATCH 07/11] Address Robert's feedback; refactor naming, DataType order, add some TODOs --- partiql-ast/api/partiql-ast.api | 64 ++++---- .../main/java/org/partiql/ast/v1/AstNode.java | 1 + .../java/org/partiql/ast/v1/AstVisitor.java | 8 +- .../java/org/partiql/ast/v1/DataType.java | 150 +++++++++++++----- .../main/java/org/partiql/ast/v1/Explain.java | 15 +- .../main/java/org/partiql/ast/v1/From.java | 4 +- .../ast/v1/{FromValue.java => FromExpr.java} | 8 +- .../java/org/partiql/ast/v1/ProjectItem.java | 23 ++- .../main/java/org/partiql/ast/v1/Target.java | 55 ------- .../java/org/partiql/ast/v1/expr/ExprLit.java | 2 +- 10 files changed, 170 insertions(+), 160 deletions(-) rename partiql-ast/src/main/java/org/partiql/ast/v1/{FromValue.java => FromExpr.java} (80%) delete mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/Target.java diff --git a/partiql-ast/api/partiql-ast.api b/partiql-ast/api/partiql-ast.api index adb39b30a8..5c44d2dece 100644 --- a/partiql-ast/api/partiql-ast.api +++ b/partiql-ast/api/partiql-ast.api @@ -5597,8 +5597,8 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitExprWindow (Lorg/partiql/ast/v1/expr/ExprWindow;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitExprWindowOver (Lorg/partiql/ast/v1/expr/ExprWindow$Over;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitFrom (Lorg/partiql/ast/v1/From;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitFromExpr (Lorg/partiql/ast/v1/FromExpr;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitFromJoin (Lorg/partiql/ast/v1/FromJoin;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitFromValue (Lorg/partiql/ast/v1/FromValue;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitGraphLabel (Lorg/partiql/ast/v1/graph/GraphLabel;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitGraphLabelConj (Lorg/partiql/ast/v1/graph/GraphLabel$Conj;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitGraphLabelDisj (Lorg/partiql/ast/v1/graph/GraphLabel$Disj;Ljava/lang/Object;)Ljava/lang/Object; @@ -5633,7 +5633,7 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitPathStepField (Lorg/partiql/ast/v1/expr/PathStep$Field;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitProjectItem (Lorg/partiql/ast/v1/ProjectItem;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitProjectItemAll (Lorg/partiql/ast/v1/ProjectItem$All;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitProjectItemExpression (Lorg/partiql/ast/v1/ProjectItem$Expression;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitProjectItemExpr (Lorg/partiql/ast/v1/ProjectItem$Expr;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQuery (Lorg/partiql/ast/v1/Query;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQueryBody (Lorg/partiql/ast/v1/QueryBody;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQueryBodySFW (Lorg/partiql/ast/v1/QueryBody$SFW;Ljava/lang/Object;)Ljava/lang/Object; @@ -5646,13 +5646,12 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitSetOp (Lorg/partiql/ast/v1/SetOp;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSort (Lorg/partiql/ast/v1/Sort;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitStatement (Lorg/partiql/ast/v1/Statement;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTarget (Lorg/partiql/ast/v1/Target;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitTargetDomain (Lorg/partiql/ast/v1/Target$Domain;Ljava/lang/Object;)Ljava/lang/Object; } public class org/partiql/ast/v1/DataType : org/partiql/ast/v1/Enum { public static final field BAG I public static final field BIGINT I + public static final field BINARY_LARGE_OBJECT I public static final field BIT I public static final field BIT_VARYING I public static final field BLOB I @@ -5660,7 +5659,10 @@ public class org/partiql/ast/v1/DataType : org/partiql/ast/v1/Enum { public static final field BOOLEAN I public static final field CHAR I public static final field CHARACTER I + public static final field CHARACTER_LARGE_OBJECT I public static final field CHARACTER_VARYING I + public static final field CHAR_LARGE_OBJECT I + public static final field CHAR_VARYING I public static final field CLOB I public static final field DATE I public static final field DEC I @@ -5697,6 +5699,8 @@ public class org/partiql/ast/v1/DataType : org/partiql/ast/v1/Enum { public static final field VARCHAR I public static fun BAG ()Lorg/partiql/ast/v1/DataType; public static fun BIGINT ()Lorg/partiql/ast/v1/DataType; + public static fun BINARY_LARGE_OBJECT ()Lorg/partiql/ast/v1/DataType; + public static fun BINARY_LARGE_OBJECT (I)Lorg/partiql/ast/v1/DataType; public static fun BIT ()Lorg/partiql/ast/v1/DataType; public static fun BIT (I)Lorg/partiql/ast/v1/DataType; public static fun BIT_VARYING ()Lorg/partiql/ast/v1/DataType; @@ -5709,8 +5713,14 @@ public class org/partiql/ast/v1/DataType : org/partiql/ast/v1/Enum { public static fun CHAR (I)Lorg/partiql/ast/v1/DataType; public static fun CHARACTER ()Lorg/partiql/ast/v1/DataType; public static fun CHARACTER (I)Lorg/partiql/ast/v1/DataType; + public static fun CHARACTER_LARGE_OBJECT ()Lorg/partiql/ast/v1/DataType; + public static fun CHARACTER_LARGE_OBJECT (I)Lorg/partiql/ast/v1/DataType; public static fun CHARACTER_VARYING ()Lorg/partiql/ast/v1/DataType; public static fun CHARACTER_VARYING (I)Lorg/partiql/ast/v1/DataType; + public static fun CHAR_LARGE_OBJECT ()Lorg/partiql/ast/v1/DataType; + public static fun CHAR_LARGE_OBJECT (I)Lorg/partiql/ast/v1/DataType; + public static fun CHAR_VARYING ()Lorg/partiql/ast/v1/DataType; + public static fun CHAR_VARYING (I)Lorg/partiql/ast/v1/DataType; public static fun CLOB ()Lorg/partiql/ast/v1/DataType; public static fun CLOB (I)Lorg/partiql/ast/v1/DataType; public static fun DATE ()Lorg/partiql/ast/v1/DataType; @@ -5720,6 +5730,7 @@ public class org/partiql/ast/v1/DataType : org/partiql/ast/v1/Enum { public static fun DECIMAL (II)Lorg/partiql/ast/v1/DataType; public static fun DOUBLE_PRECISION ()Lorg/partiql/ast/v1/DataType; public static fun FLOAT ()Lorg/partiql/ast/v1/DataType; + public static fun FLOAT (I)Lorg/partiql/ast/v1/DataType; public static fun INT ()Lorg/partiql/ast/v1/DataType; public static fun INT2 ()Lorg/partiql/ast/v1/DataType; public static fun INT4 ()Lorg/partiql/ast/v1/DataType; @@ -5753,7 +5764,7 @@ public class org/partiql/ast/v1/DataType : org/partiql/ast/v1/Enum { public static fun TINYINT ()Lorg/partiql/ast/v1/DataType; public static fun TUPLE ()Lorg/partiql/ast/v1/DataType; public static fun UNKNOWN ()Lorg/partiql/ast/v1/DataType; - public static fun USER_DEFINED ()Lorg/partiql/ast/v1/DataType; + public static fun USER_DEFINED (Lorg/partiql/ast/v1/IdentifierChain;)Lorg/partiql/ast/v1/DataType; public static fun VARCHAR ()Lorg/partiql/ast/v1/DataType; public static fun VARCHAR (I)Lorg/partiql/ast/v1/DataType; public fun code ()I @@ -5831,8 +5842,9 @@ public class org/partiql/ast/v1/ExcludeStep$StructWildcard : org/partiql/ast/v1/ } public class org/partiql/ast/v1/Explain : org/partiql/ast/v1/Statement { - public field target Lorg/partiql/ast/v1/Target; - public fun (Lorg/partiql/ast/v1/Target;)V + public field options Ljava/util/Map; + public field statement Lorg/partiql/ast/v1/Statement; + public fun (Ljava/util/Map;Lorg/partiql/ast/v1/Statement;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } @@ -5842,6 +5854,17 @@ public abstract class org/partiql/ast/v1/From : org/partiql/ast/v1/AstNode { public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } +public class org/partiql/ast/v1/FromExpr : org/partiql/ast/v1/From { + public field asAlias Lorg/partiql/ast/v1/Identifier; + public field atAlias Lorg/partiql/ast/v1/Identifier; + public field byAlias Lorg/partiql/ast/v1/Identifier; + public field expr Lorg/partiql/ast/v1/expr/Expr; + public field fromType Lorg/partiql/ast/v1/FromType; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/FromType;Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + public class org/partiql/ast/v1/FromJoin : org/partiql/ast/v1/From { public field condition Lorg/partiql/ast/v1/expr/Expr; public field joinType Lorg/partiql/ast/v1/JoinType; @@ -5862,17 +5885,6 @@ public class org/partiql/ast/v1/FromType : org/partiql/ast/v1/Enum { public fun code ()I } -public class org/partiql/ast/v1/FromValue : org/partiql/ast/v1/From { - public field asAlias Lorg/partiql/ast/v1/Identifier; - public field atAlias Lorg/partiql/ast/v1/Identifier; - public field byAlias Lorg/partiql/ast/v1/Identifier; - public field expr Lorg/partiql/ast/v1/expr/Expr; - public field fromType Lorg/partiql/ast/v1/FromType; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/FromType;Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - public class org/partiql/ast/v1/GroupBy : org/partiql/ast/v1/AstNode { public field asAlias Lorg/partiql/ast/v1/Identifier; public field keys Ljava/util/List; @@ -5994,7 +6006,7 @@ public class org/partiql/ast/v1/ProjectItem$All : org/partiql/ast/v1/ProjectItem public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/ProjectItem$Expression : org/partiql/ast/v1/ProjectItem { +public class org/partiql/ast/v1/ProjectItem$Expr : org/partiql/ast/v1/ProjectItem { public field asAlias Lorg/partiql/ast/v1/Identifier; public field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier;)V @@ -6112,20 +6124,6 @@ public abstract class org/partiql/ast/v1/Statement : org/partiql/ast/v1/AstNode public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public abstract class org/partiql/ast/v1/Target : org/partiql/ast/v1/AstNode { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; -} - -public class org/partiql/ast/v1/Target$Domain : org/partiql/ast/v1/Target { - public field format Ljava/lang/String; - public field statement Lorg/partiql/ast/v1/Statement; - public field type Ljava/lang/String; - public fun (Lorg/partiql/ast/v1/Statement;Ljava/lang/String;Ljava/lang/String;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - public abstract class org/partiql/ast/v1/expr/Expr : org/partiql/ast/v1/AstNode { public fun ()V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/AstNode.java b/partiql-ast/src/main/java/org/partiql/ast/v1/AstNode.java index 232ca783f6..c192ae9e0c 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/AstNode.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/AstNode.java @@ -7,6 +7,7 @@ /** * TODO docs, equals, hashcode + * TODO support source location -- https://github.com/partiql/partiql-lang-kotlin/issues/1608 */ public abstract class AstNode { @NotNull diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java index 422fc35d6e..ea7173cd9d 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java @@ -49,10 +49,6 @@ public interface AstVisitor { R visitExplain(Explain node, C ctx); - R visitTarget(Target node, C ctx); - - R visitTargetDomain(Target.Domain node, C ctx); - R visitIdentifier(Identifier node, C ctx); R visitIdentifierChain(IdentifierChain node, C ctx); @@ -155,7 +151,7 @@ public interface AstVisitor { R visitProjectItemAll(ProjectItem.All node, C ctx); - R visitProjectItemExpression(ProjectItem.Expression node, C ctx); + R visitProjectItemExpr(ProjectItem.Expr node, C ctx); R visitSelectPivot(SelectPivot node, C ctx); @@ -177,7 +173,7 @@ public interface AstVisitor { R visitFrom(From node, C ctx); - R visitFromValue(FromValue node, C ctx); + R visitFromExpr(FromExpr node, C ctx); R visitFromJoin(FromJoin node, C ctx); diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java index 9610afdef7..c0f632524d 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java @@ -2,49 +2,65 @@ public class DataType implements Enum { public static final int UNKNOWN = 0; + // public static final int NULL = 1; public static final int MISSING = 2; - public static final int BOOL = 3; - public static final int BOOLEAN = 4; - public static final int TINYINT = 5; // TODO not defined in parser yet - public static final int SMALLINT = 6; - public static final int INTEGER2 = 7; - public static final int INT2 = 8; - public static final int INTEGER = 9; - public static final int INT = 10; - public static final int INTEGER4 = 11; - public static final int INT4 = 12; - public static final int INTEGER8 = 13; - public static final int INT8 = 14; - public static final int BIGINT = 15; - public static final int REAL = 16; - public static final int DOUBLE_PRECISION = 17; - public static final int FLOAT = 18; - public static final int DECIMAL = 19; - public static final int DEC = 20; - public static final int NUMERIC = 21; - public static final int BIT = 22; // TODO not defined in parser yet - public static final int BIT_VARYING = 23; // TODO not defined in parser yet - public static final int CHAR = 24; - public static final int CHARACTER = 25; - public static final int VARCHAR = 26; - public static final int CHARACTER_VARYING = 27; - public static final int STRING = 28; - public static final int SYMBOL = 29; - public static final int BLOB = 30; - public static final int CLOB = 31; - public static final int DATE = 32; - public static final int STRUCT = 33; - public static final int TUPLE = 34; - public static final int LIST = 35; - public static final int SEXP = 36; - public static final int BAG = 37; - public static final int TIME = 38; + // + public static final int CHARACTER = 3; + public static final int CHAR = 4; + public static final int CHARACTER_VARYING = 5; + public static final int CHAR_VARYING = 6; // TODO not defined in parser yet + public static final int VARCHAR = 7; + public static final int CHARACTER_LARGE_OBJECT = 8; // TODO not defined in parser yet + public static final int CHAR_LARGE_OBJECT = 9; // TODO not defined in parser yet + public static final int CLOB = 10; + public static final int STRING = 11; + public static final int SYMBOL = 12; + // + public static final int BLOB = 13; + public static final int BINARY_LARGE_OBJECT = 14; // TODO not defined in parser yet + // + public static final int BIT = 15; // TODO not defined in parser yet + public static final int BIT_VARYING = 16; // TODO not defined in parser yet + // - + public static final int NUMERIC = 17; + public static final int DECIMAL = 18; + public static final int DEC = 19; + public static final int BIGINT = 20; + public static final int INT8 = 21; + public static final int INTEGER8 = 22; + public static final int INT4 = 23; + public static final int INTEGER4 = 24; + public static final int INTEGER = 25; + public static final int INT = 26; + public static final int INT2 = 27; + public static final int INTEGER2 = 28; + public static final int SMALLINT = 29; + public static final int TINYINT = 30; // TODO not defined in parser yet + // - + public static final int FLOAT = 31; + public static final int REAL = 32; + public static final int DOUBLE_PRECISION = 33; + // + public static final int BOOLEAN = 34; + public static final int BOOL = 35; + // + public static final int DATE = 36; + public static final int TIME = 37; + public static final int TIME_WITH_TIME_ZONE = 38; public static final int TIMESTAMP = 39; - public static final int TIME_WITH_TIME_ZONE = 40; - public static final int TIMESTAMP_WITH_TIME_ZONE = 41; - public static final int INTERVAL = 42; // TODO not defined in parser yet - public static final int USER_DEFINED = 43; + public static final int TIMESTAMP_WITH_TIME_ZONE = 40; + // + public static final int INTERVAL = 41; // TODO not defined in parser yet + // + public static final int STRUCT = 42; + public static final int TUPLE = 43; + // + public static final int LIST = 44; + public static final int BAG = 45; + public static final int SEXP = 46; + // + public static final int USER_DEFINED = 47; public static DataType UNKNOWN() { return new DataType(UNKNOWN); @@ -122,6 +138,10 @@ public static DataType FLOAT() { return new DataType(FLOAT); } + public static DataType FLOAT(int precision) { + return new DataType(FLOAT, precision, null, null); + } + public static DataType DECIMAL() { return new DataType(DECIMAL); } @@ -190,10 +210,34 @@ public static DataType VARCHAR(int length) { return new DataType(VARCHAR, null, null, length); } + public static DataType CHARACTER_LARGE_OBJECT() { + return new DataType(CHARACTER_LARGE_OBJECT); + } + + public static DataType CHARACTER_LARGE_OBJECT(int length) { + return new DataType(CHARACTER_LARGE_OBJECT, null, null, length); + } + + public static DataType CHAR_LARGE_OBJECT() { + return new DataType(CHAR_LARGE_OBJECT); + } + + public static DataType CHAR_LARGE_OBJECT(int length) { + return new DataType(CHAR_LARGE_OBJECT, null, null, length); + } + public static DataType CHARACTER_VARYING() { return new DataType(CHARACTER_VARYING); } + public static DataType CHAR_VARYING() { + return new DataType(CHAR_VARYING); + } + + public static DataType CHAR_VARYING(int length) { + return new DataType(CHAR_VARYING, null, null, length); + } + public static DataType CHARACTER_VARYING(int length) { return new DataType(CHARACTER_VARYING, null, null, length); } @@ -218,6 +262,14 @@ public static DataType BLOB(int length) { return new DataType(BLOB, null, null, length); } + public static DataType BINARY_LARGE_OBJECT() { + return new DataType(BINARY_LARGE_OBJECT); + } + + public static DataType BINARY_LARGE_OBJECT(int length) { + return new DataType(BINARY_LARGE_OBJECT, null, null, length); + } + public static DataType CLOB() { return new DataType(CLOB); } @@ -286,14 +338,15 @@ public static DataType INTERVAL() { return new DataType(INTERVAL); } - public static DataType USER_DEFINED() { - return new DataType(USER_DEFINED); + public static DataType USER_DEFINED(IdentifierChain name) { + return new DataType(USER_DEFINED, name); } private final int code; private final Integer precision; private final Integer scale; private final Integer length; + private final IdentifierChain name; // Private constructor for no parameter DataTypes private DataType(int code) { @@ -301,14 +354,25 @@ private DataType(int code) { this.precision = null; this.scale = null; this.length = null; + this.name = null; } - // Private constructor for DataTypes with parameters + // Private constructor for DataTypes with Integer parameters; set `name` to null private DataType(int code, Integer precision, Integer scale, Integer length) { this.code = code; this.precision = precision; this.scale = scale; this.length = length; + this.name = null; + } + + // Private constructor for user-defined type w/ an `IdentifierChain` `name`; other parameters set to null + private DataType(int code, IdentifierChain name) { + this.code = code; + this.name = name; + this.precision = null; + this.scale = null; + this.length = null; } @Override diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Explain.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Explain.java index eede3e764f..a89a1c40d7 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/Explain.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Explain.java @@ -1,27 +1,34 @@ package org.partiql.ast.v1; import org.jetbrains.annotations.NotNull; +import org.partiql.value.PartiQLValue; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Map; /** * TODO docs, equals, hashcode */ public class Explain extends Statement { + // TODO get rid of PartiQLValue once https://github.com/partiql/partiql-lang-kotlin/issues/1589 is resolved @NotNull - public Target target; + public Map options; - public Explain(@NotNull Target target) { - this.target = target; + @NotNull + public Statement statement; + + public Explain(@NotNull Map options, @NotNull Statement statement) { + this.options = options; + this.statement = statement; } @NotNull @Override public Collection children() { List kids = new ArrayList<>(); - kids.add(target); + kids.add(statement); return kids; } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/From.java b/partiql-ast/src/main/java/org/partiql/ast/v1/From.java index f82a41da6b..92f43bb9c4 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/From.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/From.java @@ -8,8 +8,8 @@ public abstract class From extends AstNode { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - if (this instanceof FromValue) { - return visitor.visitFromValue((FromValue) this, ctx); + if (this instanceof FromExpr) { + return visitor.visitFromExpr((FromExpr) this, ctx); } else if (this instanceof FromJoin) { return visitor.visitFromJoin((FromJoin) this, ctx); } else { diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/FromValue.java b/partiql-ast/src/main/java/org/partiql/ast/v1/FromExpr.java similarity index 80% rename from partiql-ast/src/main/java/org/partiql/ast/v1/FromValue.java rename to partiql-ast/src/main/java/org/partiql/ast/v1/FromExpr.java index b7198b9ab8..e9f2ba9004 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/FromValue.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/FromExpr.java @@ -11,7 +11,7 @@ /** * TODO docs, equals, hashcode */ -public class FromValue extends From { +public class FromExpr extends From { @NotNull public Expr expr; @@ -30,8 +30,8 @@ public class FromValue extends From { @Nullable public Identifier byAlias; - public FromValue(@NotNull Expr expr, @NotNull FromType fromType, @Nullable Identifier asAlias, - @Nullable Identifier atAlias, @Nullable Identifier byAlias) { + public FromExpr(@NotNull Expr expr, @NotNull FromType fromType, @Nullable Identifier asAlias, + @Nullable Identifier atAlias, @Nullable Identifier byAlias) { this.expr = expr; this.fromType = fromType; this.asAlias = asAlias; @@ -52,6 +52,6 @@ public Collection children() { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitFromValue(this, ctx); + return visitor.visitFromExpr(this, ctx); } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java b/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java index d8cebe51d8..e3e8ad049f 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java @@ -2,7 +2,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.partiql.ast.v1.expr.Expr; import java.util.ArrayList; import java.util.Collection; @@ -16,8 +15,8 @@ public abstract class ProjectItem extends AstNode { public R accept(@NotNull AstVisitor visitor, C ctx) { if (this instanceof All) { return visitor.visitProjectItemAll((All) this, ctx); - } else if (this instanceof Expression) { - return visitor.visitProjectItemExpression((Expression) this, ctx); + } else if (this instanceof Expr) { + return visitor.visitProjectItemExpr((Expr) this, ctx); } else { throw new IllegalStateException("Unexpected value: " + this); } @@ -28,9 +27,9 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { */ public static class All extends ProjectItem { @NotNull - public Expr expr; + public org.partiql.ast.v1.expr.Expr expr; - public All(@NotNull Expr expr) { + public All(@NotNull org.partiql.ast.v1.expr.Expr expr) { this.expr = expr; } @@ -51,17 +50,17 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { /** * TODO docs, equals, hashcode */ - public static class Expression extends ProjectItem { + public static class Expr extends ProjectItem { @NotNull - public Expr expr; + public org.partiql.ast.v1.expr.Expr expr; @Nullable public Identifier asAlias; - public Expression(@NotNull Expr expr, @Nullable Identifier asAlias) { - this.expr = expr; - this.asAlias = asAlias; - } + public Expr(@NotNull org.partiql.ast.v1.expr.Expr expr, @Nullable Identifier asAlias) { + this.expr = expr; + this.asAlias = asAlias; + } @NotNull @Override @@ -76,7 +75,7 @@ public Collection children() { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitProjectItemExpression(this, ctx); + return visitor.visitProjectItemExpr(this, ctx); } } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Target.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Target.java deleted file mode 100644 index 161457b291..0000000000 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/Target.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.partiql.ast.v1; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -/** - * TODO docs, equals, hashcode - */ -public abstract class Target extends AstNode { - @Override - public R accept(@NotNull AstVisitor visitor, C ctx) { - if (this instanceof Domain) { - return visitor.visitTargetDomain((Domain) this, ctx); - } else { - throw new IllegalStateException("Unexpected value: " + this); - } - } - - /** - * TODO docs, equals, hashcode - */ - public static class Domain extends Target { - @NotNull - public Statement statement; - - @Nullable - public String type; - - @Nullable - public String format; - - public Domain(@NotNull Statement statement, @Nullable String type, @Nullable String format) { - this.statement = statement; - this.type = type; - this.format = format; - } - - @NotNull - @Override - public Collection children() { - List kids = new ArrayList<>(); - kids.add(statement); - return kids; - } - - @Override - public R accept(@NotNull AstVisitor < R, C > visitor, C ctx) { - return visitor.visitTargetDomain(this, ctx); - } - } -} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLit.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLit.java index d26d213acb..77d70cf04d 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLit.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprLit.java @@ -13,7 +13,7 @@ */ public class ExprLit extends Expr { @NotNull - public PartiQLValue value; + public PartiQLValue value; // This representation be changed in https://github.com/partiql/partiql-lang-kotlin/issues/1589 public ExprLit(@NotNull PartiQLValue value) { this.value = value; From 5e2e316d768deae09198918f0ddf87589d95eafe Mon Sep 17 00:00:00 2001 From: Alan Cai Date: Mon, 7 Oct 2024 07:09:30 -0700 Subject: [PATCH 08/11] Select renaming --- partiql-ast/api/partiql-ast.api | 58 +++++++++---------- .../java/org/partiql/ast/v1/AstVisitor.java | 8 +-- .../main/java/org/partiql/ast/v1/Select.java | 4 +- .../v1/{ProjectItem.java => SelectItem.java} | 12 ++-- .../{SelectProject.java => SelectList.java} | 6 +- 5 files changed, 44 insertions(+), 44 deletions(-) rename partiql-ast/src/main/java/org/partiql/ast/v1/{ProjectItem.java => SelectItem.java} (85%) rename partiql-ast/src/main/java/org/partiql/ast/v1/{SelectProject.java => SelectList.java} (78%) diff --git a/partiql-ast/api/partiql-ast.api b/partiql-ast/api/partiql-ast.api index 5c44d2dece..314b416858 100644 --- a/partiql-ast/api/partiql-ast.api +++ b/partiql-ast/api/partiql-ast.api @@ -5631,16 +5631,16 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitPathStepAllFields (Lorg/partiql/ast/v1/expr/PathStep$AllFields;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitPathStepElement (Lorg/partiql/ast/v1/expr/PathStep$Element;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitPathStepField (Lorg/partiql/ast/v1/expr/PathStep$Field;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitProjectItem (Lorg/partiql/ast/v1/ProjectItem;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitProjectItemAll (Lorg/partiql/ast/v1/ProjectItem$All;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitProjectItemExpr (Lorg/partiql/ast/v1/ProjectItem$Expr;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitProjectItem (Lorg/partiql/ast/v1/SelectItem;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitProjectItemAll (Lorg/partiql/ast/v1/SelectItem$Star;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitProjectItemExpr (Lorg/partiql/ast/v1/SelectItem$Expr;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQuery (Lorg/partiql/ast/v1/Query;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQueryBody (Lorg/partiql/ast/v1/QueryBody;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQueryBodySFW (Lorg/partiql/ast/v1/QueryBody$SFW;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQueryBodySetOp (Lorg/partiql/ast/v1/QueryBody$SetOp;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSelect (Lorg/partiql/ast/v1/Select;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSelectPivot (Lorg/partiql/ast/v1/SelectPivot;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitSelectProject (Lorg/partiql/ast/v1/SelectProject;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectProject (Lorg/partiql/ast/v1/SelectList;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSelectStar (Lorg/partiql/ast/v1/SelectStar;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSelectValue (Lorg/partiql/ast/v1/SelectValue;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSetOp (Lorg/partiql/ast/v1/SetOp;Ljava/lang/Object;)Ljava/lang/Object; @@ -5994,26 +5994,6 @@ public class org/partiql/ast/v1/OrderBy : org/partiql/ast/v1/AstNode { public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/ProjectItem : org/partiql/ast/v1/AstNode { - public fun ()V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; -} - -public class org/partiql/ast/v1/ProjectItem$All : org/partiql/ast/v1/ProjectItem { - public field expr Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - -public class org/partiql/ast/v1/ProjectItem$Expr : org/partiql/ast/v1/ProjectItem { - public field asAlias Lorg/partiql/ast/v1/Identifier; - public field expr Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier;)V - public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; - public fun children ()Ljava/util/Collection; -} - public class org/partiql/ast/v1/Query : org/partiql/ast/v1/Statement { public field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;)V @@ -6053,15 +6033,27 @@ public abstract class org/partiql/ast/v1/Select : org/partiql/ast/v1/AstNode { public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; } -public class org/partiql/ast/v1/SelectPivot : org/partiql/ast/v1/Select { - public field key Lorg/partiql/ast/v1/expr/Expr; - public field value Lorg/partiql/ast/v1/expr/Expr; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V +public abstract class org/partiql/ast/v1/SelectItem : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + +public class org/partiql/ast/v1/SelectItem$Expr : org/partiql/ast/v1/SelectItem { + public field asAlias Lorg/partiql/ast/v1/Identifier; + public field expr Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/Identifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/SelectProject : org/partiql/ast/v1/Select { +public class org/partiql/ast/v1/SelectItem$Star : org/partiql/ast/v1/SelectItem { + public field expr Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + +public class org/partiql/ast/v1/SelectList : org/partiql/ast/v1/Select { public field items Ljava/util/List; public field setq Lorg/partiql/ast/v1/SetQuantifier; public fun (Ljava/util/List;Lorg/partiql/ast/v1/SetQuantifier;)V @@ -6069,6 +6061,14 @@ public class org/partiql/ast/v1/SelectProject : org/partiql/ast/v1/Select { public fun children ()Ljava/util/Collection; } +public class org/partiql/ast/v1/SelectPivot : org/partiql/ast/v1/Select { + public field key Lorg/partiql/ast/v1/expr/Expr; + public field value Lorg/partiql/ast/v1/expr/Expr; + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; +} + public class org/partiql/ast/v1/SelectStar : org/partiql/ast/v1/Select { public field setq Lorg/partiql/ast/v1/SetQuantifier; public fun (Lorg/partiql/ast/v1/SetQuantifier;)V diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java index ea7173cd9d..2f71b8b7d7 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java @@ -145,13 +145,13 @@ public interface AstVisitor { R visitSelectStar(SelectStar node, C ctx); - R visitSelectProject(SelectProject node, C ctx); + R visitSelectProject(SelectList node, C ctx); - R visitProjectItem(ProjectItem node, C ctx); + R visitProjectItem(SelectItem node, C ctx); - R visitProjectItemAll(ProjectItem.All node, C ctx); + R visitProjectItemAll(SelectItem.Star node, C ctx); - R visitProjectItemExpr(ProjectItem.Expr node, C ctx); + R visitProjectItemExpr(SelectItem.Expr node, C ctx); R visitSelectPivot(SelectPivot node, C ctx); diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Select.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Select.java index 7668deb0b4..5561d7ce1d 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/Select.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Select.java @@ -10,8 +10,8 @@ public abstract class Select extends AstNode { public R accept(@NotNull AstVisitor visitor, C ctx) { if (this instanceof SelectStar) { return visitor.visitSelectStar((SelectStar) this, ctx); - } else if (this instanceof SelectProject) { - return visitor.visitSelectProject((SelectProject) this, ctx); + } else if (this instanceof SelectList) { + return visitor.visitSelectProject((SelectList) this, ctx); } else if (this instanceof SelectPivot) { return visitor.visitSelectPivot((SelectPivot) this, ctx); } else if (this instanceof SelectValue) { diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectItem.java similarity index 85% rename from partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java rename to partiql-ast/src/main/java/org/partiql/ast/v1/SelectItem.java index e3e8ad049f..57bf9b06b9 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/ProjectItem.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectItem.java @@ -10,11 +10,11 @@ /** * TODO docs, equals, hashcode */ -public abstract class ProjectItem extends AstNode { +public abstract class SelectItem extends AstNode { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - if (this instanceof All) { - return visitor.visitProjectItemAll((All) this, ctx); + if (this instanceof Star) { + return visitor.visitProjectItemAll((Star) this, ctx); } else if (this instanceof Expr) { return visitor.visitProjectItemExpr((Expr) this, ctx); } else { @@ -25,11 +25,11 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { /** * TODO docs, equals, hashcode */ - public static class All extends ProjectItem { + public static class Star extends SelectItem { @NotNull public org.partiql.ast.v1.expr.Expr expr; - public All(@NotNull org.partiql.ast.v1.expr.Expr expr) { + public Star(@NotNull org.partiql.ast.v1.expr.Expr expr) { this.expr = expr; } @@ -50,7 +50,7 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { /** * TODO docs, equals, hashcode */ - public static class Expr extends ProjectItem { + public static class Expr extends SelectItem { @NotNull public org.partiql.ast.v1.expr.Expr expr; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/SelectProject.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectList.java similarity index 78% rename from partiql-ast/src/main/java/org/partiql/ast/v1/SelectProject.java rename to partiql-ast/src/main/java/org/partiql/ast/v1/SelectList.java index a89b791c71..83f8fc8dd1 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/SelectProject.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectList.java @@ -10,14 +10,14 @@ /** * TODO docs, equals, hashcode */ -public class SelectProject extends Select { +public class SelectList extends Select { @NotNull - public List items; + public List items; @Nullable public SetQuantifier setq; - public SelectProject(@NotNull List items, @Nullable SetQuantifier setq) { + public SelectList(@NotNull List items, @Nullable SetQuantifier setq) { this.items = items; this.setq = setq; } From c8808c340984658ad94c8a71a6feb2591e8f9021 Mon Sep 17 00:00:00 2001 From: Alan Cai Date: Mon, 7 Oct 2024 14:41:17 -0400 Subject: [PATCH 09/11] Make non-enum classes mutable --- partiql-ast/api/partiql-ast.api | 28 +++++++++---------- .../org/partiql/ast/v1/expr/ExprArray.java | 2 +- .../java/org/partiql/ast/v1/expr/ExprBag.java | 2 +- .../org/partiql/ast/v1/expr/ExprBetween.java | 8 +++--- .../org/partiql/ast/v1/expr/ExprCase.java | 10 +++---- .../org/partiql/ast/v1/expr/ExprCast.java | 4 +-- .../org/partiql/ast/v1/expr/ExprCoalesce.java | 2 +- 7 files changed, 28 insertions(+), 28 deletions(-) diff --git a/partiql-ast/api/partiql-ast.api b/partiql-ast/api/partiql-ast.api index 314b416858..bd278eccc7 100644 --- a/partiql-ast/api/partiql-ast.api +++ b/partiql-ast/api/partiql-ast.api @@ -6138,24 +6138,24 @@ public class org/partiql/ast/v1/expr/ExprAnd : org/partiql/ast/v1/expr/Expr { } public class org/partiql/ast/v1/expr/ExprArray : org/partiql/ast/v1/expr/Expr { - public final field values Ljava/util/List; + public field values Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } public class org/partiql/ast/v1/expr/ExprBag : org/partiql/ast/v1/expr/Expr { - public final field values Ljava/util/List; + public field values Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } public class org/partiql/ast/v1/expr/ExprBetween : org/partiql/ast/v1/expr/Expr { - public final field from Lorg/partiql/ast/v1/expr/Expr; - public final field not Z - public final field to Lorg/partiql/ast/v1/expr/Expr; - public final field value Lorg/partiql/ast/v1/expr/Expr; + public field from Lorg/partiql/ast/v1/expr/Expr; + public field not Z + public field to Lorg/partiql/ast/v1/expr/Expr; + public field value Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;Z)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; @@ -6171,32 +6171,32 @@ public class org/partiql/ast/v1/expr/ExprCall : org/partiql/ast/v1/expr/Expr { } public class org/partiql/ast/v1/expr/ExprCase : org/partiql/ast/v1/expr/Expr { - public final field branches Ljava/util/List; - public final field defaultExpr Lorg/partiql/ast/v1/expr/Expr; - public final field expr Lorg/partiql/ast/v1/expr/Expr; + public field branches Ljava/util/List; + public field defaultExpr Lorg/partiql/ast/v1/expr/Expr; + public field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Ljava/util/List;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } public class org/partiql/ast/v1/expr/ExprCase$Branch : org/partiql/ast/v1/AstNode { - public final field condition Lorg/partiql/ast/v1/expr/Expr; - public final field expr Lorg/partiql/ast/v1/expr/Expr; + public field condition Lorg/partiql/ast/v1/expr/Expr; + public field expr Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/expr/Expr;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } public class org/partiql/ast/v1/expr/ExprCast : org/partiql/ast/v1/expr/Expr { - public final field asType Lorg/partiql/ast/v1/DataType; - public final field value Lorg/partiql/ast/v1/expr/Expr; + public field asType Lorg/partiql/ast/v1/DataType; + public field value Lorg/partiql/ast/v1/expr/Expr; public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/DataType;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } public class org/partiql/ast/v1/expr/ExprCoalesce : org/partiql/ast/v1/expr/Expr { - public final field args Ljava/util/List; + public field args Ljava/util/List; public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprArray.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprArray.java index c2324cc502..ecc1d8442b 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprArray.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprArray.java @@ -13,7 +13,7 @@ */ public class ExprArray extends Expr { @NotNull - public final List values; + public List values; public ExprArray(@NotNull List values) { this.values = values; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBag.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBag.java index efa0dfea59..cb3a50aba6 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBag.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBag.java @@ -13,7 +13,7 @@ */ public class ExprBag extends Expr { @NotNull - public final List values; + public List values; public ExprBag(@NotNull List values) { this.values = values; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java index a446ed206e..78d3b1e4ac 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprBetween.java @@ -13,15 +13,15 @@ */ public class ExprBetween extends Expr { @NotNull - public final Expr value; + public Expr value; @NotNull - public final Expr from; + public Expr from; @NotNull - public final Expr to; + public Expr to; - public final boolean not; + public boolean not; public ExprBetween(@NotNull Expr value, @NotNull Expr from, @NotNull Expr to, boolean not) { this.value = value; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCase.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCase.java index 1694a294c7..e2da2ef75e 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCase.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCase.java @@ -14,13 +14,13 @@ */ public class ExprCase extends Expr { @Nullable - public final Expr expr; + public Expr expr; @NotNull - public final List branches; + public List branches; @Nullable - public final Expr defaultExpr; + public Expr defaultExpr; public ExprCase(@Nullable Expr expr, @NotNull List branches, @Nullable Expr defaultExpr) { this.expr = expr; @@ -52,10 +52,10 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { */ public static class Branch extends AstNode { @NotNull - public final Expr condition; + public Expr condition; @NotNull - public final Expr expr; + public Expr expr; public Branch(@NotNull Expr condition, @NotNull Expr expr) { this.condition = condition; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java index 96d7e4550f..6dd3d5d298 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCast.java @@ -14,10 +14,10 @@ */ public class ExprCast extends Expr { @NotNull - public final Expr value; + public Expr value; @NotNull - public final DataType asType; + public DataType asType; public ExprCast(@NotNull Expr value, @NotNull DataType asType) { this.value = value; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCoalesce.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCoalesce.java index acc07907ed..1020e850d2 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCoalesce.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCoalesce.java @@ -13,7 +13,7 @@ */ public class ExprCoalesce extends Expr { @NotNull - public final List args; + public List args; public ExprCoalesce(@NotNull List args) { this.args = args; From f01798fe3083a291c1ee0b1145be7e1774c336c5 Mon Sep 17 00:00:00 2001 From: Alan Cai Date: Mon, 7 Oct 2024 14:59:54 -0400 Subject: [PATCH 10/11] Rename for SELECT visitor functions --- partiql-ast/api/partiql-ast.api | 8 ++++---- .../src/main/java/org/partiql/ast/v1/AstVisitor.java | 8 ++++---- partiql-ast/src/main/java/org/partiql/ast/v1/Select.java | 2 +- .../src/main/java/org/partiql/ast/v1/SelectItem.java | 8 ++++---- .../src/main/java/org/partiql/ast/v1/SelectList.java | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/partiql-ast/api/partiql-ast.api b/partiql-ast/api/partiql-ast.api index bd278eccc7..552f454c02 100644 --- a/partiql-ast/api/partiql-ast.api +++ b/partiql-ast/api/partiql-ast.api @@ -5631,16 +5631,16 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitPathStepAllFields (Lorg/partiql/ast/v1/expr/PathStep$AllFields;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitPathStepElement (Lorg/partiql/ast/v1/expr/PathStep$Element;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitPathStepField (Lorg/partiql/ast/v1/expr/PathStep$Field;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitProjectItem (Lorg/partiql/ast/v1/SelectItem;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitProjectItemAll (Lorg/partiql/ast/v1/SelectItem$Star;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitProjectItemExpr (Lorg/partiql/ast/v1/SelectItem$Expr;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQuery (Lorg/partiql/ast/v1/Query;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQueryBody (Lorg/partiql/ast/v1/QueryBody;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQueryBodySFW (Lorg/partiql/ast/v1/QueryBody$SFW;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitQueryBodySetOp (Lorg/partiql/ast/v1/QueryBody$SetOp;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSelect (Lorg/partiql/ast/v1/Select;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectItem (Lorg/partiql/ast/v1/SelectItem;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectItemAll (Lorg/partiql/ast/v1/SelectItem$Star;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectItemExpr (Lorg/partiql/ast/v1/SelectItem$Expr;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitSelectList (Lorg/partiql/ast/v1/SelectList;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSelectPivot (Lorg/partiql/ast/v1/SelectPivot;Ljava/lang/Object;)Ljava/lang/Object; - public abstract fun visitSelectProject (Lorg/partiql/ast/v1/SelectList;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSelectStar (Lorg/partiql/ast/v1/SelectStar;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSelectValue (Lorg/partiql/ast/v1/SelectValue;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSetOp (Lorg/partiql/ast/v1/SetOp;Ljava/lang/Object;)Ljava/lang/Object; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java index 2f71b8b7d7..0b446efad5 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java @@ -145,13 +145,13 @@ public interface AstVisitor { R visitSelectStar(SelectStar node, C ctx); - R visitSelectProject(SelectList node, C ctx); + R visitSelectList(SelectList node, C ctx); - R visitProjectItem(SelectItem node, C ctx); + R visitSelectItem(SelectItem node, C ctx); - R visitProjectItemAll(SelectItem.Star node, C ctx); + R visitSelectItemAll(SelectItem.Star node, C ctx); - R visitProjectItemExpr(SelectItem.Expr node, C ctx); + R visitSelectItemExpr(SelectItem.Expr node, C ctx); R visitSelectPivot(SelectPivot node, C ctx); diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/Select.java b/partiql-ast/src/main/java/org/partiql/ast/v1/Select.java index 5561d7ce1d..275fbcf33e 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/Select.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/Select.java @@ -11,7 +11,7 @@ public R accept(@NotNull AstVisitor visitor, C ctx) { if (this instanceof SelectStar) { return visitor.visitSelectStar((SelectStar) this, ctx); } else if (this instanceof SelectList) { - return visitor.visitSelectProject((SelectList) this, ctx); + return visitor.visitSelectList((SelectList) this, ctx); } else if (this instanceof SelectPivot) { return visitor.visitSelectPivot((SelectPivot) this, ctx); } else if (this instanceof SelectValue) { diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/SelectItem.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectItem.java index 57bf9b06b9..c5f6422a77 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/SelectItem.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectItem.java @@ -14,9 +14,9 @@ public abstract class SelectItem extends AstNode { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { if (this instanceof Star) { - return visitor.visitProjectItemAll((Star) this, ctx); + return visitor.visitSelectItemAll((Star) this, ctx); } else if (this instanceof Expr) { - return visitor.visitProjectItemExpr((Expr) this, ctx); + return visitor.visitSelectItemExpr((Expr) this, ctx); } else { throw new IllegalStateException("Unexpected value: " + this); } @@ -43,7 +43,7 @@ public Collection children() { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitProjectItemAll(this, ctx); + return visitor.visitSelectItemAll(this, ctx); } } @@ -75,7 +75,7 @@ public Collection children() { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitProjectItemExpr(this, ctx); + return visitor.visitSelectItemExpr(this, ctx); } } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/SelectList.java b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectList.java index 83f8fc8dd1..e4ec73fc8a 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/SelectList.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/SelectList.java @@ -30,6 +30,6 @@ public Collection children() { @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - return visitor.visitSelectProject(this, ctx); + return visitor.visitSelectList(this, ctx); } } From cc9b60c30b68c41dbc8200ba93263038982c157a Mon Sep 17 00:00:00 2001 From: Alan Cai Date: Mon, 7 Oct 2024 16:26:51 -0400 Subject: [PATCH 11/11] Refactor FROM clause; address John's other feedback --- partiql-ast/api/partiql-ast.api | 25 ++++++++++----- .../java/org/partiql/ast/v1/AstVisitor.java | 2 ++ .../java/org/partiql/ast/v1/DataType.java | 32 +++++++++++++++++++ .../main/java/org/partiql/ast/v1/From.java | 27 +++++++++++----- .../java/org/partiql/ast/v1/FromExpr.java | 12 ++----- .../java/org/partiql/ast/v1/FromJoin.java | 2 +- .../java/org/partiql/ast/v1/FromTableRef.java | 19 +++++++++++ .../java/org/partiql/ast/v1/JoinType.java | 5 --- .../org/partiql/ast/v1/expr/ExprCall.java | 16 ++++++---- 9 files changed, 101 insertions(+), 39 deletions(-) create mode 100644 partiql-ast/src/main/java/org/partiql/ast/v1/FromTableRef.java diff --git a/partiql-ast/api/partiql-ast.api b/partiql-ast/api/partiql-ast.api index 552f454c02..a39e8ac48b 100644 --- a/partiql-ast/api/partiql-ast.api +++ b/partiql-ast/api/partiql-ast.api @@ -5646,6 +5646,7 @@ public abstract interface class org/partiql/ast/v1/AstVisitor { public abstract fun visitSetOp (Lorg/partiql/ast/v1/SetOp;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitSort (Lorg/partiql/ast/v1/Sort;Ljava/lang/Object;)Ljava/lang/Object; public abstract fun visitStatement (Lorg/partiql/ast/v1/Statement;Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun visitTableRef (Lorg/partiql/ast/v1/FromTableRef;Ljava/lang/Object;)Ljava/lang/Object; } public class org/partiql/ast/v1/DataType : org/partiql/ast/v1/Enum { @@ -5768,6 +5769,10 @@ public class org/partiql/ast/v1/DataType : org/partiql/ast/v1/Enum { public static fun VARCHAR ()Lorg/partiql/ast/v1/DataType; public static fun VARCHAR (I)Lorg/partiql/ast/v1/DataType; public fun code ()I + public fun getLength ()Ljava/lang/Integer; + public fun getName ()Lorg/partiql/ast/v1/IdentifierChain; + public fun getPrecision ()Ljava/lang/Integer; + public fun getScale ()Ljava/lang/Integer; } public class org/partiql/ast/v1/DatetimeField : org/partiql/ast/v1/Enum { @@ -5849,23 +5854,24 @@ public class org/partiql/ast/v1/Explain : org/partiql/ast/v1/Statement { public fun children ()Ljava/util/Collection; } -public abstract class org/partiql/ast/v1/From : org/partiql/ast/v1/AstNode { - public fun ()V +public class org/partiql/ast/v1/From : org/partiql/ast/v1/AstNode { + public field tableRefs Ljava/util/List; + public fun (Ljava/util/List;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; + public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/FromExpr : org/partiql/ast/v1/From { +public class org/partiql/ast/v1/FromExpr : org/partiql/ast/v1/FromTableRef { public field asAlias Lorg/partiql/ast/v1/Identifier; public field atAlias Lorg/partiql/ast/v1/Identifier; - public field byAlias Lorg/partiql/ast/v1/Identifier; public field expr Lorg/partiql/ast/v1/expr/Expr; public field fromType Lorg/partiql/ast/v1/FromType; - public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/FromType;Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;)V + public fun (Lorg/partiql/ast/v1/expr/Expr;Lorg/partiql/ast/v1/FromType;Lorg/partiql/ast/v1/Identifier;Lorg/partiql/ast/v1/Identifier;)V public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; public fun children ()Ljava/util/Collection; } -public class org/partiql/ast/v1/FromJoin : org/partiql/ast/v1/From { +public class org/partiql/ast/v1/FromJoin : org/partiql/ast/v1/FromTableRef { public field condition Lorg/partiql/ast/v1/expr/Expr; public field joinType Lorg/partiql/ast/v1/JoinType; public field lhs Lorg/partiql/ast/v1/From; @@ -5875,6 +5881,11 @@ public class org/partiql/ast/v1/FromJoin : org/partiql/ast/v1/From { public fun children ()Ljava/util/Collection; } +public abstract class org/partiql/ast/v1/FromTableRef : org/partiql/ast/v1/AstNode { + public fun ()V + public fun accept (Lorg/partiql/ast/v1/AstVisitor;Ljava/lang/Object;)Ljava/lang/Object; +} + public class org/partiql/ast/v1/FromType : org/partiql/ast/v1/Enum { public static final field SCAN I public static final field UNKNOWN I @@ -5929,7 +5940,6 @@ public class org/partiql/ast/v1/IdentifierChain : org/partiql/ast/v1/AstNode { } public class org/partiql/ast/v1/JoinType : org/partiql/ast/v1/Enum { - public static final field COMMA I public static final field CROSS I public static final field FULL I public static final field FULL_OUTER I @@ -5939,7 +5949,6 @@ public class org/partiql/ast/v1/JoinType : org/partiql/ast/v1/Enum { public static final field RIGHT I public static final field RIGHT_OUTER I public static final field UNKNOWN I - public static fun COMMA ()Lorg/partiql/ast/v1/JoinType; public static fun CROSS ()Lorg/partiql/ast/v1/JoinType; public static fun FULL ()Lorg/partiql/ast/v1/JoinType; public static fun FULL_OUTER ()Lorg/partiql/ast/v1/JoinType; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java index 0b446efad5..5848612d65 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/AstVisitor.java @@ -173,6 +173,8 @@ public interface AstVisitor { R visitFrom(From node, C ctx); + R visitTableRef(FromTableRef node, C ctx); + R visitFromExpr(FromExpr node, C ctx); R visitFromJoin(FromJoin node, C ctx); diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java index c0f632524d..bd2eb922c4 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/DataType.java @@ -379,4 +379,36 @@ private DataType(int code, IdentifierChain name) { public int code() { return code; } + + /** + * TODO docs + * @return + */ + public Integer getPrecision() { + return precision; + } + + /** + * TODO docs + * @return + */ + public Integer getScale() { + return scale; + } + + /** + * TODO docs + * @return + */ + public Integer getLength() { + return length; + } + + /** + * TODO docs + * @return + */ + public IdentifierChain getName() { + return name; + } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/From.java b/partiql-ast/src/main/java/org/partiql/ast/v1/From.java index 92f43bb9c4..1b36b5e52b 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/From.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/From.java @@ -2,18 +2,29 @@ import org.jetbrains.annotations.NotNull; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + /** * TODO docs, equals, hashcode */ -public abstract class From extends AstNode { +public class From extends AstNode { + @NotNull + public List tableRefs; + + public From(@NotNull List tableRefs) { + this.tableRefs = tableRefs; + } + + @NotNull + @Override + public Collection children() { + return new ArrayList<>(tableRefs); + } + @Override public R accept(@NotNull AstVisitor visitor, C ctx) { - if (this instanceof FromExpr) { - return visitor.visitFromExpr((FromExpr) this, ctx); - } else if (this instanceof FromJoin) { - return visitor.visitFromJoin((FromJoin) this, ctx); - } else { - throw new IllegalStateException("Unexpected value: " + this); - } + return visitor.visitFrom(this, ctx); } } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/FromExpr.java b/partiql-ast/src/main/java/org/partiql/ast/v1/FromExpr.java index e9f2ba9004..c213cfdb8f 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/FromExpr.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/FromExpr.java @@ -11,7 +11,7 @@ /** * TODO docs, equals, hashcode */ -public class FromExpr extends From { +public class FromExpr extends FromTableRef { @NotNull public Expr expr; @@ -24,19 +24,12 @@ public class FromExpr extends From { @Nullable public Identifier atAlias; - /** - * TODO get rid of `BY` - */ - @Nullable - public Identifier byAlias; - public FromExpr(@NotNull Expr expr, @NotNull FromType fromType, @Nullable Identifier asAlias, - @Nullable Identifier atAlias, @Nullable Identifier byAlias) { + @Nullable Identifier atAlias) { this.expr = expr; this.fromType = fromType; this.asAlias = asAlias; this.atAlias = atAlias; - this.byAlias = byAlias; } @NotNull @@ -46,7 +39,6 @@ public Collection children() { kids.add(expr); if (asAlias != null) kids.add(asAlias); if (atAlias != null) kids.add(atAlias); - if (byAlias != null) kids.add(byAlias); return kids; } diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java b/partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java index 7daaa5dfad..22c97c8112 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/FromJoin.java @@ -11,7 +11,7 @@ /** * TODO docs, equals, hashcode */ -public class FromJoin extends From { +public class FromJoin extends FromTableRef { @NotNull public From lhs; diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/FromTableRef.java b/partiql-ast/src/main/java/org/partiql/ast/v1/FromTableRef.java new file mode 100644 index 0000000000..fb50883503 --- /dev/null +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/FromTableRef.java @@ -0,0 +1,19 @@ +package org.partiql.ast.v1; + +import org.jetbrains.annotations.NotNull; + +/** + * TODO docs, equals, hashcode + */ +public abstract class FromTableRef extends AstNode { + @Override + public R accept(@NotNull AstVisitor visitor, C ctx) { + if (this instanceof FromExpr) { + return visitor.visitFromExpr((FromExpr) this, ctx); + } else if (this instanceof FromJoin) { + return visitor.visitFromJoin((FromJoin) this, ctx); + } else { + throw new IllegalStateException("Unexpected value: " + this); + } + } +} diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/JoinType.java b/partiql-ast/src/main/java/org/partiql/ast/v1/JoinType.java index 74a51b055c..fe89a3970f 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/JoinType.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/JoinType.java @@ -13,7 +13,6 @@ public class JoinType implements Enum { public static final int FULL = 6; public static final int FULL_OUTER = 7; public static final int CROSS = 8; - public static final int COMMA = 9; public static JoinType UNKNOWN() { return new JoinType(UNKNOWN); @@ -51,10 +50,6 @@ public static JoinType CROSS() { return new JoinType(CROSS); } - public static JoinType COMMA() { - return new JoinType(COMMA); - } - private final int code; private JoinType(int code) { diff --git a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java index 883c0c26c8..8ff18819c5 100644 --- a/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java +++ b/partiql-ast/src/main/java/org/partiql/ast/v1/expr/ExprCall.java @@ -1,6 +1,7 @@ package org.partiql.ast.v1.expr; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.partiql.ast.v1.AstNode; import org.partiql.ast.v1.AstVisitor; import org.partiql.ast.v1.IdentifierChain; @@ -14,11 +15,16 @@ * TODO docs, equals, hashcode */ public class ExprCall extends Expr { + @NotNull public IdentifierChain function; + + @NotNull public List args; + + @Nullable public SetQuantifier setq; - public ExprCall(IdentifierChain function, List args, SetQuantifier setq) { + public ExprCall(@NotNull IdentifierChain function, @NotNull List args, @Nullable SetQuantifier setq) { this.function = function; this.args = args; this.setq = setq; @@ -28,12 +34,8 @@ public ExprCall(IdentifierChain function, List args, SetQuantifier setq) { @Override public Collection children() { List kids = new ArrayList<>(); - if (function != null) { - kids.add(function); - } - if (args != null) { - kids.addAll(args); - } + kids.add(function); + kids.addAll(args); return kids; }