This is an automated email from the ASF dual-hosted git repository.

zhouyuan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new 995983d4f2 [GLUTEN-12597][CORE] Remove unused vendored Substrait proto 
files and dead proto-based type derivation (#12598)
995983d4f2 is described below

commit 995983d4f2bb23a6afc9007c9a65d7177ba8abcb
Author: Niels Pardon <[email protected]>
AuthorDate: Thu Jul 23 16:15:54 2026 +0200

    [GLUTEN-12597][CORE] Remove unused vendored Substrait proto files and dead 
proto-based type derivation (#12598)
    
    Delete four vendored Substrait proto files that carry no live message types 
in Gluten and were removed upstream (substrait-io/substrait#952 and #940): 
capabilities.proto, function.proto, parameterized_types.proto, 
type_expressions.proto. Their generated headers were only referenced by 
dangling #include lines in cpp/velox/substrait/SubstraitParser.h (the 
substrait::Capabilities/FunctionSignature/ParameterizedType/DerivationExpression
 types are used nowhere in the native code), which ar [...]
    
    type_expressions.proto's DerivationExpression had one JVM consumer, the 
org.apache.gluten.substrait.derivation package (DerivationExpressionNode, 
DerivationExpressionBuilder, BinaryOPNode, DerivationFP64TypeNode). That 
package is orphaned (no callers in the producer, native backends, or tests), so 
it is removed together with the proto. Upstream expresses output-type 
derivation via the ANTLR grammar in the extension YAMLs, not 
DerivationExpression protos.
    
    Also remove the deprecated Expression.Enum message and its rex_type oneof 
field (10), reserving the number and name to match upstream 
(substrait-io/substrait#1086). Expression.Enum is not built by the producer nor 
parsed by the Velox/ClickHouse backends; enum function arguments use 
FunctionArgument.enum instead.
    
    No functional change. Preparatory cleanup toward rebasing the vendored 
proto onto Substrait 0.98.0.
---
 cpp/velox/substrait/SubstraitParser.h              |   4 -
 .../gluten/substrait/derivation/BinaryOPNode.java  |  55 -------
 .../derivation/DerivationExpressionBuilder.java    |  30 ----
 .../derivation/DerivationExpressionNode.java       |  23 ---
 .../derivation/DerivationFP64TypeNode.java         |  44 ------
 .../substrait/proto/substrait/algebra.proto        |  22 +--
 .../substrait/proto/substrait/capabilities.proto   |  29 ----
 .../substrait/proto/substrait/function.proto       | 148 -------------------
 .../proto/substrait/parameterized_types.proto      | 128 -----------------
 .../proto/substrait/type_expressions.proto         | 160 ---------------------
 10 files changed, 4 insertions(+), 639 deletions(-)

diff --git a/cpp/velox/substrait/SubstraitParser.h 
b/cpp/velox/substrait/SubstraitParser.h
index 8131851ed0..1122f3dc9b 100644
--- a/cpp/velox/substrait/SubstraitParser.h
+++ b/cpp/velox/substrait/SubstraitParser.h
@@ -18,13 +18,9 @@
 #pragma once
 
 #include "substrait/algebra.pb.h"
-#include "substrait/capabilities.pb.h"
 #include "substrait/extensions/extensions.pb.h"
-#include "substrait/function.pb.h"
-#include "substrait/parameterized_types.pb.h"
 #include "substrait/plan.pb.h"
 #include "substrait/type.pb.h"
-#include "substrait/type_expressions.pb.h"
 
 #include <google/protobuf/wrappers.pb.h>
 
diff --git 
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/BinaryOPNode.java
 
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/BinaryOPNode.java
deleted file mode 100644
index 596be721cf..0000000000
--- 
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/BinaryOPNode.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.gluten.substrait.derivation;
-
-import io.substrait.proto.DerivationExpression;
-
-import java.io.Serializable;
-
-public class BinaryOPNode implements DerivationExpressionNode, Serializable {
-  private final String op;
-  private final DerivationExpressionNode arg1;
-  private final DerivationExpressionNode arg2;
-
-  BinaryOPNode(String op, DerivationExpressionNode arg1, 
DerivationExpressionNode arg2) {
-    this.op = op;
-    this.arg1 = arg1;
-    this.arg2 = arg2;
-  }
-
-  @Override
-  public DerivationExpression toProtobuf() {
-    DerivationExpression.BinaryOp.Builder binaryBuilder =
-        DerivationExpression.BinaryOp.newBuilder();
-    switch (op) {
-      case "multiply":
-        
binaryBuilder.setOpType(DerivationExpression.BinaryOp.BinaryOpType.BINARY_OP_TYPE_MULTIPLY);
-        break;
-      case "divide":
-        
binaryBuilder.setOpType(DerivationExpression.BinaryOp.BinaryOpType.BINARY_OP_TYPE_DIVIDE);
-        break;
-      default:
-        System.out.println("Not supported.");
-    }
-    binaryBuilder.setArg1(arg1.toProtobuf());
-    binaryBuilder.setArg2(arg2.toProtobuf());
-
-    DerivationExpression.Builder builder = DerivationExpression.newBuilder();
-    builder.setBinaryOp(binaryBuilder.build());
-    return builder.build();
-  }
-}
diff --git 
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/DerivationExpressionBuilder.java
 
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/DerivationExpressionBuilder.java
deleted file mode 100644
index c01ea659b5..0000000000
--- 
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/DerivationExpressionBuilder.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.gluten.substrait.derivation;
-
-public class DerivationExpressionBuilder {
-  private DerivationExpressionBuilder() {}
-
-  public static DerivationExpressionNode makeDerivationFP64(Boolean nullable) {
-    return new DerivationFP64TypeNode(nullable);
-  }
-
-  public static DerivationExpressionNode makeBinaryOP(
-      String op, DerivationExpressionNode arg1, DerivationExpressionNode arg2) 
{
-    return new BinaryOPNode(op, arg1, arg2);
-  }
-}
diff --git 
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/DerivationExpressionNode.java
 
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/DerivationExpressionNode.java
deleted file mode 100644
index 7290645e2c..0000000000
--- 
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/DerivationExpressionNode.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.gluten.substrait.derivation;
-
-import io.substrait.proto.DerivationExpression;
-
-public interface DerivationExpressionNode {
-  DerivationExpression toProtobuf();
-}
diff --git 
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/DerivationFP64TypeNode.java
 
b/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/DerivationFP64TypeNode.java
deleted file mode 100644
index 218ecb6f71..0000000000
--- 
a/gluten-substrait/src/main/java/org/apache/gluten/substrait/derivation/DerivationFP64TypeNode.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.gluten.substrait.derivation;
-
-import io.substrait.proto.DerivationExpression;
-import io.substrait.proto.Type;
-
-import java.io.Serializable;
-
-public class DerivationFP64TypeNode implements DerivationExpressionNode, 
Serializable {
-  private final Boolean nullable;
-
-  DerivationFP64TypeNode(Boolean nullable) {
-    this.nullable = nullable;
-  }
-
-  @Override
-  public DerivationExpression toProtobuf() {
-    Type.FP64.Builder doubleBuilder = Type.FP64.newBuilder();
-    if (nullable) {
-      doubleBuilder.setNullability(Type.Nullability.NULLABILITY_NULLABLE);
-    } else {
-      doubleBuilder.setNullability(Type.Nullability.NULLABILITY_REQUIRED);
-    }
-
-    DerivationExpression.Builder builder = DerivationExpression.newBuilder();
-    builder.setFp64(doubleBuilder.build());
-    return builder.build();
-  }
-}
diff --git 
a/gluten-substrait/src/main/resources/substrait/proto/substrait/algebra.proto 
b/gluten-substrait/src/main/resources/substrait/proto/substrait/algebra.proto
index 02c7f4cc5c..6619a0395f 100644
--- 
a/gluten-substrait/src/main/resources/substrait/proto/substrait/algebra.proto
+++ 
b/gluten-substrait/src/main/resources/substrait/proto/substrait/algebra.proto
@@ -772,6 +772,10 @@ message FunctionOption {
 }
 
 message Expression {
+  reserved 10;
+
+  reserved "enum";
+
   oneof rex_type {
     Literal literal = 1;
     FieldReference selection = 2;
@@ -784,24 +788,6 @@ message Expression {
     Cast cast = 11;
     Subquery subquery = 12;
     Nested nested = 13;
-
-    // deprecated: enum literals are only sensible in the context of
-    // function arguments, for which FunctionArgument should now be
-    // used
-    Enum enum = 10 [deprecated = true];
-  }
-
-  message Enum {
-    option deprecated = true;
-
-    oneof enum_kind {
-      string specified = 1;
-      Empty unspecified = 2;
-    }
-
-    message Empty {
-      option deprecated = true;
-    }
   }
 
   message Literal {
diff --git 
a/gluten-substrait/src/main/resources/substrait/proto/substrait/capabilities.proto
 
b/gluten-substrait/src/main/resources/substrait/proto/substrait/capabilities.proto
deleted file mode 100644
index 351427189a..0000000000
--- 
a/gluten-substrait/src/main/resources/substrait/proto/substrait/capabilities.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-syntax = "proto3";
-
-package substrait;
-
-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";
-
-// Defines a set of Capabilities that a system (producer or consumer) supports.
-message Capabilities {
-  // List of Substrait versions this system supports
-  repeated string substrait_versions = 1;
-
-  // list of com.google.Any message types this system supports for advanced
-  // extensions.
-  repeated string advanced_extension_type_urls = 2;
-
-  // list of simple extensions this system supports.
-  repeated SimpleExtension simple_extensions = 3;
-
-  message SimpleExtension {
-    string uri = 1;
-    repeated string function_keys = 2;
-    repeated string type_keys = 3;
-    repeated string type_variation_keys = 4;
-  }
-}
diff --git 
a/gluten-substrait/src/main/resources/substrait/proto/substrait/function.proto 
b/gluten-substrait/src/main/resources/substrait/proto/substrait/function.proto
deleted file mode 100644
index 123f4a1bf7..0000000000
--- 
a/gluten-substrait/src/main/resources/substrait/proto/substrait/function.proto
+++ /dev/null
@@ -1,148 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-syntax = "proto3";
-
-package substrait;
-
-import "substrait/parameterized_types.proto";
-import "substrait/type.proto";
-import "substrait/type_expressions.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";
-
-// List of function signatures available.
-message FunctionSignature {
-  message FinalArgVariadic {
-    // the minimum number of arguments allowed for the list of final arguments
-    // (inclusive).
-    int64 min_args = 1;
-
-    // the maximum number of arguments allowed for the list of final arguments
-    // (exclusive)
-    int64 max_args = 2;
-
-    // the type of parameterized type consistency
-    ParameterConsistency consistency = 3;
-
-    enum ParameterConsistency {
-      PARAMETER_CONSISTENCY_UNSPECIFIED = 0;
-
-      // All argument must be the same concrete type.
-      PARAMETER_CONSISTENCY_CONSISTENT = 1;
-
-      // Each argument can be any possible concrete type afforded by the bounds
-      // of any parameter defined in the arguments specification.
-      PARAMETER_CONSISTENCY_INCONSISTENT = 2;
-    }
-  }
-
-  message FinalArgNormal {}
-
-  message Scalar {
-    repeated Argument arguments = 2;
-    repeated string name = 3;
-    Description description = 4;
-
-    bool deterministic = 7;
-    bool session_dependent = 8;
-
-    DerivationExpression output_type = 9;
-
-    oneof final_variable_behavior {
-      FinalArgVariadic variadic = 10;
-      FinalArgNormal normal = 11;
-    }
-
-    repeated Implementation implementations = 12;
-  }
-
-  message Aggregate {
-    repeated Argument arguments = 2;
-    string name = 3;
-    Description description = 4;
-
-    bool deterministic = 7;
-    bool session_dependent = 8;
-
-    DerivationExpression output_type = 9;
-
-    oneof final_variable_behavior {
-      FinalArgVariadic variadic = 10;
-      FinalArgNormal normal = 11;
-    }
-
-    bool ordered = 14;
-    uint64 max_set = 12;
-    Type intermediate_type = 13;
-
-    repeated Implementation implementations = 15;
-  }
-
-  message Window {
-    repeated Argument arguments = 2;
-    repeated string name = 3;
-    Description description = 4;
-
-    bool deterministic = 7;
-    bool session_dependent = 8;
-
-    DerivationExpression intermediate_type = 9;
-    DerivationExpression output_type = 10;
-    oneof final_variable_behavior {
-      FinalArgVariadic variadic = 16;
-      FinalArgNormal normal = 17;
-    }
-    bool ordered = 11;
-    uint64 max_set = 12;
-    WindowType window_type = 14;
-    repeated Implementation implementations = 15;
-
-    enum WindowType {
-      WINDOW_TYPE_UNSPECIFIED = 0;
-      WINDOW_TYPE_STREAMING = 1;
-      WINDOW_TYPE_PARTITION = 2;
-    }
-  }
-
-  message Description {
-    string language = 1;
-    string body = 2;
-  }
-
-  message Implementation {
-    Type type = 1;
-    string uri = 2;
-
-    enum Type {
-      TYPE_UNSPECIFIED = 0;
-      TYPE_WEB_ASSEMBLY = 1;
-      TYPE_TRINO_JAR = 2;
-    }
-  }
-
-  message Argument {
-    string name = 1;
-
-    oneof argument_kind {
-      ValueArgument value = 2;
-      TypeArgument type = 3;
-      EnumArgument enum = 4;
-    }
-
-    message ValueArgument {
-      ParameterizedType type = 1;
-      bool constant = 2;
-    }
-
-    message TypeArgument {
-      ParameterizedType type = 1;
-    }
-
-    message EnumArgument {
-      repeated string options = 1;
-      bool optional = 2;
-    }
-  }
-}
diff --git 
a/gluten-substrait/src/main/resources/substrait/proto/substrait/parameterized_types.proto
 
b/gluten-substrait/src/main/resources/substrait/proto/substrait/parameterized_types.proto
deleted file mode 100644
index db0669354f..0000000000
--- 
a/gluten-substrait/src/main/resources/substrait/proto/substrait/parameterized_types.proto
+++ /dev/null
@@ -1,128 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-syntax = "proto3";
-
-package substrait;
-
-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 ParameterizedType {
-  oneof kind {
-    Type.Boolean bool = 1;
-    Type.I8 i8 = 2;
-    Type.I16 i16 = 3;
-    Type.I32 i32 = 5;
-    Type.I64 i64 = 7;
-    Type.FP32 fp32 = 10;
-    Type.FP64 fp64 = 11;
-    Type.String string = 12;
-    Type.Binary binary = 13;
-    Type.Timestamp timestamp = 14;
-    Type.Date date = 16;
-    Type.Time time = 17;
-    Type.IntervalYear interval_year = 19;
-    Type.IntervalDay interval_day = 20;
-    Type.TimestampTZ timestamp_tz = 29;
-    Type.UUID uuid = 32;
-
-    ParameterizedFixedChar fixed_char = 21;
-    ParameterizedVarChar varchar = 22;
-    ParameterizedFixedBinary fixed_binary = 23;
-    ParameterizedDecimal decimal = 24;
-
-    ParameterizedStruct struct = 25;
-    ParameterizedList list = 27;
-    ParameterizedMap map = 28;
-
-    ParameterizedUserDefined user_defined = 30;
-
-    // Deprecated in favor of user_defined, which allows nullability and
-    // variations to be specified. If user_defined_pointer is encountered,
-    // treat it as being non-nullable and having the default variation.
-    uint32 user_defined_pointer = 31 [deprecated = true];
-
-    TypeParameter type_parameter = 33;
-  }
-
-  message TypeParameter {
-    string name = 1;
-    repeated ParameterizedType bounds = 2;
-  }
-
-  message IntegerParameter {
-    string name = 1;
-    NullableInteger range_start_inclusive = 2;
-    NullableInteger range_end_exclusive = 3;
-  }
-
-  message NullableInteger {
-    int64 value = 1;
-  }
-
-  message ParameterizedFixedChar {
-    IntegerOption length = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message ParameterizedVarChar {
-    IntegerOption length = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message ParameterizedFixedBinary {
-    IntegerOption length = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message ParameterizedDecimal {
-    IntegerOption scale = 1;
-    IntegerOption precision = 2;
-    uint32 variation_pointer = 3;
-    Type.Nullability nullability = 4;
-  }
-
-  message ParameterizedStruct {
-    repeated ParameterizedType types = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message ParameterizedNamedStruct {
-    // list of names in dfs order
-    repeated string names = 1;
-    ParameterizedStruct struct = 2;
-  }
-
-  message ParameterizedList {
-    ParameterizedType type = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message ParameterizedMap {
-    ParameterizedType key = 1;
-    ParameterizedType value = 2;
-    uint32 variation_pointer = 3;
-    Type.Nullability nullability = 4;
-  }
-
-  message ParameterizedUserDefined {
-    uint32 type_pointer = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message IntegerOption {
-    oneof integer_type {
-      int32 literal = 1;
-      IntegerParameter parameter = 2;
-    }
-  }
-}
diff --git 
a/gluten-substrait/src/main/resources/substrait/proto/substrait/type_expressions.proto
 
b/gluten-substrait/src/main/resources/substrait/proto/substrait/type_expressions.proto
deleted file mode 100644
index 4be4aab47d..0000000000
--- 
a/gluten-substrait/src/main/resources/substrait/proto/substrait/type_expressions.proto
+++ /dev/null
@@ -1,160 +0,0 @@
-// SPDX-License-Identifier: Apache-2.0
-syntax = "proto3";
-
-package substrait;
-
-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 DerivationExpression {
-  oneof kind {
-    Type.Boolean bool = 1;
-    Type.I8 i8 = 2;
-    Type.I16 i16 = 3;
-    Type.I32 i32 = 5;
-    Type.I64 i64 = 7;
-    Type.FP32 fp32 = 10;
-    Type.FP64 fp64 = 11;
-    Type.String string = 12;
-    Type.Binary binary = 13;
-    Type.Timestamp timestamp = 14;
-    Type.Date date = 16;
-    Type.Time time = 17;
-    Type.IntervalYear interval_year = 19;
-    Type.IntervalDay interval_day = 20;
-    Type.TimestampTZ timestamp_tz = 29;
-    Type.UUID uuid = 32;
-
-    ExpressionFixedChar fixed_char = 21;
-    ExpressionVarChar varchar = 22;
-    ExpressionFixedBinary fixed_binary = 23;
-    ExpressionDecimal decimal = 24;
-
-    ExpressionStruct struct = 25;
-    ExpressionList list = 27;
-    ExpressionMap map = 28;
-
-    ExpressionUserDefined user_defined = 30;
-
-    // Deprecated in favor of user_defined, which allows nullability and
-    // variations to be specified. If user_defined_pointer is encountered,
-    // treat it as being non-nullable and having the default variation.
-    uint32 user_defined_pointer = 31 [deprecated = true];
-
-    string type_parameter_name = 33;
-    string integer_parameter_name = 34;
-
-    int32 integer_literal = 35;
-    UnaryOp unary_op = 36;
-    BinaryOp binary_op = 37;
-    IfElse if_else = 38;
-    ReturnProgram return_program = 39;
-  }
-
-  message ExpressionFixedChar {
-    DerivationExpression length = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message ExpressionVarChar {
-    DerivationExpression length = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message ExpressionFixedBinary {
-    DerivationExpression length = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message ExpressionDecimal {
-    DerivationExpression scale = 1;
-    DerivationExpression precision = 2;
-    uint32 variation_pointer = 3;
-    Type.Nullability nullability = 4;
-  }
-
-  message ExpressionStruct {
-    repeated DerivationExpression types = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message ExpressionNamedStruct {
-    repeated string names = 1;
-    ExpressionStruct struct = 2;
-  }
-
-  message ExpressionList {
-    DerivationExpression type = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message ExpressionMap {
-    DerivationExpression key = 1;
-    DerivationExpression value = 2;
-    uint32 variation_pointer = 3;
-    Type.Nullability nullability = 4;
-  }
-
-  message ExpressionUserDefined {
-    uint32 type_pointer = 1;
-    uint32 variation_pointer = 2;
-    Type.Nullability nullability = 3;
-  }
-
-  message IfElse {
-    DerivationExpression if_condition = 1;
-    DerivationExpression if_return = 2;
-    DerivationExpression else_return = 3;
-  }
-
-  message UnaryOp {
-    UnaryOpType op_type = 1;
-    DerivationExpression arg = 2;
-
-    enum UnaryOpType {
-      UNARY_OP_TYPE_UNSPECIFIED = 0;
-      UNARY_OP_TYPE_BOOLEAN_NOT = 1;
-    }
-  }
-
-  message BinaryOp {
-    BinaryOpType op_type = 1;
-    DerivationExpression arg1 = 2;
-    DerivationExpression arg2 = 3;
-
-    enum BinaryOpType {
-      BINARY_OP_TYPE_UNSPECIFIED = 0;
-      BINARY_OP_TYPE_PLUS = 1;
-      BINARY_OP_TYPE_MINUS = 2;
-      BINARY_OP_TYPE_MULTIPLY = 3;
-      BINARY_OP_TYPE_DIVIDE = 4;
-      BINARY_OP_TYPE_MIN = 5;
-      BINARY_OP_TYPE_MAX = 6;
-      BINARY_OP_TYPE_GREATER_THAN = 7;
-      BINARY_OP_TYPE_LESS_THAN = 8;
-      BINARY_OP_TYPE_AND = 9;
-      BINARY_OP_TYPE_OR = 10;
-      BINARY_OP_TYPE_EQUALS = 11;
-      BINARY_OP_TYPE_COVERS = 12;
-    }
-  }
-
-  message ReturnProgram {
-    message Assignment {
-      string name = 1;
-      DerivationExpression expression = 2;
-    }
-
-    repeated Assignment assignments = 1;
-    DerivationExpression final_expression = 2;
-  }
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to