cpp-ch/local-engine/proto/substrait/extended_expression.proto (41 lines of code) (raw):
// SPDX-License-Identifier: Apache-2.0
syntax = "proto3";
package substrait;
import "substrait/algebra.proto";
import "substrait/extensions/extensions.proto";
import "substrait/plan.proto";
import "substrait/type.proto";
option csharp_namespace = "Substrait.Protobuf";
option go_package = "github.com/substrait-io/substrait-go/proto";
option java_multiple_files = true;
option java_package = "io.substrait.proto";
message ExpressionReference {
oneof expr_type {
Expression expression = 1;
AggregateFunction measure = 2;
}
// Field names in depth-first order
repeated string output_names = 3;
}
// Describe a set of operations to complete.
// For compactness sake, identifiers are normalized at the plan level.
message ExtendedExpression {
// Substrait version of the expression. Optional up to 0.17.0, required for later
// versions.
Version version = 7;
// a list of yaml specifications this expression may depend on
repeated substrait.extensions.SimpleExtensionURI extension_uris = 1;
// a list of extensions this expression may depend on
repeated substrait.extensions.SimpleExtensionDeclaration extensions = 2;
// one or more expression trees with same order in plan rel
repeated ExpressionReference referred_expr = 3;
NamedStruct base_schema = 4;
// additional extensions associated with this expression.
substrait.extensions.AdvancedExtension advanced_extensions = 5;
// A list of com.google.Any entities that this plan may use. Can be used to
// warn if some embedded message types are unknown. Note that this list may
// include message types that are ignorable (optimizations) or that are
// unused. In many cases, a consumer may be able to work with a plan even if
// one or more message types defined here are unknown.
repeated string expected_type_urls = 6;
}