Skip to content

Commit

Permalink
chore(substrait): bump to v0.42.1 (#95)
Browse files Browse the repository at this point in the history
  • Loading branch information
EpsilonPrime committed Feb 18, 2024
1 parent e369b92 commit ed37bf8
Show file tree
Hide file tree
Showing 5 changed files with 132 additions and 1 deletion.
66 changes: 66 additions & 0 deletions src/substrait/textplan/converter/BasePlanProtoVisitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -973,6 +973,44 @@ std::any BasePlanProtoVisitor::visitCrossRelation(
return std::nullopt;
}

std::any BasePlanProtoVisitor::visitReferenceRelation(
const ::substrait::proto::ReferenceRel& relation) {
return std::nullopt;
}

std::any BasePlanProtoVisitor::visitWriteRelation(
const ::substrait::proto::WriteRel& relation) {
// TODO -- Add support for write_type.
if (relation.has_table_schema()) {
visitNamedStruct(relation.table_schema());
}
if (relation.has_input()) {
visitRelation(relation.input());
}
if (relation.has_common()) {
visitRelationCommon(relation.common());
}
return std::nullopt;
}

std::any BasePlanProtoVisitor::visitDdlRelation(
const ::substrait::proto::DdlRel& relation) {
// TODO -- Add support for write_type.
if (relation.has_table_schema()) {
visitNamedStruct(relation.table_schema());
}
if (relation.has_table_defaults()) {
visitExpressionLiteralStruct(relation.table_defaults());
}
if (relation.has_view_definition()) {
visitRelation(relation.view_definition());
}
if (relation.has_common()) {
visitRelationCommon(relation.common());
}
return std::nullopt;
}

std::any BasePlanProtoVisitor::visitHashJoinRelation(
const ::substrait::proto::HashJoinRel& relation) {
if (relation.has_common()) {
Expand Down Expand Up @@ -1025,6 +1063,26 @@ std::any BasePlanProtoVisitor::visitMergeJoinRelation(
return std::nullopt;
}

std::any BasePlanProtoVisitor::visitNestedLoopJoinRelation(
const ::substrait::proto::NestedLoopJoinRel& relation) {
if (relation.has_common()) {
visitRelationCommon(relation.common());
}
if (relation.has_left()) {
visitRelation(relation.left());
}
if (relation.has_right()) {
visitRelation(relation.right());
}
if (relation.has_expression()) {
visitExpression(relation.expression());
}
if (relation.has_advanced_extension()) {
visitAdvancedExtension(relation.advanced_extension());
};
return std::nullopt;
}

std::any BasePlanProtoVisitor::visitWindowRelation(
const ::substrait::proto::ConsistentPartitionWindowRel& relation) {
if (relation.has_common()) {
Expand Down Expand Up @@ -1103,10 +1161,18 @@ std::any BasePlanProtoVisitor::visitRelation(
return visitExtensionLeafRelation(relation.extension_leaf());
case ::substrait::proto::Rel::RelTypeCase::kCross:
return visitCrossRelation(relation.cross());
case ::substrait::proto::Rel::RelTypeCase::kReference:
return visitReferenceRelation(relation.reference());
case ::substrait::proto::Rel::RelTypeCase::kWrite:
return visitWriteRelation(relation.write());
case ::substrait::proto::Rel::RelTypeCase::kDdl:
return visitDdlRelation(relation.ddl());
case ::substrait::proto::Rel::RelTypeCase::kHashJoin:
return visitHashJoinRelation(relation.hash_join());
case ::substrait::proto::Rel::RelTypeCase::kMergeJoin:
return visitMergeJoinRelation(relation.merge_join());
case ::substrait::proto::Rel::RelTypeCase::kNestedLoopJoin:
return visitNestedLoopJoinRelation(relation.nested_loop_join());
case ::substrait::proto::Rel::kWindow:
return visitWindowRelation(relation.window());
case ::substrait::proto::Rel::kExchange:
Expand Down
9 changes: 9 additions & 0 deletions src/substrait/textplan/converter/BasePlanProtoVisitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -170,10 +170,19 @@ class BasePlanProtoVisitor {
const ::substrait::proto::ExtensionLeafRel& relation);
virtual std::any visitCrossRelation(
const ::substrait::proto::CrossRel& relation);

virtual std::any visitReferenceRelation(
const ::substrait::proto::ReferenceRel& relation);
virtual std::any visitWriteRelation(
const ::substrait::proto::WriteRel& relation);
virtual std::any visitDdlRelation(const ::substrait::proto::DdlRel& relation);

virtual std::any visitHashJoinRelation(
const ::substrait::proto::HashJoinRel& relation);
virtual std::any visitMergeJoinRelation(
const ::substrait::proto::MergeJoinRel& relation);
virtual std::any visitNestedLoopJoinRelation(
const ::substrait::proto::NestedLoopJoinRel& relation);
virtual std::any visitWindowRelation(
const ::substrait::proto::ConsistentPartitionWindowRel& relation);
virtual std::any visitExchangeRelation(
Expand Down
35 changes: 35 additions & 0 deletions src/substrait/textplan/converter/InitialPlanProtoVisitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,14 @@ void eraseInputs(::substrait::proto::Rel* relation) {
relation->mutable_cross()->clear_left();
relation->mutable_cross()->clear_right();
break;
case ::substrait::proto::Rel::kReference:
break;
case ::substrait::proto::Rel::kWrite:
relation->mutable_write()->clear_input();
break;
case ::substrait::proto::Rel::kDdl:
relation->mutable_ddl()->clear_view_definition();
break;
case ::substrait::proto::Rel::kHashJoin:
relation->mutable_hash_join()->clear_left();
relation->mutable_hash_join()->clear_right();
Expand All @@ -76,6 +84,10 @@ void eraseInputs(::substrait::proto::Rel* relation) {
relation->mutable_merge_join()->clear_left();
relation->mutable_merge_join()->clear_right();
break;
case ::substrait::proto::Rel::kNestedLoopJoin:
relation->mutable_nested_loop_join()->clear_left();
relation->mutable_nested_loop_join()->clear_right();
break;
case ::substrait::proto::Rel::kWindow:
relation->mutable_window()->clear_input();
break;
Expand Down Expand Up @@ -117,10 +129,19 @@ ::google::protobuf::RepeatedField<int32_t> getOutputMapping(
return relation.extension_leaf().common().emit().output_mapping();
case ::substrait::proto::Rel::kCross:
return relation.cross().common().emit().output_mapping();
case ::substrait::proto::Rel::kReference:
// There is no common message in a ReferenceRel.
break;
case ::substrait::proto::Rel::kWrite:
return relation.write().common().emit().output_mapping();
case ::substrait::proto::Rel::kDdl:
return relation.ddl().common().emit().output_mapping();
case ::substrait::proto::Rel::kHashJoin:
return relation.hash_join().common().emit().output_mapping();
case ::substrait::proto::Rel::kMergeJoin:
return relation.merge_join().common().emit().output_mapping();
case ::substrait::proto::Rel::kNestedLoopJoin:
return relation.nested_loop_join().common().emit().output_mapping();
case ::substrait::proto::Rel::kWindow:
return relation.window().common().emit().output_mapping();
case ::substrait::proto::Rel::kExchange:
Expand Down Expand Up @@ -566,6 +587,14 @@ void InitialPlanProtoVisitor::updateLocalSchema(
addFieldsToRelation(
relationData, relation.cross().left(), relation.cross().right());
break;
case ::substrait::proto::Rel::kReference:
break;
case ::substrait::proto::Rel::kWrite:
addFieldsToRelation(relationData, relation.write().input());
break;
case ::substrait::proto::Rel::kDdl:
addFieldsToRelation(relationData, relation.ddl().view_definition());
break;
case ::substrait::proto::Rel::RelTypeCase::kHashJoin:
addFieldsToRelation(
relationData,
Expand All @@ -578,6 +607,12 @@ void InitialPlanProtoVisitor::updateLocalSchema(
relation.merge_join().left(),
relation.merge_join().right());
break;
case ::substrait::proto::Rel::kNestedLoopJoin:
addFieldsToRelation(
relationData,
relation.nested_loop_join().left(),
relation.nested_loop_join().right());
break;
case ::substrait::proto::Rel::kWindow:
addFieldsToRelation(relationData, relation.window().input());
break;
Expand Down
21 changes: 21 additions & 0 deletions src/substrait/textplan/converter/PipelineVisitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,17 @@ std::any PipelineVisitor::visitRelation(
relationData->newPipelines.push_back(rightSymbol);
break;
}
case ::substrait::proto::Rel::kNestedLoopJoin: {
const auto* leftSymbol = symbolTable_->lookupSymbolByLocationAndType(
PROTO_LOCATION(relation.nested_loop_join().left()),
SymbolType::kRelation);
const auto* rightSymbol = symbolTable_->lookupSymbolByLocationAndType(
PROTO_LOCATION(relation.nested_loop_join().right()),
SymbolType::kRelation);
relationData->newPipelines.push_back(leftSymbol);
relationData->newPipelines.push_back(rightSymbol);
break;
}
case ::substrait::proto::Rel::kWindow: {
const auto* inputSymbol = symbolTable_->lookupSymbolByLocationAndType(
PROTO_LOCATION(relation.window().input()), SymbolType::kRelation);
Expand All @@ -183,6 +194,16 @@ std::any PipelineVisitor::visitRelation(
relationData->continuingPipeline = inputSymbol;
break;
}
case ::substrait::proto::Rel::kReference:
// TODO -- Add support for references in text plans.
break;
case ::substrait::proto::Rel::kWrite: {
const auto* inputSymbol = symbolTable_->lookupSymbolByLocationAndType(
PROTO_LOCATION(relation.write().input()), SymbolType::kRelation);
relationData->continuingPipeline = inputSymbol;
break;
}
case ::substrait::proto::Rel::kDdl:
case ::substrait::proto::Rel::REL_TYPE_NOT_SET:
break;
}
Expand Down
2 changes: 1 addition & 1 deletion third_party/substrait
Submodule substrait updated 44 files
+1 −1 .github/CODEOWNERS
+1 −1 .github/workflows/licence_check.yml
+23 −23 .github/workflows/pr.yml
+2 −2 .github/workflows/pr_breaking.yml
+9 −4 .github/workflows/pr_title.yml
+5 −5 .github/workflows/release.yml
+3 −48 .github/workflows/site.yml
+131 −0 CHANGELOG.md
+81 −0 CODE_OF_CONDUCT.md
+232 −1 extensions/functions_arithmetic.yaml
+61 −16 extensions/functions_comparison.yaml
+144 −0 extensions/functions_datetime.yaml
+239 −0 extensions/functions_geometry.yaml
+29 −29 extensions/functions_string.yaml
+160 −35 proto/substrait/algebra.proto
+30 −3 site/data/committers.yaml
+10 −3 site/data/smc.yaml
+4 −0 site/docs/_config
+44 −0 site/docs/about.md
+14 −1 site/docs/community/index.md
+7 −15 site/docs/expressions/embedded_functions.md
+6 −0 site/docs/expressions/extended_expression.md
+73 −10 site/docs/expressions/field_references.md
+8 −0 site/docs/expressions/subqueries.md
+30 −1 site/docs/expressions/user_defined_functions.md
+3 −0 site/docs/expressions/window_functions.md
+10 −3 site/docs/extensions/generate_function_docs.py
+24 −2 site/docs/extensions/index.md
+9 −0 site/docs/faq.md
+2 −0 site/docs/governance.md
+16 −44 site/docs/index.md
+3 −4 site/docs/relations/basics.md
+29 −20 site/docs/relations/logical_relations.md
+1 −1 site/docs/relations/physical_relations.md
+5 −3 site/docs/serialization/binary_serialization.md
+1 −0 site/docs/spec/_config
+49 −0 site/docs/spec/extending.md
+35 −38 site/docs/spec/specification.md
+7 −1 site/docs/tools/third_party_tools.md
+3 −3 site/docs/types/type_classes.md
+41 −10 site/docs/types/type_parsing.md
+2 −1 site/docs/types/type_system.md
+2 −1 site/mkdocs.yml
+10 −0 text/simple_extensions_schema.yaml

0 comments on commit ed37bf8

Please sign in to comment.