Package io.substrait.relation
Class RelProtoConverter
java.lang.Object
io.substrait.relation.RelProtoConverter
- All Implemented Interfaces:
RelVisitor<Rel,EmptyVisitationContext, RuntimeException>
public class RelProtoConverter
extends Object
implements RelVisitor<Rel,EmptyVisitationContext,RuntimeException>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final @NonNull ExpressionProtoConverterprotected final @NonNull ExtensionCollectorprotected final @NonNull ExtensionProtoConverter<?,?> protected final @NonNull TypeProtoConverter -
Constructor Summary
ConstructorsConstructorDescriptionRelProtoConverter(@NonNull ExtensionCollector extensionCollector) Constructor with customExtensionCollector.RelProtoConverter(@NonNull ExtensionCollector extensionCollector, @NonNull ExtensionProtoConverter<?, ?> extensionProtoConverter) Constructor with customExtensionCollectorand customExtensionProtoConverter. -
Method Summary
Modifier and TypeMethodDescriptionprotected ExpressiontoProto(Expression expression) protected Typeprotected List<Expression>toProto(List<Expression> expression) visit(Aggregate aggregate, EmptyVisitationContext context) Visit an aggregate relation.visit(ConsistentPartitionWindow consistentPartitionWindow, EmptyVisitationContext context) Visit a consistent partition window relation.visit(Cross cross, EmptyVisitationContext context) Visit a cross product relation.visit(Expand expand, EmptyVisitationContext context) Visit an expand relation (e.g., generators).visit(ExtensionDdl ddl, EmptyVisitationContext context) Visit an extension DDL relation.visit(ExtensionLeaf extensionLeaf, EmptyVisitationContext context) Visit an extension leaf relation.visit(ExtensionMulti extensionMulti, EmptyVisitationContext context) Visit an extension multi-input relation.visit(ExtensionSingle extensionSingle, EmptyVisitationContext context) Visit an extension single-input relation.visit(ExtensionTable extensionTable, EmptyVisitationContext context) Visit an extension table relation.visit(ExtensionWrite write, EmptyVisitationContext context) Visit an extension write relation.visit(Fetch fetch, EmptyVisitationContext context) Visit a fetch (limit/offset) relation.visit(Filter filter, EmptyVisitationContext context) Visit a filter relation.visit(Join join, EmptyVisitationContext context) Visit a logical join relation.visit(LocalFiles localFiles, EmptyVisitationContext context) Visit a local files scan relation.visit(NamedDdl ddl, EmptyVisitationContext context) Visit a named DDL relation.visit(NamedScan namedScan, EmptyVisitationContext context) Visit a named scan relation.visit(NamedUpdate update, EmptyVisitationContext context) Visit a named update relation.visit(NamedWrite write, EmptyVisitationContext context) Visit a named write relation.visit(BroadcastExchange exchange, EmptyVisitationContext context) Visit a broadcast exchange relation.visit(HashJoin hashJoin, EmptyVisitationContext context) Visit a physical hash join relation.visit(MergeJoin mergeJoin, EmptyVisitationContext context) Visit a physical merge join relation.visit(MultiBucketExchange exchange, EmptyVisitationContext context) Visit a multi-bucket exchange relation.visit(NestedLoopJoin nestedLoopJoin, EmptyVisitationContext context) Visit a physical nested loop join relation.visit(RoundRobinExchange exchange, EmptyVisitationContext context) Visit a round-robin exchange relation.visit(ScatterExchange exchange, EmptyVisitationContext context) Visit a scatter exchange relation.visit(SingleBucketExchange exchange, EmptyVisitationContext context) Visit a single-bucket exchange relation.visit(Project project, EmptyVisitationContext context) Visit a project relation.visit(Set set, EmptyVisitationContext context) Visit a set operation relation (e.g., UNION/INTERSECT).visit(Sort sort, EmptyVisitationContext context) Visit a sort relation.visit(VirtualTableScan virtualTableScan, EmptyVisitationContext context) Visit a virtual table scan relation.
-
Field Details
-
exprProtoConverter
-
typeProtoConverter
-
extensionProtoConverter
-
extensionCollector
-
-
Constructor Details
-
RelProtoConverter
Constructor with customExtensionCollector.- Parameters:
extensionCollector- the customExtensionCollectorto use, must not be null
-
RelProtoConverter
public RelProtoConverter(@NonNull ExtensionCollector extensionCollector, @NonNull ExtensionProtoConverter<?, ?> extensionProtoConverter) Constructor with customExtensionCollectorand customExtensionProtoConverter.- Parameters:
extensionCollector- the customExtensionCollectorto use, must not be nullextensionProtoConverter- the customExtensionProtoConverterto use, must not be null
-
-
Method Details
-
getExpressionProtoConverter
-
getTypeProtoConverter
-
toProto
-
toProto
-
toProto
-
toProto
-
toProto
-
visit
Description copied from interface:RelVisitorVisit an aggregate relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
aggregate- the aggregate nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a fetch (limit/offset) relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
fetch- the fetch nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a filter relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
filter- the filter nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a logical join relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
join- the join nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a set operation relation (e.g., UNION/INTERSECT).- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
set- the set nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a named scan relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
namedScan- the named scan nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a local files scan relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
localFiles- the local files nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
public Rel visit(ExtensionTable extensionTable, EmptyVisitationContext context) throws RuntimeException Description copied from interface:RelVisitorVisit an extension table relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
extensionTable- the extension table nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a physical hash join relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
hashJoin- the hash join nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a physical merge join relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
mergeJoin- the merge join nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
public Rel visit(NestedLoopJoin nestedLoopJoin, EmptyVisitationContext context) throws RuntimeException Description copied from interface:RelVisitorVisit a physical nested loop join relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
nestedLoopJoin- the nested loop join nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
public Rel visit(ConsistentPartitionWindow consistentPartitionWindow, EmptyVisitationContext context) throws RuntimeException Description copied from interface:RelVisitorVisit a consistent partition window relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
consistentPartitionWindow- the window nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a named write relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
write- the named write nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit an extension write relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
write- the extension write nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a named DDL relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
ddl- the named DDL nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit an extension DDL relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
ddl- the extension DDL nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a named update relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
update- the named update nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a scatter exchange relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
exchange- the scatter exchange nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
public Rel visit(SingleBucketExchange exchange, EmptyVisitationContext context) throws RuntimeException Description copied from interface:RelVisitorVisit a single-bucket exchange relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
exchange- the single-bucket exchange nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
public Rel visit(MultiBucketExchange exchange, EmptyVisitationContext context) throws RuntimeException Description copied from interface:RelVisitorVisit a multi-bucket exchange relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
exchange- the multi-bucket exchange nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
public Rel visit(RoundRobinExchange exchange, EmptyVisitationContext context) throws RuntimeException Description copied from interface:RelVisitorVisit a round-robin exchange relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
exchange- the round-robin exchange nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
public Rel visit(BroadcastExchange exchange, EmptyVisitationContext context) throws RuntimeException Description copied from interface:RelVisitorVisit a broadcast exchange relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
exchange- the broadcast exchange nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a project relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
project- the project nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit an expand relation (e.g., generators).- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
expand- the expand nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a sort relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
sort- the sort nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
Description copied from interface:RelVisitorVisit a cross product relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
cross- the cross nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
public Rel visit(VirtualTableScan virtualTableScan, EmptyVisitationContext context) throws RuntimeException Description copied from interface:RelVisitorVisit a virtual table scan relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
virtualTableScan- the virtual table scan nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
public Rel visit(ExtensionLeaf extensionLeaf, EmptyVisitationContext context) throws RuntimeException Description copied from interface:RelVisitorVisit an extension leaf relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
extensionLeaf- the extension leaf nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
public Rel visit(ExtensionSingle extensionSingle, EmptyVisitationContext context) throws RuntimeException Description copied from interface:RelVisitorVisit an extension single-input relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
extensionSingle- the extension single nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-
visit
public Rel visit(ExtensionMulti extensionMulti, EmptyVisitationContext context) throws RuntimeException Description copied from interface:RelVisitorVisit an extension multi-input relation.- Specified by:
visitin interfaceRelVisitor<Rel,EmptyVisitationContext, RuntimeException> - Parameters:
extensionMulti- the extension multi nodecontext- visitation context- Returns:
- visit result
- Throws:
RuntimeException
-