diff --git a/src/substrait/__init__.py b/src/substrait/__init__.py
index ea354da..cec1179 100644
--- a/src/substrait/__init__.py
+++ b/src/substrait/__init__.py
@@ -3,6 +3,6 @@
except ImportError:
pass
-__substrait_version__ = "0.66.1"
-__substrait_hash__ = "ff013aa"
+__substrait_version__ = "0.71.0"
+__substrait_hash__ = "413c7c8"
__minimum_substrait_version__ = "0.30.0"
diff --git a/src/substrait/builders/type.py b/src/substrait/builders/type.py
index d7468f0..3732def 100644
--- a/src/substrait/builders/type.py
+++ b/src/substrait/builders/type.py
@@ -55,7 +55,8 @@ def fixed_binary(length: int, nullable=True) -> stt.Type:
def decimal(scale: int, precision: int, nullable=True) -> stt.Type:
return stt.Type(decimal=stt.Type.Decimal(scale=scale, precision=precision, nullability=stt.Type.NULLABILITY_NULLABLE if nullable else stt.Type.NULLABILITY_REQUIRED))
-# PrecisionTime
+def precision_time(precision: int, nullable=True) -> stt.Type:
+ return stt.Type(precision_time=stt.Type.PrecisionTime(precision=precision, nullability=stt.Type.NULLABILITY_NULLABLE if nullable else stt.Type.NULLABILITY_REQUIRED))
def precision_timestamp(precision: int, nullable=True) -> stt.Type:
return stt.Type(precision_timestamp=stt.Type.PrecisionTimestamp(precision=precision, nullability=stt.Type.NULLABILITY_NULLABLE if nullable else stt.Type.NULLABILITY_REQUIRED))
diff --git a/src/substrait/extensions/functions_datetime.yaml b/src/substrait/extensions/functions_datetime.yaml
index 5847c27..20e90e9 100644
--- a/src/substrait/extensions/functions_datetime.yaml
+++ b/src/substrait/extensions/functions_datetime.yaml
@@ -33,6 +33,7 @@ scalar_functions:
* MILLISECOND Return number of milliseconds since the last full second.
* MICROSECOND Return number of microseconds since the last full millisecond.
* NANOSECOND Return number of nanoseconds since the last full microsecond.
+ * PICOSECOND Return number of picoseconds since the last full nanosecond.
* SUBSECOND Return number of microseconds since the last full second of the given timestamp.
* UNIX_TIME Return number of seconds that have elapsed since 1970-01-01 00:00:00 UTC, ignoring leap seconds.
* TIMEZONE_OFFSET Return number of seconds of timezone offset to UTC.
@@ -69,7 +70,7 @@ scalar_functions:
- args:
- name: component
options: [ YEAR, ISO_YEAR, US_YEAR, HOUR, MINUTE, SECOND,
- MILLISECOND, MICROSECOND, SUBSECOND, UNIX_TIME, TIMEZONE_OFFSET ]
+ MILLISECOND, MICROSECOND, SUBSECOND, PICOSECOND, UNIX_TIME, TIMEZONE_OFFSET ]
description: The part of the value to extract.
- name: x
value: timestamp_tz
@@ -80,7 +81,7 @@ scalar_functions:
- args:
- name: component
options: [ YEAR, ISO_YEAR, US_YEAR, HOUR, MINUTE, SECOND,
- MILLISECOND, MICROSECOND, NANOSECOND, SUBSECOND, UNIX_TIME, TIMEZONE_OFFSET ]
+ MILLISECOND, MICROSECOND, NANOSECOND, PICOSECOND, SUBSECOND, UNIX_TIME, TIMEZONE_OFFSET ]
description: The part of the value to extract.
- name: x
value: precision_timestamp_tz
@@ -1080,6 +1081,13 @@ aggregate_functions:
decomposable: MANY
intermediate: timestamp?
return: timestamp?
+ - args:
+ - name: x
+ value: precision_timestamp
+ nullability: DECLARED_OUTPUT
+ decomposable: MANY
+ intermediate: precision_timestamp?
+ return: precision_timestamp?
- args:
- name: x
value: timestamp_tz
diff --git a/src/substrait/extensions/functions_rounding_decimal.yaml b/src/substrait/extensions/functions_rounding_decimal.yaml
new file mode 100644
index 0000000..b445069
--- /dev/null
+++ b/src/substrait/extensions/functions_rounding_decimal.yaml
@@ -0,0 +1,82 @@
+%YAML 1.2
+---
+scalar_functions:
+ -
+ name: "ceil"
+ description: >
+ Rounding to the ceiling of the value `x`.
+ impls:
+ - args:
+ - value: decimal
+ name: x
+ return: |-
+ integral_least_num_digits = P - S + 1
+ precision = min(integral_least_num_digits, 38)
+ decimal?
+ -
+ name: "floor"
+ description: >
+ Rounding to the floor of the value `x`.
+ impls:
+ - args:
+ - value: decimal
+ name: x
+ return: |-
+ integral_least_num_digits = P - S + 1
+ precision = min(integral_least_num_digits, 38)
+ decimal?
+ -
+ name: "round"
+ description: >
+ Rounding the value `x` to `s` decimal places.
+ impls:
+ - args:
+ - value: decimal
+ name: x
+ description: >
+ Numerical expression to be rounded.
+ - value: i32
+ name: s
+ description: >
+ Number of decimal places to be rounded to.
+
+ When `s` is a positive number, the rounding
+ is performed to a `s` number of decimal places.
+
+ When `s` is a negative number, the rounding is
+ performed to the left side of the decimal point
+ as specified by `s`.
+
+ The precision of the resultant decimal type is one
+ more than the precision of the input decimal type to
+ allow for numbers that round up or down to the next
+ decimal magnitude.
+ E.g. `round(9.9, 0)` -> `10.0`.
+ The scale of the resultant decimal type cannot be
+ larger than the scale of the input decimal type.
+ options:
+ rounding:
+ description: >
+ When a boundary is computed to lie somewhere between two values,
+ and this value cannot be exactly represented, this specifies how
+ to round it.
+
+ - TIE_TO_EVEN: round to nearest value; if exactly halfway, tie
+ to the even option.
+ - TIE_AWAY_FROM_ZERO: round to nearest value; if exactly
+ halfway, tie away from zero.
+ - TRUNCATE: always round toward zero.
+ - CEILING: always round toward positive infinity.
+ - FLOOR: always round toward negative infinity.
+ - AWAY_FROM_ZERO: round negative values with FLOOR rule, round positive values with CEILING rule
+ - TIE_DOWN: round ties with FLOOR rule
+ - TIE_UP: round ties with CEILING rule
+ - TIE_TOWARDS_ZERO: round ties with TRUNCATE rule
+ - TIE_TO_ODD: round to nearest value; if exactly halfway, tie
+ to the odd option.
+ values: [ TIE_TO_EVEN, TIE_AWAY_FROM_ZERO, TRUNCATE, CEILING, FLOOR,
+ AWAY_FROM_ZERO, TIE_DOWN, TIE_UP, TIE_TOWARDS_ZERO, TIE_TO_ODD ]
+ nullability: DECLARED_OUTPUT
+ return: |-
+ precision = min(P + 1, 38)
+ decimal?
diff --git a/src/substrait/gen/proto/algebra_pb2.py b/src/substrait/gen/proto/algebra_pb2.py
index 3bbc72f..ecaca06 100644
--- a/src/substrait/gen/proto/algebra_pb2.py
+++ b/src/substrait/gen/proto/algebra_pb2.py
@@ -7,7 +7,7 @@
from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
from ..proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2
from ..proto import type_pb2 as proto_dot_type__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13proto/algebra.proto\x12\x05proto\x1a\x19google/protobuf/any.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto"\x91\x0b\n\tRelCommon\x121\n\x06direct\x18\x01 \x01(\x0b2\x17.proto.RelCommon.DirectH\x00R\x06direct\x12+\n\x04emit\x18\x02 \x01(\x0b2\x15.proto.RelCommon.EmitH\x00R\x04emit\x12)\n\x04hint\x18\x03 \x01(\x0b2\x15.proto.RelCommon.HintR\x04hint\x12R\n\x12advanced_extension\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x08\n\x06Direct\x1a-\n\x04Emit\x12%\n\x0eoutput_mapping\x18\x01 \x03(\x05R\routputMapping\x1a\xde\x08\n\x04Hint\x121\n\x05stats\x18\x01 \x01(\x0b2\x1b.proto.RelCommon.Hint.StatsR\x05stats\x12G\n\nconstraint\x18\x02 \x01(\x0b2\'.proto.RelCommon.Hint.RuntimeConstraintR\nconstraint\x12\x14\n\x05alias\x18\x03 \x01(\tR\x05alias\x12!\n\x0coutput_names\x18\x04 \x03(\tR\x0boutputNames\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12U\n\x12saved_computations\x18\x0b \x03(\x0b2&.proto.RelCommon.Hint.SavedComputationR\x11savedComputations\x12X\n\x13loaded_computations\x18\x0c \x03(\x0b2\'.proto.RelCommon.Hint.LoadedComputationR\x12loadedComputations\x1a\x99\x01\n\x05Stats\x12\x1b\n\trow_count\x18\x01 \x01(\x01R\x08rowCount\x12\x1f\n\x0brecord_size\x18\x02 \x01(\x01R\nrecordSize\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1ag\n\x11RuntimeConstraint\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1at\n\x10SavedComputation\x12%\n\x0ecomputation_id\x18\x01 \x01(\x05R\rcomputationId\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type\x1a\x88\x01\n\x11LoadedComputation\x128\n\x18computation_id_reference\x18\x01 \x01(\x05R\x16computationIdReference\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type"\x95\x01\n\x0fComputationType\x12 \n\x1cCOMPUTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aCOMPUTATION_TYPE_HASHTABLE\x10\x01\x12!\n\x1dCOMPUTATION_TYPE_BLOOM_FILTER\x10\x02\x12\x1d\n\x18COMPUTATION_TYPE_UNKNOWN\x10\x8fNB\x0b\n\temit_kind"\x85\x14\n\x07ReadRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x123\n\x0bbase_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\nbaseSchema\x12)\n\x06filter\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x06filter\x12?\n\x12best_effort_filter\x18\x0b \x01(\x0b2\x11.proto.ExpressionR\x10bestEffortFilter\x12@\n\nprojection\x18\x04 \x01(\x0b2 .proto.Expression.MaskExpressionR\nprojection\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12B\n\rvirtual_table\x18\x05 \x01(\x0b2\x1b.proto.ReadRel.VirtualTableH\x00R\x0cvirtualTable\x12<\n\x0blocal_files\x18\x06 \x01(\x0b2\x19.proto.ReadRel.LocalFilesH\x00R\nlocalFiles\x12<\n\x0bnamed_table\x18\x07 \x01(\x0b2\x19.proto.ReadRel.NamedTableH\x00R\nnamedTable\x12H\n\x0fextension_table\x18\x08 \x01(\x0b2\x1d.proto.ReadRel.ExtensionTableH\x00R\x0eextensionTable\x12B\n\riceberg_table\x18\t \x01(\x0b2\x1b.proto.ReadRel.IcebergTableH\x00R\x0cicebergTable\x1av\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xfc\x01\n\x0cIcebergTable\x12F\n\x06direct\x18\x01 \x01(\x0b2,.proto.ReadRel.IcebergTable.MetadataFileReadH\x00R\x06direct\x1a\x95\x01\n\x10MetadataFileRead\x12!\n\x0cmetadata_uri\x18\x01 \x01(\tR\x0bmetadataUri\x12!\n\x0bsnapshot_id\x18\x02 \x01(\tH\x00R\nsnapshotId\x12/\n\x12snapshot_timestamp\x18\x03 \x01(\x03H\x00R\x11snapshotTimestampB\n\n\x08snapshotB\x0c\n\ntable_type\x1a\x8f\x01\n\x0cVirtualTable\x12<\n\x06values\x18\x01 \x03(\x0b2 .proto.Expression.Literal.StructB\x02\x18\x01R\x06values\x12A\n\x0bexpressions\x18\x02 \x03(\x0b2\x1f.proto.Expression.Nested.StructR\x0bexpressions\x1a>\n\x0eExtensionTable\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail\x1a\xf4\t\n\nLocalFiles\x12;\n\x05items\x18\x01 \x03(\x0b2%.proto.ReadRel.LocalFiles.FileOrFilesR\x05items\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xd4\x08\n\x0bFileOrFiles\x12\x1b\n\x08uri_path\x18\x01 \x01(\tH\x00R\x07uriPath\x12$\n\ruri_path_glob\x18\x02 \x01(\tH\x00R\x0buriPathGlob\x12\x1b\n\x08uri_file\x18\x03 \x01(\tH\x00R\x07uriFile\x12\x1f\n\nuri_folder\x18\x04 \x01(\tH\x00R\turiFolder\x12\'\n\x0fpartition_index\x18\x06 \x01(\x04R\x0epartitionIndex\x12\x14\n\x05start\x18\x07 \x01(\x04R\x05start\x12\x16\n\x06length\x18\x08 \x01(\x04R\x06length\x12T\n\x07parquet\x18\t \x01(\x0b28.proto.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptionsH\x01R\x07parquet\x12N\n\x05arrow\x18\n \x01(\x0b26.proto.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptionsH\x01R\x05arrow\x12H\n\x03orc\x18\x0b \x01(\x0b24.proto.ReadRel.LocalFiles.FileOrFiles.OrcReadOptionsH\x01R\x03orc\x124\n\textension\x18\x0c \x01(\x0b2\x14.google.protobuf.AnyH\x01R\textension\x12K\n\x04dwrf\x18\r \x01(\x0b25.proto.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptionsH\x01R\x04dwrf\x12]\n\x04text\x18\x0e \x01(\x0b2G.proto.ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptionsH\x01R\x04text\x1a\x14\n\x12ParquetReadOptions\x1a\x12\n\x10ArrowReadOptions\x1a\x10\n\x0eOrcReadOptions\x1a\x11\n\x0fDwrfReadOptions\x1a\xa1\x02\n!DelimiterSeparatedTextReadOptions\x12\'\n\x0ffield_delimiter\x18\x01 \x01(\tR\x0efieldDelimiter\x12"\n\rmax_line_size\x18\x02 \x01(\x04R\x0bmaxLineSize\x12\x14\n\x05quote\x18\x03 \x01(\tR\x05quote\x12/\n\x14header_lines_to_skip\x18\x04 \x01(\x04R\x11headerLinesToSkip\x12\x16\n\x06escape\x18\x05 \x01(\tR\x06escape\x126\n\x15value_treated_as_null\x18\x06 \x01(\tH\x00R\x12valueTreatedAsNull\x88\x01\x01B\x18\n\x16_value_treated_as_nullB\x0b\n\tpath_typeB\r\n\x0bfile_formatJ\x04\x08\x05\x10\x06R\x06formatB\x0b\n\tread_type"\xe1\x01\n\nProjectRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x123\n\x0bexpressions\x18\x03 \x03(\x0b2\x11.proto.ExpressionR\x0bexpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xb1\x05\n\x07JoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x12;\n\x10post_join_filter\x18\x05 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12+\n\x04type\x18\x06 \x01(\x0e2\x17.proto.JoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x06\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x08\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\xca\x01\n\x08CrossRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xeb\x02\n\x08FetchRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\x1c\n\x06offset\x18\x03 \x01(\x03B\x02\x18\x01H\x00R\x06offset\x124\n\x0boffset_expr\x18\x05 \x01(\x0b2\x11.proto.ExpressionH\x00R\noffsetExpr\x12\x1a\n\x05count\x18\x04 \x01(\x03B\x02\x18\x01H\x01R\x05count\x122\n\ncount_expr\x18\x06 \x01(\x0b2\x11.proto.ExpressionH\x01R\tcountExpr\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtensionB\r\n\x0boffset_modeB\x0c\n\ncount_mode"\xdf\x04\n\x0cAggregateRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12:\n\tgroupings\x18\x03 \x03(\x0b2\x1c.proto.AggregateRel.GroupingR\tgroupings\x127\n\x08measures\x18\x04 \x03(\x0b2\x1b.proto.AggregateRel.MeasureR\x08measures\x12D\n\x14grouping_expressions\x18\x05 \x03(\x0b2\x11.proto.ExpressionR\x13groupingExpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x89\x01\n\x08Grouping\x12H\n\x14grouping_expressions\x18\x01 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x13groupingExpressions\x123\n\x15expression_references\x18\x02 \x03(\rR\x14expressionReferences\x1ah\n\x07Measure\x122\n\x07measure\x18\x01 \x01(\x0b2\x18.proto.AggregateFunctionR\x07measure\x12)\n\x06filter\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x06filter"\xca\x07\n\x1cConsistentPartitionWindowRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12`\n\x10window_functions\x18\x03 \x03(\x0b25.proto.ConsistentPartitionWindowRel.WindowRelFunctionR\x0fwindowFunctions\x12F\n\x15partition_expressions\x18\x04 \x03(\x0b2\x11.proto.ExpressionR\x14partitionExpressions\x12&\n\x05sorts\x18\x05 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xb7\x04\n\x11WindowRelFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType"\xd1\x01\n\x07SortRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xdc\x01\n\tFilterRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xde\x03\n\x06SetRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12#\n\x02op\x18\x03 \x01(\x0e2\x13.proto.SetRel.SetOpR\x02op\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\x8c\x02\n\x05SetOp\x12\x16\n\x12SET_OP_UNSPECIFIED\x10\x00\x12\x18\n\x14SET_OP_MINUS_PRIMARY\x10\x01\x12\x1c\n\x18SET_OP_MINUS_PRIMARY_ALL\x10\x07\x12\x19\n\x15SET_OP_MINUS_MULTISET\x10\x02\x12\x1f\n\x1bSET_OP_INTERSECTION_PRIMARY\x10\x03\x12 \n\x1cSET_OP_INTERSECTION_MULTISET\x10\x04\x12$\n SET_OP_INTERSECTION_MULTISET_ALL\x10\x08\x12\x19\n\x15SET_OP_UNION_DISTINCT\x10\x05\x12\x14\n\x10SET_OP_UNION_ALL\x10\x06"\x8e\x01\n\x12ExtensionSingleRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"j\n\x10ExtensionLeafRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12,\n\x06detail\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x8f\x01\n\x11ExtensionMultiRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\xe9\x08\n\x0bExchangeRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\'\n\x0fpartition_count\x18\x03 \x01(\x05R\x0epartitionCount\x12;\n\x07targets\x18\x04 \x03(\x0b2!.proto.ExchangeRel.ExchangeTargetR\x07targets\x12N\n\x11scatter_by_fields\x18\x05 \x01(\x0b2 .proto.ExchangeRel.ScatterFieldsH\x00R\x0fscatterByFields\x12P\n\rsingle_target\x18\x06 \x01(\x0b2).proto.ExchangeRel.SingleBucketExpressionH\x00R\x0csingleTarget\x12M\n\x0cmulti_target\x18\x07 \x01(\x0b2(.proto.ExchangeRel.MultiBucketExpressionH\x00R\x0bmultiTarget\x12@\n\x0bround_robin\x18\x08 \x01(\x0b2\x1d.proto.ExchangeRel.RoundRobinH\x00R\nroundRobin\x12<\n\tbroadcast\x18\t \x01(\x0b2\x1c.proto.ExchangeRel.BroadcastH\x00R\tbroadcast\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1aI\n\rScatterFields\x128\n\x06fields\x18\x01 \x03(\x0b2 .proto.Expression.FieldReferenceR\x06fields\x1aK\n\x16SingleBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x1a|\n\x15MultiBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x120\n\x14constrained_to_count\x18\x02 \x01(\x08R\x12constrainedToCount\x1a\x0b\n\tBroadcast\x1a"\n\nRoundRobin\x12\x14\n\x05exact\x18\x01 \x01(\x08R\x05exact\x1a\x8a\x01\n\x0eExchangeTarget\x12!\n\x0cpartition_id\x18\x01 \x03(\x05R\x0bpartitionId\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x122\n\x08extended\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x08extendedB\r\n\x0btarget_typeB\x0f\n\rexchange_kind"\xfc\x02\n\tExpandRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x124\n\x06fields\x18\x04 \x03(\x0b2\x1c.proto.ExpandRel.ExpandFieldR\x06fields\x1a\xa7\x01\n\x0bExpandField\x12J\n\x0fswitching_field\x18\x02 \x01(\x0b2\x1f.proto.ExpandRel.SwitchingFieldH\x00R\x0eswitchingField\x12>\n\x10consistent_field\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x0fconsistentFieldB\x0c\n\nfield_type\x1aC\n\x0eSwitchingField\x121\n\nduplicates\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\nduplicates"A\n\x07RelRoot\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x12\x14\n\x05names\x18\x02 \x03(\tR\x05names"\xd0\x08\n\x03Rel\x12$\n\x04read\x18\x01 \x01(\x0b2\x0e.proto.ReadRelH\x00R\x04read\x12*\n\x06filter\x18\x02 \x01(\x0b2\x10.proto.FilterRelH\x00R\x06filter\x12\'\n\x05fetch\x18\x03 \x01(\x0b2\x0f.proto.FetchRelH\x00R\x05fetch\x123\n\taggregate\x18\x04 \x01(\x0b2\x13.proto.AggregateRelH\x00R\taggregate\x12$\n\x04sort\x18\x05 \x01(\x0b2\x0e.proto.SortRelH\x00R\x04sort\x12$\n\x04join\x18\x06 \x01(\x0b2\x0e.proto.JoinRelH\x00R\x04join\x12-\n\x07project\x18\x07 \x01(\x0b2\x11.proto.ProjectRelH\x00R\x07project\x12!\n\x03set\x18\x08 \x01(\x0b2\r.proto.SetRelH\x00R\x03set\x12F\n\x10extension_single\x18\t \x01(\x0b2\x19.proto.ExtensionSingleRelH\x00R\x0fextensionSingle\x12C\n\x0fextension_multi\x18\n \x01(\x0b2\x18.proto.ExtensionMultiRelH\x00R\x0eextensionMulti\x12@\n\x0eextension_leaf\x18\x0b \x01(\x0b2\x17.proto.ExtensionLeafRelH\x00R\rextensionLeaf\x12\'\n\x05cross\x18\x0c \x01(\x0b2\x0f.proto.CrossRelH\x00R\x05cross\x123\n\treference\x18\x15 \x01(\x0b2\x13.proto.ReferenceRelH\x00R\treference\x12\'\n\x05write\x18\x13 \x01(\x0b2\x0f.proto.WriteRelH\x00R\x05write\x12!\n\x03ddl\x18\x14 \x01(\x0b2\r.proto.DdlRelH\x00R\x03ddl\x12*\n\x06update\x18\x16 \x01(\x0b2\x10.proto.UpdateRelH\x00R\x06update\x121\n\thash_join\x18\r \x01(\x0b2\x12.proto.HashJoinRelH\x00R\x08hashJoin\x124\n\nmerge_join\x18\x0e \x01(\x0b2\x13.proto.MergeJoinRelH\x00R\tmergeJoin\x12D\n\x10nested_loop_join\x18\x12 \x01(\x0b2\x18.proto.NestedLoopJoinRelH\x00R\x0enestedLoopJoin\x12=\n\x06window\x18\x11 \x01(\x0b2#.proto.ConsistentPartitionWindowRelH\x00R\x06window\x120\n\x08exchange\x18\x0f \x01(\x0b2\x12.proto.ExchangeRelH\x00R\x08exchange\x12*\n\x06expand\x18\x10 \x01(\x0b2\x10.proto.ExpandRelH\x00R\x06expandB\n\n\x08rel_type"|\n\x10NamedObjectWrite\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"?\n\x0fExtensionObject\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x86\x06\n\x06DdlRel\x12<\n\x0cnamed_object\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\x0bnamedObject\x12C\n\x10extension_object\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0fextensionObject\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12G\n\x0etable_defaults\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructR\rtableDefaults\x12/\n\x06object\x18\x05 \x01(\x0e2\x17.proto.DdlRel.DdlObjectR\x06object\x12#\n\x02op\x18\x06 \x01(\x0e2\x13.proto.DdlRel.DdlOpR\x02op\x123\n\x0fview_definition\x18\x07 \x01(\x0b2\n.proto.RelR\x0eviewDefinition\x12(\n\x06common\x18\x08 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"R\n\tDdlObject\x12\x1a\n\x16DDL_OBJECT_UNSPECIFIED\x10\x00\x12\x14\n\x10DDL_OBJECT_TABLE\x10\x01\x12\x13\n\x0fDDL_OBJECT_VIEW\x10\x02"\x8d\x01\n\x05DdlOp\x12\x16\n\x12DDL_OP_UNSPECIFIED\x10\x00\x12\x11\n\rDDL_OP_CREATE\x10\x01\x12\x1c\n\x18DDL_OP_CREATE_OR_REPLACE\x10\x02\x12\x10\n\x0cDDL_OP_ALTER\x10\x03\x12\x0f\n\x0bDDL_OP_DROP\x10\x04\x12\x18\n\x14DDL_OP_DROP_IF_EXIST\x10\x05B\x0c\n\nwrite_type"\x9b\x07\n\x08WriteRel\x12:\n\x0bnamed_table\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\nnamedTable\x12A\n\x0fextension_table\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0eextensionTable\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12\'\n\x02op\x18\x04 \x01(\x0e2\x17.proto.WriteRel.WriteOpR\x02op\x12 \n\x05input\x18\x05 \x01(\x0b2\n.proto.RelR\x05input\x12;\n\x0bcreate_mode\x18\x08 \x01(\x0e2\x1a.proto.WriteRel.CreateModeR\ncreateMode\x122\n\x06output\x18\x06 \x01(\x0e2\x1a.proto.WriteRel.OutputModeR\x06output\x12(\n\x06common\x18\x07 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"u\n\x07WriteOp\x12\x18\n\x14WRITE_OP_UNSPECIFIED\x10\x00\x12\x13\n\x0fWRITE_OP_INSERT\x10\x01\x12\x13\n\x0fWRITE_OP_DELETE\x10\x02\x12\x13\n\x0fWRITE_OP_UPDATE\x10\x03\x12\x11\n\rWRITE_OP_CTAS\x10\x04"\xb1\x01\n\nCreateMode\x12\x1b\n\x17CREATE_MODE_UNSPECIFIED\x10\x00\x12 \n\x1cCREATE_MODE_APPEND_IF_EXISTS\x10\x01\x12!\n\x1dCREATE_MODE_REPLACE_IF_EXISTS\x10\x02\x12 \n\x1cCREATE_MODE_IGNORE_IF_EXISTS\x10\x03\x12\x1f\n\x1bCREATE_MODE_ERROR_IF_EXISTS\x10\x04"f\n\nOutputMode\x12\x1b\n\x17OUTPUT_MODE_UNSPECIFIED\x10\x00\x12\x19\n\x15OUTPUT_MODE_NO_OUTPUT\x10\x01\x12 \n\x1cOUTPUT_MODE_MODIFIED_RECORDS\x10\x02B\x0c\n\nwrite_type"\xd3\x03\n\tUpdateRel\x124\n\x0bnamed_table\x18\x01 \x01(\x0b2\x11.proto.NamedTableH\x00R\nnamedTable\x125\n\x0ctable_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12N\n\x0ftransformations\x18\x04 \x03(\x0b2$.proto.UpdateRel.TransformExpressionR\x0ftransformations\x12R\n\x12advanced_extension\x18\x05 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1au\n\x13TransformExpression\x129\n\x0etransformation\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x0etransformation\x12#\n\rcolumn_target\x18\x02 \x01(\x05R\x0ccolumnTargetB\r\n\x0bupdate_type"v\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xab\x04\n\x11ComparisonJoinKey\x124\n\x04left\x18\x01 \x01(\x0b2 .proto.Expression.FieldReferenceR\x04left\x126\n\x05right\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceR\x05right\x12G\n\ncomparison\x18\x03 \x01(\x0b2\'.proto.ComparisonJoinKey.ComparisonTypeR\ncomparison\x1a\xa5\x01\n\x0eComparisonType\x12G\n\x06simple\x18\x01 \x01(\x0e2-.proto.ComparisonJoinKey.SimpleComparisonTypeH\x00R\x06simple\x12<\n\x19custom_function_reference\x18\x02 \x01(\rH\x00R\x17customFunctionReferenceB\x0c\n\ninner_type"\xb6\x01\n\x14SimpleComparisonType\x12&\n"SIMPLE_COMPARISON_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19SIMPLE_COMPARISON_TYPE_EQ\x10\x01\x12/\n+SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM\x10\x02\x12&\n"SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL\x10\x03"\xbc\x06\n\x0bHashJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12/\n\x04type\x18\x07 \x01(\x0e2\x1b.proto.HashJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\xbe\x06\n\x0cMergeJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x120\n\x04type\x18\x07 \x01(\x0e2\x1c.proto.MergeJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x88\x05\n\x11NestedLoopJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x125\n\x04type\x18\x05 \x01(\x0e2!.proto.NestedLoopJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x82\x01\n\x10FunctionArgument\x12\x14\n\x04enum\x18\x01 \x01(\tH\x00R\x04enum\x12!\n\x04type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x04type\x12)\n\x05value\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x05valueB\n\n\x08arg_type"D\n\x0eFunctionOption\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n\npreference\x18\x02 \x03(\tR\npreference"\x80V\n\nExpression\x125\n\x07literal\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralH\x00R\x07literal\x12@\n\tselection\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceH\x00R\tselection\x12K\n\x0fscalar_function\x18\x03 \x01(\x0b2 .proto.Expression.ScalarFunctionH\x00R\x0escalarFunction\x12K\n\x0fwindow_function\x18\x05 \x01(\x0b2 .proto.Expression.WindowFunctionH\x00R\x0ewindowFunction\x123\n\x07if_then\x18\x06 \x01(\x0b2\x18.proto.Expression.IfThenH\x00R\x06ifThen\x12Q\n\x11switch_expression\x18\x07 \x01(\x0b2".proto.Expression.SwitchExpressionH\x00R\x10switchExpression\x12L\n\x10singular_or_list\x18\x08 \x01(\x0b2 .proto.Expression.SingularOrListH\x00R\x0esingularOrList\x12C\n\rmulti_or_list\x18\t \x01(\x0b2\x1d.proto.Expression.MultiOrListH\x00R\x0bmultiOrList\x12,\n\x04cast\x18\x0b \x01(\x0b2\x16.proto.Expression.CastH\x00R\x04cast\x128\n\x08subquery\x18\x0c \x01(\x0b2\x1a.proto.Expression.SubqueryH\x00R\x08subquery\x122\n\x06nested\x18\r \x01(\x0b2\x18.proto.Expression.NestedH\x00R\x06nested\x120\n\x04enum\x18\n \x01(\x0b2\x16.proto.Expression.EnumB\x02\x18\x01H\x00R\x04enum\x1a\x86\x01\n\x04Enum\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12@\n\x0bunspecified\x18\x02 \x01(\x0b2\x1c.proto.Expression.Enum.EmptyH\x00R\x0bunspecified\x1a\x0b\n\x05Empty:\x02\x18\x01:\x02\x18\x01B\x0b\n\tenum_kind\x1a\xc7\x15\n\x07Literal\x12\x1a\n\x07boolean\x18\x01 \x01(\x08H\x00R\x07boolean\x12\x10\n\x02i8\x18\x02 \x01(\x05H\x00R\x02i8\x12\x12\n\x03i16\x18\x03 \x01(\x05H\x00R\x03i16\x12\x12\n\x03i32\x18\x05 \x01(\x05H\x00R\x03i32\x12\x12\n\x03i64\x18\x07 \x01(\x03H\x00R\x03i64\x12\x14\n\x04fp32\x18\n \x01(\x02H\x00R\x04fp32\x12\x14\n\x04fp64\x18\x0b \x01(\x01H\x00R\x04fp64\x12\x18\n\x06string\x18\x0c \x01(\tH\x00R\x06string\x12\x18\n\x06binary\x18\r \x01(\x0cH\x00R\x06binary\x12"\n\ttimestamp\x18\x0e \x01(\x03B\x02\x18\x01H\x00R\ttimestamp\x12\x14\n\x04date\x18\x10 \x01(\x05H\x00R\x04date\x12\x14\n\x04time\x18\x11 \x01(\x03H\x00R\x04time\x12d\n\x16interval_year_to_month\x18\x13 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthH\x00R\x13intervalYearToMonth\x12d\n\x16interval_day_to_second\x18\x14 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondH\x00R\x13intervalDayToSecond\x12Y\n\x11interval_compound\x18$ \x01(\x0b2*.proto.Expression.Literal.IntervalCompoundH\x00R\x10intervalCompound\x12\x1f\n\nfixed_char\x18\x15 \x01(\tH\x00R\tfixedChar\x12>\n\x08var_char\x18\x16 \x01(\x0b2!.proto.Expression.Literal.VarCharH\x00R\x07varChar\x12#\n\x0cfixed_binary\x18\x17 \x01(\x0cH\x00R\x0bfixedBinary\x12=\n\x07decimal\x18\x18 \x01(\x0b2!.proto.Expression.Literal.DecimalH\x00R\x07decimal\x12_\n\x13precision_timestamp\x18" \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x12precisionTimestamp\x12d\n\x16precision_timestamp_tz\x18# \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x14precisionTimestampTz\x12:\n\x06struct\x18\x19 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06struct\x121\n\x03map\x18\x1a \x01(\x0b2\x1d.proto.Expression.Literal.MapH\x00R\x03map\x12\'\n\x0ctimestamp_tz\x18\x1b \x01(\x03B\x02\x18\x01H\x00R\x0btimestampTz\x12\x14\n\x04uuid\x18\x1c \x01(\x0cH\x00R\x04uuid\x12!\n\x04null\x18\x1d \x01(\x0b2\x0b.proto.TypeH\x00R\x04null\x124\n\x04list\x18\x1e \x01(\x0b2\x1e.proto.Expression.Literal.ListH\x00R\x04list\x121\n\nempty_list\x18\x1f \x01(\x0b2\x10.proto.Type.ListH\x00R\temptyList\x12.\n\tempty_map\x18 \x01(\x0b2\x0f.proto.Type.MapH\x00R\x08emptyMap\x12J\n\x0cuser_defined\x18! \x01(\x0b2%.proto.Expression.Literal.UserDefinedH\x00R\x0buserDefined\x12\x1a\n\x08nullable\x182 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x183 \x01(\rR\x16typeVariationReference\x1a7\n\x07VarChar\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x12\x16\n\x06length\x18\x02 \x01(\rR\x06length\x1aS\n\x07Decimal\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x14\n\x05scale\x18\x03 \x01(\x05R\x05scale\x1aH\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1a\xb6\x01\n\x03Map\x12E\n\nkey_values\x18\x01 \x03(\x0b2&.proto.Expression.Literal.Map.KeyValueR\tkeyValues\x1ah\n\x08KeyValue\x12+\n\x03key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b2\x19.proto.Expression.LiteralR\x05value\x1aC\n\x13IntervalYearToMonth\x12\x14\n\x05years\x18\x01 \x01(\x05R\x05years\x12\x16\n\x06months\x18\x02 \x01(\x05R\x06months\x1a\xbf\x01\n\x13IntervalDayToSecond\x12\x12\n\x04days\x18\x01 \x01(\x05R\x04days\x12\x18\n\x07seconds\x18\x02 \x01(\x05R\x07seconds\x12(\n\x0cmicroseconds\x18\x03 \x01(\x05B\x02\x18\x01H\x00R\x0cmicroseconds\x12\x1e\n\tprecision\x18\x04 \x01(\x05H\x00R\tprecision\x12\x1e\n\nsubseconds\x18\x05 \x01(\x03R\nsubsecondsB\x10\n\x0eprecision_mode\x1a\xda\x01\n\x10IntervalCompound\x12b\n\x16interval_year_to_month\x18\x01 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthR\x13intervalYearToMonth\x12b\n\x16interval_day_to_second\x18\x02 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondR\x13intervalDayToSecond\x1a;\n\x06Struct\x121\n\x06fields\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06fields\x1a9\n\x04List\x121\n\x06values\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06values\x1a\xe5\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x12>\n\x0ftype_parameters\x18\x03 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x12,\n\x05value\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x05value\x12:\n\x06struct\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06structB\x05\n\x03valB\x0e\n\x0cliteral_type\x1a\x9f\x04\n\x06Nested\x12\x1a\n\x08nullable\x18\x01 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x06struct\x18\x03 \x01(\x0b2\x1f.proto.Expression.Nested.StructH\x00R\x06struct\x123\n\x04list\x18\x04 \x01(\x0b2\x1d.proto.Expression.Nested.ListH\x00R\x04list\x120\n\x03map\x18\x05 \x01(\x0b2\x1c.proto.Expression.Nested.MapH\x00R\x03map\x1a\xa5\x01\n\x03Map\x12D\n\nkey_values\x18\x01 \x03(\x0b2%.proto.Expression.Nested.Map.KeyValueR\tkeyValues\x1aX\n\x08KeyValue\x12#\n\x03key\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x03key\x12\'\n\x05value\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05value\x1a3\n\x06Struct\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a1\n\x04List\x12)\n\x06values\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06valuesB\r\n\x0bnested_type\x1a\x80\x02\n\x0eScalarFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x04 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x05 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x03 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xd5\t\n\x0eWindowFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x121\n\npartitions\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\npartitions\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12)\n\x04args\x18\x08 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xc0\x03\n\x05Bound\x12P\n\tpreceding\x18\x01 \x01(\x0b20.proto.Expression.WindowFunction.Bound.PrecedingH\x00R\tpreceding\x12P\n\tfollowing\x18\x02 \x01(\x0b20.proto.Expression.WindowFunction.Bound.FollowingH\x00R\tfollowing\x12T\n\x0bcurrent_row\x18\x03 \x01(\x0b21.proto.Expression.WindowFunction.Bound.CurrentRowH\x00R\ncurrentRow\x12P\n\tunbounded\x18\x04 \x01(\x0b20.proto.Expression.WindowFunction.Bound.UnboundedH\x00R\tunbounded\x1a#\n\tPreceding\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a#\n\tFollowing\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a\x0c\n\nCurrentRow\x1a\x0b\n\tUnboundedB\x06\n\x04kind"V\n\nBoundsType\x12\x1b\n\x17BOUNDS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10BOUNDS_TYPE_ROWS\x10\x01\x12\x15\n\x11BOUNDS_TYPE_RANGE\x10\x02\x1a\xba\x01\n\x06IfThen\x123\n\x03ifs\x18\x01 \x03(\x0b2!.proto.Expression.IfThen.IfClauseR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1aT\n\x08IfClause\x12!\n\x02if\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1a\xa0\x02\n\x04Cast\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x12\'\n\x05input\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05input\x12Q\n\x10failure_behavior\x18\x03 \x01(\x0e2&.proto.Expression.Cast.FailureBehaviorR\x0ffailureBehavior"{\n\x0fFailureBehavior\x12 \n\x1cFAILURE_BEHAVIOR_UNSPECIFIED\x10\x00\x12 \n\x1cFAILURE_BEHAVIOR_RETURN_NULL\x10\x01\x12$\n FAILURE_BEHAVIOR_THROW_EXCEPTION\x10\x02\x1a\xfd\x01\n\x10SwitchExpression\x12\'\n\x05match\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x05match\x12<\n\x03ifs\x18\x01 \x03(\x0b2*.proto.Expression.SwitchExpression.IfValueR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1a[\n\x07IfValue\x12)\n\x02if\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1af\n\x0eSingularOrList\x12\'\n\x05value\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x05value\x12+\n\x07options\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\x07options\x1a\xab\x01\n\x0bMultiOrList\x12\'\n\x05value\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x05value\x12>\n\x07options\x18\x02 \x03(\x0b2$.proto.Expression.MultiOrList.RecordR\x07options\x1a3\n\x06Record\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a\x83\x04\n\x10EmbeddedFunction\x12/\n\targuments\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\targuments\x12,\n\x0boutput_type\x18\x02 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12o\n\x16python_pickle_function\x18\x03 \x01(\x0b27.proto.Expression.EmbeddedFunction.PythonPickleFunctionH\x00R\x14pythonPickleFunction\x12l\n\x15web_assembly_function\x18\x04 \x01(\x0b26.proto.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00R\x13webAssemblyFunction\x1aV\n\x14PythonPickleFunction\x12\x1a\n\x08function\x18\x01 \x01(\x0cR\x08function\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisite\x1aQ\n\x13WebAssemblyFunction\x12\x16\n\x06script\x18\x01 \x01(\x0cR\x06script\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisiteB\x06\n\x04kind\x1a\xcc\x04\n\x10ReferenceSegment\x12D\n\x07map_key\x18\x01 \x01(\x0b2).proto.Expression.ReferenceSegment.MapKeyH\x00R\x06mapKey\x12S\n\x0cstruct_field\x18\x02 \x01(\x0b2..proto.Expression.ReferenceSegment.StructFieldH\x00R\x0bstructField\x12S\n\x0clist_element\x18\x03 \x01(\x0b2..proto.Expression.ReferenceSegment.ListElementH\x00R\x0blistElement\x1av\n\x06MapKey\x122\n\x07map_key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x06mapKey\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a]\n\x0bStructField\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a_\n\x0bListElement\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05childB\x10\n\x0ereference_type\x1a\xee\n\n\x0eMaskExpression\x12E\n\x06select\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectR\x06select\x128\n\x18maintain_singular_struct\x18\x02 \x01(\x08R\x16maintainSingularStruct\x1a\xdc\x01\n\x06Select\x12G\n\x06struct\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectH\x00R\x06struct\x12A\n\x04list\x18\x02 \x01(\x0b2+.proto.Expression.MaskExpression.ListSelectH\x00R\x04list\x12>\n\x03map\x18\x03 \x01(\x0b2*.proto.Expression.MaskExpression.MapSelectH\x00R\x03mapB\x06\n\x04type\x1a^\n\x0cStructSelect\x12N\n\x0cstruct_items\x18\x01 \x03(\x0b2+.proto.Expression.MaskExpression.StructItemR\x0bstructItems\x1aa\n\nStructItem\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xd6\x03\n\nListSelect\x12X\n\tselection\x18\x01 \x03(\x0b2:.proto.Expression.MaskExpression.ListSelect.ListSelectItemR\tselection\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xae\x02\n\x0eListSelectItem\x12\\\n\x04item\x18\x01 \x01(\x0b2F.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00R\x04item\x12\\\n\x05slice\x18\x02 \x01(\x0b2D.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00R\x05slice\x1a#\n\x0bListElement\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x1a3\n\tListSlice\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03endB\x06\n\x04type\x1a\xdf\x02\n\tMapSelect\x12E\n\x03key\x18\x01 \x01(\x0b21.proto.Expression.MaskExpression.MapSelect.MapKeyH\x00R\x03key\x12]\n\nexpression\x18\x02 \x01(\x0b2;.proto.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00R\nexpression\x12=\n\x05child\x18\x03 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a!\n\x06MapKey\x12\x17\n\x07map_key\x18\x01 \x01(\tR\x06mapKey\x1a@\n\x10MapKeyExpression\x12,\n\x12map_key_expression\x18\x01 \x01(\tR\x10mapKeyExpressionB\x08\n\x06select\x1a\xf9\x03\n\x0eFieldReference\x12O\n\x10direct_reference\x18\x01 \x01(\x0b2".proto.Expression.ReferenceSegmentH\x00R\x0fdirectReference\x12M\n\x10masked_reference\x18\x02 \x01(\x0b2 .proto.Expression.MaskExpressionH\x00R\x0fmaskedReference\x123\n\nexpression\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x01R\nexpression\x12W\n\x0eroot_reference\x18\x04 \x01(\x0b2..proto.Expression.FieldReference.RootReferenceH\x01R\rrootReference\x12Z\n\x0fouter_reference\x18\x05 \x01(\x0b2/.proto.Expression.FieldReference.OuterReferenceH\x01R\x0eouterReference\x1a\x0f\n\rRootReference\x1a-\n\x0eOuterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOutB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\xe1\t\n\x08Subquery\x12;\n\x06scalar\x18\x01 \x01(\x0b2!.proto.Expression.Subquery.ScalarH\x00R\x06scalar\x12K\n\x0cin_predicate\x18\x02 \x01(\x0b2&.proto.Expression.Subquery.InPredicateH\x00R\x0binPredicate\x12N\n\rset_predicate\x18\x03 \x01(\x0b2\'.proto.Expression.Subquery.SetPredicateH\x00R\x0csetPredicate\x12Q\n\x0eset_comparison\x18\x04 \x01(\x0b2(.proto.Expression.Subquery.SetComparisonH\x00R\rsetComparison\x1a*\n\x06Scalar\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x1ab\n\x0bInPredicate\x12+\n\x07needles\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x07needles\x12&\n\x08haystack\x18\x02 \x01(\x0b2\n.proto.RelR\x08haystack\x1a\xe9\x01\n\x0cSetPredicate\x12V\n\x0cpredicate_op\x18\x01 \x01(\x0e23.proto.Expression.Subquery.SetPredicate.PredicateOpR\x0bpredicateOp\x12"\n\x06tuples\x18\x02 \x01(\x0b2\n.proto.RelR\x06tuples"]\n\x0bPredicateOp\x12\x1c\n\x18PREDICATE_OP_UNSPECIFIED\x10\x00\x12\x17\n\x13PREDICATE_OP_EXISTS\x10\x01\x12\x17\n\x13PREDICATE_OP_UNIQUE\x10\x02\x1a\x9a\x04\n\rSetComparison\x12W\n\x0creduction_op\x18\x01 \x01(\x0e24.proto.Expression.Subquery.SetComparison.ReductionOpR\x0breductionOp\x12Z\n\rcomparison_op\x18\x02 \x01(\x0e25.proto.Expression.Subquery.SetComparison.ComparisonOpR\x0ccomparisonOp\x12%\n\x04left\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x04left\x12 \n\x05right\x18\x04 \x01(\x0b2\n.proto.RelR\x05right"\xb1\x01\n\x0cComparisonOp\x12\x1d\n\x19COMPARISON_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10COMPARISON_OP_EQ\x10\x01\x12\x14\n\x10COMPARISON_OP_NE\x10\x02\x12\x14\n\x10COMPARISON_OP_LT\x10\x03\x12\x14\n\x10COMPARISON_OP_GT\x10\x04\x12\x14\n\x10COMPARISON_OP_LE\x10\x05\x12\x14\n\x10COMPARISON_OP_GE\x10\x06"W\n\x0bReductionOp\x12\x1c\n\x18REDUCTION_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10REDUCTION_OP_ANY\x10\x01\x12\x14\n\x10REDUCTION_OP_ALL\x10\x02B\x0f\n\rsubquery_typeB\n\n\x08rex_type"\xa5\x03\n\tSortField\x12%\n\x04expr\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x04expr\x12>\n\tdirection\x18\x02 \x01(\x0e2\x1e.proto.SortField.SortDirectionH\x00R\tdirection\x12D\n\x1dcomparison_function_reference\x18\x03 \x01(\rH\x00R\x1bcomparisonFunctionReference"\xdd\x01\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12"\n\x1eSORT_DIRECTION_ASC_NULLS_FIRST\x10\x01\x12!\n\x1dSORT_DIRECTION_ASC_NULLS_LAST\x10\x02\x12#\n\x1fSORT_DIRECTION_DESC_NULLS_FIRST\x10\x03\x12"\n\x1eSORT_DIRECTION_DESC_NULLS_LAST\x10\x04\x12\x1c\n\x18SORT_DIRECTION_CLUSTERED\x10\x05B\x0b\n\tsort_kind"\xb1\x04\n\x11AggregateFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x07 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x08 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x05 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x04 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\x06 \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args"\x84\x01\n\x15AggregationInvocation\x12&\n"AGGREGATION_INVOCATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1aAGGREGATION_INVOCATION_ALL\x10\x01\x12#\n\x1fAGGREGATION_INVOCATION_DISTINCT\x10\x02"7\n\x0cReferenceRel\x12\'\n\x0fsubtree_ordinal\x18\x01 \x01(\x05R\x0esubtreeOrdinal*\xef\x01\n\x10AggregationPhase\x12!\n\x1dAGGREGATION_PHASE_UNSPECIFIED\x10\x00\x12-\n)AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE\x10\x01\x122\n.AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE\x10\x02\x12\'\n#AGGREGATION_PHASE_INITIAL_TO_RESULT\x10\x03\x12,\n(AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT\x10\x04B#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13proto/algebra.proto\x12\x05proto\x1a\x19google/protobuf/any.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto"\x91\x0b\n\tRelCommon\x121\n\x06direct\x18\x01 \x01(\x0b2\x17.proto.RelCommon.DirectH\x00R\x06direct\x12+\n\x04emit\x18\x02 \x01(\x0b2\x15.proto.RelCommon.EmitH\x00R\x04emit\x12)\n\x04hint\x18\x03 \x01(\x0b2\x15.proto.RelCommon.HintR\x04hint\x12R\n\x12advanced_extension\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x08\n\x06Direct\x1a-\n\x04Emit\x12%\n\x0eoutput_mapping\x18\x01 \x03(\x05R\routputMapping\x1a\xde\x08\n\x04Hint\x121\n\x05stats\x18\x01 \x01(\x0b2\x1b.proto.RelCommon.Hint.StatsR\x05stats\x12G\n\nconstraint\x18\x02 \x01(\x0b2\'.proto.RelCommon.Hint.RuntimeConstraintR\nconstraint\x12\x14\n\x05alias\x18\x03 \x01(\tR\x05alias\x12!\n\x0coutput_names\x18\x04 \x03(\tR\x0boutputNames\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12U\n\x12saved_computations\x18\x0b \x03(\x0b2&.proto.RelCommon.Hint.SavedComputationR\x11savedComputations\x12X\n\x13loaded_computations\x18\x0c \x03(\x0b2\'.proto.RelCommon.Hint.LoadedComputationR\x12loadedComputations\x1a\x99\x01\n\x05Stats\x12\x1b\n\trow_count\x18\x01 \x01(\x01R\x08rowCount\x12\x1f\n\x0brecord_size\x18\x02 \x01(\x01R\nrecordSize\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1ag\n\x11RuntimeConstraint\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1at\n\x10SavedComputation\x12%\n\x0ecomputation_id\x18\x01 \x01(\x05R\rcomputationId\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type\x1a\x88\x01\n\x11LoadedComputation\x128\n\x18computation_id_reference\x18\x01 \x01(\x05R\x16computationIdReference\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type"\x95\x01\n\x0fComputationType\x12 \n\x1cCOMPUTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aCOMPUTATION_TYPE_HASHTABLE\x10\x01\x12!\n\x1dCOMPUTATION_TYPE_BLOOM_FILTER\x10\x02\x12\x1d\n\x18COMPUTATION_TYPE_UNKNOWN\x10\x8fNB\x0b\n\temit_kind"\x85\x14\n\x07ReadRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x123\n\x0bbase_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\nbaseSchema\x12)\n\x06filter\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x06filter\x12?\n\x12best_effort_filter\x18\x0b \x01(\x0b2\x11.proto.ExpressionR\x10bestEffortFilter\x12@\n\nprojection\x18\x04 \x01(\x0b2 .proto.Expression.MaskExpressionR\nprojection\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12B\n\rvirtual_table\x18\x05 \x01(\x0b2\x1b.proto.ReadRel.VirtualTableH\x00R\x0cvirtualTable\x12<\n\x0blocal_files\x18\x06 \x01(\x0b2\x19.proto.ReadRel.LocalFilesH\x00R\nlocalFiles\x12<\n\x0bnamed_table\x18\x07 \x01(\x0b2\x19.proto.ReadRel.NamedTableH\x00R\nnamedTable\x12H\n\x0fextension_table\x18\x08 \x01(\x0b2\x1d.proto.ReadRel.ExtensionTableH\x00R\x0eextensionTable\x12B\n\riceberg_table\x18\t \x01(\x0b2\x1b.proto.ReadRel.IcebergTableH\x00R\x0cicebergTable\x1av\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xfc\x01\n\x0cIcebergTable\x12F\n\x06direct\x18\x01 \x01(\x0b2,.proto.ReadRel.IcebergTable.MetadataFileReadH\x00R\x06direct\x1a\x95\x01\n\x10MetadataFileRead\x12!\n\x0cmetadata_uri\x18\x01 \x01(\tR\x0bmetadataUri\x12!\n\x0bsnapshot_id\x18\x02 \x01(\tH\x00R\nsnapshotId\x12/\n\x12snapshot_timestamp\x18\x03 \x01(\x03H\x00R\x11snapshotTimestampB\n\n\x08snapshotB\x0c\n\ntable_type\x1a\x8f\x01\n\x0cVirtualTable\x12<\n\x06values\x18\x01 \x03(\x0b2 .proto.Expression.Literal.StructB\x02\x18\x01R\x06values\x12A\n\x0bexpressions\x18\x02 \x03(\x0b2\x1f.proto.Expression.Nested.StructR\x0bexpressions\x1a>\n\x0eExtensionTable\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail\x1a\xf4\t\n\nLocalFiles\x12;\n\x05items\x18\x01 \x03(\x0b2%.proto.ReadRel.LocalFiles.FileOrFilesR\x05items\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xd4\x08\n\x0bFileOrFiles\x12\x1b\n\x08uri_path\x18\x01 \x01(\tH\x00R\x07uriPath\x12$\n\ruri_path_glob\x18\x02 \x01(\tH\x00R\x0buriPathGlob\x12\x1b\n\x08uri_file\x18\x03 \x01(\tH\x00R\x07uriFile\x12\x1f\n\nuri_folder\x18\x04 \x01(\tH\x00R\turiFolder\x12\'\n\x0fpartition_index\x18\x06 \x01(\x04R\x0epartitionIndex\x12\x14\n\x05start\x18\x07 \x01(\x04R\x05start\x12\x16\n\x06length\x18\x08 \x01(\x04R\x06length\x12T\n\x07parquet\x18\t \x01(\x0b28.proto.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptionsH\x01R\x07parquet\x12N\n\x05arrow\x18\n \x01(\x0b26.proto.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptionsH\x01R\x05arrow\x12H\n\x03orc\x18\x0b \x01(\x0b24.proto.ReadRel.LocalFiles.FileOrFiles.OrcReadOptionsH\x01R\x03orc\x124\n\textension\x18\x0c \x01(\x0b2\x14.google.protobuf.AnyH\x01R\textension\x12K\n\x04dwrf\x18\r \x01(\x0b25.proto.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptionsH\x01R\x04dwrf\x12]\n\x04text\x18\x0e \x01(\x0b2G.proto.ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptionsH\x01R\x04text\x1a\x14\n\x12ParquetReadOptions\x1a\x12\n\x10ArrowReadOptions\x1a\x10\n\x0eOrcReadOptions\x1a\x11\n\x0fDwrfReadOptions\x1a\xa1\x02\n!DelimiterSeparatedTextReadOptions\x12\'\n\x0ffield_delimiter\x18\x01 \x01(\tR\x0efieldDelimiter\x12"\n\rmax_line_size\x18\x02 \x01(\x04R\x0bmaxLineSize\x12\x14\n\x05quote\x18\x03 \x01(\tR\x05quote\x12/\n\x14header_lines_to_skip\x18\x04 \x01(\x04R\x11headerLinesToSkip\x12\x16\n\x06escape\x18\x05 \x01(\tR\x06escape\x126\n\x15value_treated_as_null\x18\x06 \x01(\tH\x00R\x12valueTreatedAsNull\x88\x01\x01B\x18\n\x16_value_treated_as_nullB\x0b\n\tpath_typeB\r\n\x0bfile_formatJ\x04\x08\x05\x10\x06R\x06formatB\x0b\n\tread_type"\xe1\x01\n\nProjectRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x123\n\x0bexpressions\x18\x03 \x03(\x0b2\x11.proto.ExpressionR\x0bexpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xb1\x05\n\x07JoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x12;\n\x10post_join_filter\x18\x05 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12+\n\x04type\x18\x06 \x01(\x0e2\x17.proto.JoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x06\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x08\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\xca\x01\n\x08CrossRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xeb\x02\n\x08FetchRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\x1c\n\x06offset\x18\x03 \x01(\x03B\x02\x18\x01H\x00R\x06offset\x124\n\x0boffset_expr\x18\x05 \x01(\x0b2\x11.proto.ExpressionH\x00R\noffsetExpr\x12\x1a\n\x05count\x18\x04 \x01(\x03B\x02\x18\x01H\x01R\x05count\x122\n\ncount_expr\x18\x06 \x01(\x0b2\x11.proto.ExpressionH\x01R\tcountExpr\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtensionB\r\n\x0boffset_modeB\x0c\n\ncount_mode"\xdf\x04\n\x0cAggregateRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12:\n\tgroupings\x18\x03 \x03(\x0b2\x1c.proto.AggregateRel.GroupingR\tgroupings\x127\n\x08measures\x18\x04 \x03(\x0b2\x1b.proto.AggregateRel.MeasureR\x08measures\x12D\n\x14grouping_expressions\x18\x05 \x03(\x0b2\x11.proto.ExpressionR\x13groupingExpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x89\x01\n\x08Grouping\x12H\n\x14grouping_expressions\x18\x01 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x13groupingExpressions\x123\n\x15expression_references\x18\x02 \x03(\rR\x14expressionReferences\x1ah\n\x07Measure\x122\n\x07measure\x18\x01 \x01(\x0b2\x18.proto.AggregateFunctionR\x07measure\x12)\n\x06filter\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x06filter"\xca\x07\n\x1cConsistentPartitionWindowRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12`\n\x10window_functions\x18\x03 \x03(\x0b25.proto.ConsistentPartitionWindowRel.WindowRelFunctionR\x0fwindowFunctions\x12F\n\x15partition_expressions\x18\x04 \x03(\x0b2\x11.proto.ExpressionR\x14partitionExpressions\x12&\n\x05sorts\x18\x05 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xb7\x04\n\x11WindowRelFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType"\xd1\x01\n\x07SortRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xdc\x01\n\tFilterRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xde\x03\n\x06SetRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12#\n\x02op\x18\x03 \x01(\x0e2\x13.proto.SetRel.SetOpR\x02op\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\x8c\x02\n\x05SetOp\x12\x16\n\x12SET_OP_UNSPECIFIED\x10\x00\x12\x18\n\x14SET_OP_MINUS_PRIMARY\x10\x01\x12\x1c\n\x18SET_OP_MINUS_PRIMARY_ALL\x10\x07\x12\x19\n\x15SET_OP_MINUS_MULTISET\x10\x02\x12\x1f\n\x1bSET_OP_INTERSECTION_PRIMARY\x10\x03\x12 \n\x1cSET_OP_INTERSECTION_MULTISET\x10\x04\x12$\n SET_OP_INTERSECTION_MULTISET_ALL\x10\x08\x12\x19\n\x15SET_OP_UNION_DISTINCT\x10\x05\x12\x14\n\x10SET_OP_UNION_ALL\x10\x06"\x8e\x01\n\x12ExtensionSingleRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"j\n\x10ExtensionLeafRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12,\n\x06detail\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x8f\x01\n\x11ExtensionMultiRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\xe9\x08\n\x0bExchangeRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\'\n\x0fpartition_count\x18\x03 \x01(\x05R\x0epartitionCount\x12;\n\x07targets\x18\x04 \x03(\x0b2!.proto.ExchangeRel.ExchangeTargetR\x07targets\x12N\n\x11scatter_by_fields\x18\x05 \x01(\x0b2 .proto.ExchangeRel.ScatterFieldsH\x00R\x0fscatterByFields\x12P\n\rsingle_target\x18\x06 \x01(\x0b2).proto.ExchangeRel.SingleBucketExpressionH\x00R\x0csingleTarget\x12M\n\x0cmulti_target\x18\x07 \x01(\x0b2(.proto.ExchangeRel.MultiBucketExpressionH\x00R\x0bmultiTarget\x12@\n\x0bround_robin\x18\x08 \x01(\x0b2\x1d.proto.ExchangeRel.RoundRobinH\x00R\nroundRobin\x12<\n\tbroadcast\x18\t \x01(\x0b2\x1c.proto.ExchangeRel.BroadcastH\x00R\tbroadcast\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1aI\n\rScatterFields\x128\n\x06fields\x18\x01 \x03(\x0b2 .proto.Expression.FieldReferenceR\x06fields\x1aK\n\x16SingleBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x1a|\n\x15MultiBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x120\n\x14constrained_to_count\x18\x02 \x01(\x08R\x12constrainedToCount\x1a\x0b\n\tBroadcast\x1a"\n\nRoundRobin\x12\x14\n\x05exact\x18\x01 \x01(\x08R\x05exact\x1a\x8a\x01\n\x0eExchangeTarget\x12!\n\x0cpartition_id\x18\x01 \x03(\x05R\x0bpartitionId\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x122\n\x08extended\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x08extendedB\r\n\x0btarget_typeB\x0f\n\rexchange_kind"\xfc\x02\n\tExpandRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x124\n\x06fields\x18\x04 \x03(\x0b2\x1c.proto.ExpandRel.ExpandFieldR\x06fields\x1a\xa7\x01\n\x0bExpandField\x12J\n\x0fswitching_field\x18\x02 \x01(\x0b2\x1f.proto.ExpandRel.SwitchingFieldH\x00R\x0eswitchingField\x12>\n\x10consistent_field\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x0fconsistentFieldB\x0c\n\nfield_type\x1aC\n\x0eSwitchingField\x121\n\nduplicates\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\nduplicates"A\n\x07RelRoot\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x12\x14\n\x05names\x18\x02 \x03(\tR\x05names"\xd0\x08\n\x03Rel\x12$\n\x04read\x18\x01 \x01(\x0b2\x0e.proto.ReadRelH\x00R\x04read\x12*\n\x06filter\x18\x02 \x01(\x0b2\x10.proto.FilterRelH\x00R\x06filter\x12\'\n\x05fetch\x18\x03 \x01(\x0b2\x0f.proto.FetchRelH\x00R\x05fetch\x123\n\taggregate\x18\x04 \x01(\x0b2\x13.proto.AggregateRelH\x00R\taggregate\x12$\n\x04sort\x18\x05 \x01(\x0b2\x0e.proto.SortRelH\x00R\x04sort\x12$\n\x04join\x18\x06 \x01(\x0b2\x0e.proto.JoinRelH\x00R\x04join\x12-\n\x07project\x18\x07 \x01(\x0b2\x11.proto.ProjectRelH\x00R\x07project\x12!\n\x03set\x18\x08 \x01(\x0b2\r.proto.SetRelH\x00R\x03set\x12F\n\x10extension_single\x18\t \x01(\x0b2\x19.proto.ExtensionSingleRelH\x00R\x0fextensionSingle\x12C\n\x0fextension_multi\x18\n \x01(\x0b2\x18.proto.ExtensionMultiRelH\x00R\x0eextensionMulti\x12@\n\x0eextension_leaf\x18\x0b \x01(\x0b2\x17.proto.ExtensionLeafRelH\x00R\rextensionLeaf\x12\'\n\x05cross\x18\x0c \x01(\x0b2\x0f.proto.CrossRelH\x00R\x05cross\x123\n\treference\x18\x15 \x01(\x0b2\x13.proto.ReferenceRelH\x00R\treference\x12\'\n\x05write\x18\x13 \x01(\x0b2\x0f.proto.WriteRelH\x00R\x05write\x12!\n\x03ddl\x18\x14 \x01(\x0b2\r.proto.DdlRelH\x00R\x03ddl\x12*\n\x06update\x18\x16 \x01(\x0b2\x10.proto.UpdateRelH\x00R\x06update\x121\n\thash_join\x18\r \x01(\x0b2\x12.proto.HashJoinRelH\x00R\x08hashJoin\x124\n\nmerge_join\x18\x0e \x01(\x0b2\x13.proto.MergeJoinRelH\x00R\tmergeJoin\x12D\n\x10nested_loop_join\x18\x12 \x01(\x0b2\x18.proto.NestedLoopJoinRelH\x00R\x0enestedLoopJoin\x12=\n\x06window\x18\x11 \x01(\x0b2#.proto.ConsistentPartitionWindowRelH\x00R\x06window\x120\n\x08exchange\x18\x0f \x01(\x0b2\x12.proto.ExchangeRelH\x00R\x08exchange\x12*\n\x06expand\x18\x10 \x01(\x0b2\x10.proto.ExpandRelH\x00R\x06expandB\n\n\x08rel_type"|\n\x10NamedObjectWrite\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"?\n\x0fExtensionObject\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x86\x06\n\x06DdlRel\x12<\n\x0cnamed_object\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\x0bnamedObject\x12C\n\x10extension_object\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0fextensionObject\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12G\n\x0etable_defaults\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructR\rtableDefaults\x12/\n\x06object\x18\x05 \x01(\x0e2\x17.proto.DdlRel.DdlObjectR\x06object\x12#\n\x02op\x18\x06 \x01(\x0e2\x13.proto.DdlRel.DdlOpR\x02op\x123\n\x0fview_definition\x18\x07 \x01(\x0b2\n.proto.RelR\x0eviewDefinition\x12(\n\x06common\x18\x08 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"R\n\tDdlObject\x12\x1a\n\x16DDL_OBJECT_UNSPECIFIED\x10\x00\x12\x14\n\x10DDL_OBJECT_TABLE\x10\x01\x12\x13\n\x0fDDL_OBJECT_VIEW\x10\x02"\x8d\x01\n\x05DdlOp\x12\x16\n\x12DDL_OP_UNSPECIFIED\x10\x00\x12\x11\n\rDDL_OP_CREATE\x10\x01\x12\x1c\n\x18DDL_OP_CREATE_OR_REPLACE\x10\x02\x12\x10\n\x0cDDL_OP_ALTER\x10\x03\x12\x0f\n\x0bDDL_OP_DROP\x10\x04\x12\x18\n\x14DDL_OP_DROP_IF_EXIST\x10\x05B\x0c\n\nwrite_type"\x9b\x07\n\x08WriteRel\x12:\n\x0bnamed_table\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\nnamedTable\x12A\n\x0fextension_table\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0eextensionTable\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12\'\n\x02op\x18\x04 \x01(\x0e2\x17.proto.WriteRel.WriteOpR\x02op\x12 \n\x05input\x18\x05 \x01(\x0b2\n.proto.RelR\x05input\x12;\n\x0bcreate_mode\x18\x08 \x01(\x0e2\x1a.proto.WriteRel.CreateModeR\ncreateMode\x122\n\x06output\x18\x06 \x01(\x0e2\x1a.proto.WriteRel.OutputModeR\x06output\x12(\n\x06common\x18\x07 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"u\n\x07WriteOp\x12\x18\n\x14WRITE_OP_UNSPECIFIED\x10\x00\x12\x13\n\x0fWRITE_OP_INSERT\x10\x01\x12\x13\n\x0fWRITE_OP_DELETE\x10\x02\x12\x13\n\x0fWRITE_OP_UPDATE\x10\x03\x12\x11\n\rWRITE_OP_CTAS\x10\x04"\xb1\x01\n\nCreateMode\x12\x1b\n\x17CREATE_MODE_UNSPECIFIED\x10\x00\x12 \n\x1cCREATE_MODE_APPEND_IF_EXISTS\x10\x01\x12!\n\x1dCREATE_MODE_REPLACE_IF_EXISTS\x10\x02\x12 \n\x1cCREATE_MODE_IGNORE_IF_EXISTS\x10\x03\x12\x1f\n\x1bCREATE_MODE_ERROR_IF_EXISTS\x10\x04"f\n\nOutputMode\x12\x1b\n\x17OUTPUT_MODE_UNSPECIFIED\x10\x00\x12\x19\n\x15OUTPUT_MODE_NO_OUTPUT\x10\x01\x12 \n\x1cOUTPUT_MODE_MODIFIED_RECORDS\x10\x02B\x0c\n\nwrite_type"\xd3\x03\n\tUpdateRel\x124\n\x0bnamed_table\x18\x01 \x01(\x0b2\x11.proto.NamedTableH\x00R\nnamedTable\x125\n\x0ctable_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12N\n\x0ftransformations\x18\x04 \x03(\x0b2$.proto.UpdateRel.TransformExpressionR\x0ftransformations\x12R\n\x12advanced_extension\x18\x05 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1au\n\x13TransformExpression\x129\n\x0etransformation\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x0etransformation\x12#\n\rcolumn_target\x18\x02 \x01(\x05R\x0ccolumnTargetB\r\n\x0bupdate_type"v\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xab\x04\n\x11ComparisonJoinKey\x124\n\x04left\x18\x01 \x01(\x0b2 .proto.Expression.FieldReferenceR\x04left\x126\n\x05right\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceR\x05right\x12G\n\ncomparison\x18\x03 \x01(\x0b2\'.proto.ComparisonJoinKey.ComparisonTypeR\ncomparison\x1a\xa5\x01\n\x0eComparisonType\x12G\n\x06simple\x18\x01 \x01(\x0e2-.proto.ComparisonJoinKey.SimpleComparisonTypeH\x00R\x06simple\x12<\n\x19custom_function_reference\x18\x02 \x01(\rH\x00R\x17customFunctionReferenceB\x0c\n\ninner_type"\xb6\x01\n\x14SimpleComparisonType\x12&\n"SIMPLE_COMPARISON_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19SIMPLE_COMPARISON_TYPE_EQ\x10\x01\x12/\n+SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM\x10\x02\x12&\n"SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL\x10\x03"\xbc\x06\n\x0bHashJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12/\n\x04type\x18\x07 \x01(\x0e2\x1b.proto.HashJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\xbe\x06\n\x0cMergeJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x120\n\x04type\x18\x07 \x01(\x0e2\x1c.proto.MergeJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x88\x05\n\x11NestedLoopJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x125\n\x04type\x18\x05 \x01(\x0e2!.proto.NestedLoopJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x82\x01\n\x10FunctionArgument\x12\x14\n\x04enum\x18\x01 \x01(\tH\x00R\x04enum\x12!\n\x04type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x04type\x12)\n\x05value\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x05valueB\n\n\x08arg_type"D\n\x0eFunctionOption\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n\npreference\x18\x02 \x03(\tR\npreference"\xdfW\n\nExpression\x125\n\x07literal\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralH\x00R\x07literal\x12@\n\tselection\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceH\x00R\tselection\x12K\n\x0fscalar_function\x18\x03 \x01(\x0b2 .proto.Expression.ScalarFunctionH\x00R\x0escalarFunction\x12K\n\x0fwindow_function\x18\x05 \x01(\x0b2 .proto.Expression.WindowFunctionH\x00R\x0ewindowFunction\x123\n\x07if_then\x18\x06 \x01(\x0b2\x18.proto.Expression.IfThenH\x00R\x06ifThen\x12Q\n\x11switch_expression\x18\x07 \x01(\x0b2".proto.Expression.SwitchExpressionH\x00R\x10switchExpression\x12L\n\x10singular_or_list\x18\x08 \x01(\x0b2 .proto.Expression.SingularOrListH\x00R\x0esingularOrList\x12C\n\rmulti_or_list\x18\t \x01(\x0b2\x1d.proto.Expression.MultiOrListH\x00R\x0bmultiOrList\x12,\n\x04cast\x18\x0b \x01(\x0b2\x16.proto.Expression.CastH\x00R\x04cast\x128\n\x08subquery\x18\x0c \x01(\x0b2\x1a.proto.Expression.SubqueryH\x00R\x08subquery\x122\n\x06nested\x18\r \x01(\x0b2\x18.proto.Expression.NestedH\x00R\x06nested\x12F\n\x11dynamic_parameter\x18\x0e \x01(\x0b2\x17.proto.DynamicParameterH\x00R\x10dynamicParameter\x120\n\x04enum\x18\n \x01(\x0b2\x16.proto.Expression.EnumB\x02\x18\x01H\x00R\x04enum\x1a\x86\x01\n\x04Enum\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12@\n\x0bunspecified\x18\x02 \x01(\x0b2\x1c.proto.Expression.Enum.EmptyH\x00R\x0bunspecified\x1a\x0b\n\x05Empty:\x02\x18\x01:\x02\x18\x01B\x0b\n\tenum_kind\x1a\xde\x16\n\x07Literal\x12\x1a\n\x07boolean\x18\x01 \x01(\x08H\x00R\x07boolean\x12\x10\n\x02i8\x18\x02 \x01(\x05H\x00R\x02i8\x12\x12\n\x03i16\x18\x03 \x01(\x05H\x00R\x03i16\x12\x12\n\x03i32\x18\x05 \x01(\x05H\x00R\x03i32\x12\x12\n\x03i64\x18\x07 \x01(\x03H\x00R\x03i64\x12\x14\n\x04fp32\x18\n \x01(\x02H\x00R\x04fp32\x12\x14\n\x04fp64\x18\x0b \x01(\x01H\x00R\x04fp64\x12\x18\n\x06string\x18\x0c \x01(\tH\x00R\x06string\x12\x18\n\x06binary\x18\r \x01(\x0cH\x00R\x06binary\x12"\n\ttimestamp\x18\x0e \x01(\x03B\x02\x18\x01H\x00R\ttimestamp\x12\x14\n\x04date\x18\x10 \x01(\x05H\x00R\x04date\x12\x14\n\x04time\x18\x11 \x01(\x03H\x00R\x04time\x12d\n\x16interval_year_to_month\x18\x13 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthH\x00R\x13intervalYearToMonth\x12d\n\x16interval_day_to_second\x18\x14 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondH\x00R\x13intervalDayToSecond\x12Y\n\x11interval_compound\x18$ \x01(\x0b2*.proto.Expression.Literal.IntervalCompoundH\x00R\x10intervalCompound\x12\x1f\n\nfixed_char\x18\x15 \x01(\tH\x00R\tfixedChar\x12>\n\x08var_char\x18\x16 \x01(\x0b2!.proto.Expression.Literal.VarCharH\x00R\x07varChar\x12#\n\x0cfixed_binary\x18\x17 \x01(\x0cH\x00R\x0bfixedBinary\x12=\n\x07decimal\x18\x18 \x01(\x0b2!.proto.Expression.Literal.DecimalH\x00R\x07decimal\x12P\n\x0eprecision_time\x18% \x01(\x0b2\'.proto.Expression.Literal.PrecisionTimeH\x00R\rprecisionTime\x12_\n\x13precision_timestamp\x18" \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x12precisionTimestamp\x12d\n\x16precision_timestamp_tz\x18# \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x14precisionTimestampTz\x12:\n\x06struct\x18\x19 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06struct\x121\n\x03map\x18\x1a \x01(\x0b2\x1d.proto.Expression.Literal.MapH\x00R\x03map\x12\'\n\x0ctimestamp_tz\x18\x1b \x01(\x03B\x02\x18\x01H\x00R\x0btimestampTz\x12\x14\n\x04uuid\x18\x1c \x01(\x0cH\x00R\x04uuid\x12!\n\x04null\x18\x1d \x01(\x0b2\x0b.proto.TypeH\x00R\x04null\x124\n\x04list\x18\x1e \x01(\x0b2\x1e.proto.Expression.Literal.ListH\x00R\x04list\x121\n\nempty_list\x18\x1f \x01(\x0b2\x10.proto.Type.ListH\x00R\temptyList\x12.\n\tempty_map\x18 \x01(\x0b2\x0f.proto.Type.MapH\x00R\x08emptyMap\x12J\n\x0cuser_defined\x18! \x01(\x0b2%.proto.Expression.Literal.UserDefinedH\x00R\x0buserDefined\x12\x1a\n\x08nullable\x182 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x183 \x01(\rR\x16typeVariationReference\x1a7\n\x07VarChar\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x12\x16\n\x06length\x18\x02 \x01(\rR\x06length\x1aS\n\x07Decimal\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x14\n\x05scale\x18\x03 \x01(\x05R\x05scale\x1aC\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1aH\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1a\xb6\x01\n\x03Map\x12E\n\nkey_values\x18\x01 \x03(\x0b2&.proto.Expression.Literal.Map.KeyValueR\tkeyValues\x1ah\n\x08KeyValue\x12+\n\x03key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b2\x19.proto.Expression.LiteralR\x05value\x1aC\n\x13IntervalYearToMonth\x12\x14\n\x05years\x18\x01 \x01(\x05R\x05years\x12\x16\n\x06months\x18\x02 \x01(\x05R\x06months\x1a\xbf\x01\n\x13IntervalDayToSecond\x12\x12\n\x04days\x18\x01 \x01(\x05R\x04days\x12\x18\n\x07seconds\x18\x02 \x01(\x05R\x07seconds\x12(\n\x0cmicroseconds\x18\x03 \x01(\x05B\x02\x18\x01H\x00R\x0cmicroseconds\x12\x1e\n\tprecision\x18\x04 \x01(\x05H\x00R\tprecision\x12\x1e\n\nsubseconds\x18\x05 \x01(\x03R\nsubsecondsB\x10\n\x0eprecision_mode\x1a\xda\x01\n\x10IntervalCompound\x12b\n\x16interval_year_to_month\x18\x01 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthR\x13intervalYearToMonth\x12b\n\x16interval_day_to_second\x18\x02 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondR\x13intervalDayToSecond\x1a;\n\x06Struct\x121\n\x06fields\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06fields\x1a9\n\x04List\x121\n\x06values\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06values\x1a\xe5\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x12>\n\x0ftype_parameters\x18\x03 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x12,\n\x05value\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x05value\x12:\n\x06struct\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06structB\x05\n\x03valB\x0e\n\x0cliteral_type\x1a\x9f\x04\n\x06Nested\x12\x1a\n\x08nullable\x18\x01 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x06struct\x18\x03 \x01(\x0b2\x1f.proto.Expression.Nested.StructH\x00R\x06struct\x123\n\x04list\x18\x04 \x01(\x0b2\x1d.proto.Expression.Nested.ListH\x00R\x04list\x120\n\x03map\x18\x05 \x01(\x0b2\x1c.proto.Expression.Nested.MapH\x00R\x03map\x1a\xa5\x01\n\x03Map\x12D\n\nkey_values\x18\x01 \x03(\x0b2%.proto.Expression.Nested.Map.KeyValueR\tkeyValues\x1aX\n\x08KeyValue\x12#\n\x03key\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x03key\x12\'\n\x05value\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05value\x1a3\n\x06Struct\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a1\n\x04List\x12)\n\x06values\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06valuesB\r\n\x0bnested_type\x1a\x80\x02\n\x0eScalarFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x04 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x05 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x03 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xd5\t\n\x0eWindowFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x121\n\npartitions\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\npartitions\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12)\n\x04args\x18\x08 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xc0\x03\n\x05Bound\x12P\n\tpreceding\x18\x01 \x01(\x0b20.proto.Expression.WindowFunction.Bound.PrecedingH\x00R\tpreceding\x12P\n\tfollowing\x18\x02 \x01(\x0b20.proto.Expression.WindowFunction.Bound.FollowingH\x00R\tfollowing\x12T\n\x0bcurrent_row\x18\x03 \x01(\x0b21.proto.Expression.WindowFunction.Bound.CurrentRowH\x00R\ncurrentRow\x12P\n\tunbounded\x18\x04 \x01(\x0b20.proto.Expression.WindowFunction.Bound.UnboundedH\x00R\tunbounded\x1a#\n\tPreceding\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a#\n\tFollowing\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a\x0c\n\nCurrentRow\x1a\x0b\n\tUnboundedB\x06\n\x04kind"V\n\nBoundsType\x12\x1b\n\x17BOUNDS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10BOUNDS_TYPE_ROWS\x10\x01\x12\x15\n\x11BOUNDS_TYPE_RANGE\x10\x02\x1a\xba\x01\n\x06IfThen\x123\n\x03ifs\x18\x01 \x03(\x0b2!.proto.Expression.IfThen.IfClauseR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1aT\n\x08IfClause\x12!\n\x02if\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1a\xa0\x02\n\x04Cast\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x12\'\n\x05input\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05input\x12Q\n\x10failure_behavior\x18\x03 \x01(\x0e2&.proto.Expression.Cast.FailureBehaviorR\x0ffailureBehavior"{\n\x0fFailureBehavior\x12 \n\x1cFAILURE_BEHAVIOR_UNSPECIFIED\x10\x00\x12 \n\x1cFAILURE_BEHAVIOR_RETURN_NULL\x10\x01\x12$\n FAILURE_BEHAVIOR_THROW_EXCEPTION\x10\x02\x1a\xfd\x01\n\x10SwitchExpression\x12\'\n\x05match\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x05match\x12<\n\x03ifs\x18\x01 \x03(\x0b2*.proto.Expression.SwitchExpression.IfValueR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1a[\n\x07IfValue\x12)\n\x02if\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1af\n\x0eSingularOrList\x12\'\n\x05value\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x05value\x12+\n\x07options\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\x07options\x1a\xab\x01\n\x0bMultiOrList\x12\'\n\x05value\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x05value\x12>\n\x07options\x18\x02 \x03(\x0b2$.proto.Expression.MultiOrList.RecordR\x07options\x1a3\n\x06Record\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a\x83\x04\n\x10EmbeddedFunction\x12/\n\targuments\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\targuments\x12,\n\x0boutput_type\x18\x02 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12o\n\x16python_pickle_function\x18\x03 \x01(\x0b27.proto.Expression.EmbeddedFunction.PythonPickleFunctionH\x00R\x14pythonPickleFunction\x12l\n\x15web_assembly_function\x18\x04 \x01(\x0b26.proto.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00R\x13webAssemblyFunction\x1aV\n\x14PythonPickleFunction\x12\x1a\n\x08function\x18\x01 \x01(\x0cR\x08function\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisite\x1aQ\n\x13WebAssemblyFunction\x12\x16\n\x06script\x18\x01 \x01(\x0cR\x06script\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisiteB\x06\n\x04kind\x1a\xcc\x04\n\x10ReferenceSegment\x12D\n\x07map_key\x18\x01 \x01(\x0b2).proto.Expression.ReferenceSegment.MapKeyH\x00R\x06mapKey\x12S\n\x0cstruct_field\x18\x02 \x01(\x0b2..proto.Expression.ReferenceSegment.StructFieldH\x00R\x0bstructField\x12S\n\x0clist_element\x18\x03 \x01(\x0b2..proto.Expression.ReferenceSegment.ListElementH\x00R\x0blistElement\x1av\n\x06MapKey\x122\n\x07map_key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x06mapKey\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a]\n\x0bStructField\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a_\n\x0bListElement\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05childB\x10\n\x0ereference_type\x1a\xee\n\n\x0eMaskExpression\x12E\n\x06select\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectR\x06select\x128\n\x18maintain_singular_struct\x18\x02 \x01(\x08R\x16maintainSingularStruct\x1a\xdc\x01\n\x06Select\x12G\n\x06struct\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectH\x00R\x06struct\x12A\n\x04list\x18\x02 \x01(\x0b2+.proto.Expression.MaskExpression.ListSelectH\x00R\x04list\x12>\n\x03map\x18\x03 \x01(\x0b2*.proto.Expression.MaskExpression.MapSelectH\x00R\x03mapB\x06\n\x04type\x1a^\n\x0cStructSelect\x12N\n\x0cstruct_items\x18\x01 \x03(\x0b2+.proto.Expression.MaskExpression.StructItemR\x0bstructItems\x1aa\n\nStructItem\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xd6\x03\n\nListSelect\x12X\n\tselection\x18\x01 \x03(\x0b2:.proto.Expression.MaskExpression.ListSelect.ListSelectItemR\tselection\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xae\x02\n\x0eListSelectItem\x12\\\n\x04item\x18\x01 \x01(\x0b2F.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00R\x04item\x12\\\n\x05slice\x18\x02 \x01(\x0b2D.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00R\x05slice\x1a#\n\x0bListElement\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x1a3\n\tListSlice\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03endB\x06\n\x04type\x1a\xdf\x02\n\tMapSelect\x12E\n\x03key\x18\x01 \x01(\x0b21.proto.Expression.MaskExpression.MapSelect.MapKeyH\x00R\x03key\x12]\n\nexpression\x18\x02 \x01(\x0b2;.proto.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00R\nexpression\x12=\n\x05child\x18\x03 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a!\n\x06MapKey\x12\x17\n\x07map_key\x18\x01 \x01(\tR\x06mapKey\x1a@\n\x10MapKeyExpression\x12,\n\x12map_key_expression\x18\x01 \x01(\tR\x10mapKeyExpressionB\x08\n\x06select\x1a\xf9\x03\n\x0eFieldReference\x12O\n\x10direct_reference\x18\x01 \x01(\x0b2".proto.Expression.ReferenceSegmentH\x00R\x0fdirectReference\x12M\n\x10masked_reference\x18\x02 \x01(\x0b2 .proto.Expression.MaskExpressionH\x00R\x0fmaskedReference\x123\n\nexpression\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x01R\nexpression\x12W\n\x0eroot_reference\x18\x04 \x01(\x0b2..proto.Expression.FieldReference.RootReferenceH\x01R\rrootReference\x12Z\n\x0fouter_reference\x18\x05 \x01(\x0b2/.proto.Expression.FieldReference.OuterReferenceH\x01R\x0eouterReference\x1a\x0f\n\rRootReference\x1a-\n\x0eOuterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOutB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\xe1\t\n\x08Subquery\x12;\n\x06scalar\x18\x01 \x01(\x0b2!.proto.Expression.Subquery.ScalarH\x00R\x06scalar\x12K\n\x0cin_predicate\x18\x02 \x01(\x0b2&.proto.Expression.Subquery.InPredicateH\x00R\x0binPredicate\x12N\n\rset_predicate\x18\x03 \x01(\x0b2\'.proto.Expression.Subquery.SetPredicateH\x00R\x0csetPredicate\x12Q\n\x0eset_comparison\x18\x04 \x01(\x0b2(.proto.Expression.Subquery.SetComparisonH\x00R\rsetComparison\x1a*\n\x06Scalar\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x1ab\n\x0bInPredicate\x12+\n\x07needles\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x07needles\x12&\n\x08haystack\x18\x02 \x01(\x0b2\n.proto.RelR\x08haystack\x1a\xe9\x01\n\x0cSetPredicate\x12V\n\x0cpredicate_op\x18\x01 \x01(\x0e23.proto.Expression.Subquery.SetPredicate.PredicateOpR\x0bpredicateOp\x12"\n\x06tuples\x18\x02 \x01(\x0b2\n.proto.RelR\x06tuples"]\n\x0bPredicateOp\x12\x1c\n\x18PREDICATE_OP_UNSPECIFIED\x10\x00\x12\x17\n\x13PREDICATE_OP_EXISTS\x10\x01\x12\x17\n\x13PREDICATE_OP_UNIQUE\x10\x02\x1a\x9a\x04\n\rSetComparison\x12W\n\x0creduction_op\x18\x01 \x01(\x0e24.proto.Expression.Subquery.SetComparison.ReductionOpR\x0breductionOp\x12Z\n\rcomparison_op\x18\x02 \x01(\x0e25.proto.Expression.Subquery.SetComparison.ComparisonOpR\x0ccomparisonOp\x12%\n\x04left\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x04left\x12 \n\x05right\x18\x04 \x01(\x0b2\n.proto.RelR\x05right"\xb1\x01\n\x0cComparisonOp\x12\x1d\n\x19COMPARISON_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10COMPARISON_OP_EQ\x10\x01\x12\x14\n\x10COMPARISON_OP_NE\x10\x02\x12\x14\n\x10COMPARISON_OP_LT\x10\x03\x12\x14\n\x10COMPARISON_OP_GT\x10\x04\x12\x14\n\x10COMPARISON_OP_LE\x10\x05\x12\x14\n\x10COMPARISON_OP_GE\x10\x06"W\n\x0bReductionOp\x12\x1c\n\x18REDUCTION_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10REDUCTION_OP_ANY\x10\x01\x12\x14\n\x10REDUCTION_OP_ALL\x10\x02B\x0f\n\rsubquery_typeB\n\n\x08rex_type"d\n\x10DynamicParameter\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x12/\n\x13parameter_reference\x18\x02 \x01(\rR\x12parameterReference"\xa5\x03\n\tSortField\x12%\n\x04expr\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x04expr\x12>\n\tdirection\x18\x02 \x01(\x0e2\x1e.proto.SortField.SortDirectionH\x00R\tdirection\x12D\n\x1dcomparison_function_reference\x18\x03 \x01(\rH\x00R\x1bcomparisonFunctionReference"\xdd\x01\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12"\n\x1eSORT_DIRECTION_ASC_NULLS_FIRST\x10\x01\x12!\n\x1dSORT_DIRECTION_ASC_NULLS_LAST\x10\x02\x12#\n\x1fSORT_DIRECTION_DESC_NULLS_FIRST\x10\x03\x12"\n\x1eSORT_DIRECTION_DESC_NULLS_LAST\x10\x04\x12\x1c\n\x18SORT_DIRECTION_CLUSTERED\x10\x05B\x0b\n\tsort_kind"\xb1\x04\n\x11AggregateFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x07 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x08 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x05 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x04 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\x06 \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args"\x84\x01\n\x15AggregationInvocation\x12&\n"AGGREGATION_INVOCATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1aAGGREGATION_INVOCATION_ALL\x10\x01\x12#\n\x1fAGGREGATION_INVOCATION_DISTINCT\x10\x02"7\n\x0cReferenceRel\x12\'\n\x0fsubtree_ordinal\x18\x01 \x01(\x05R\x0esubtreeOrdinal*\xef\x01\n\x10AggregationPhase\x12!\n\x1dAGGREGATION_PHASE_UNSPECIFIED\x10\x00\x12-\n)AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE\x10\x01\x122\n.AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE\x10\x02\x12\'\n#AGGREGATION_PHASE_INITIAL_TO_RESULT\x10\x03\x12,\n(AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT\x10\x04B#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.algebra_pb2', _globals)
@@ -48,8 +48,8 @@
_globals['_EXPRESSION'].fields_by_name['enum']._serialized_options = b'\x18\x01'
_globals['_AGGREGATEFUNCTION'].fields_by_name['args']._options = None
_globals['_AGGREGATEFUNCTION'].fields_by_name['args']._serialized_options = b'\x18\x01'
- _globals['_AGGREGATIONPHASE']._serialized_start = 28801
- _globals['_AGGREGATIONPHASE']._serialized_end = 29040
+ _globals['_AGGREGATIONPHASE']._serialized_start = 29126
+ _globals['_AGGREGATIONPHASE']._serialized_end = 29365
_globals['_RELCOMMON']._serialized_start = 111
_globals['_RELCOMMON']._serialized_end = 1536
_globals['_RELCOMMON_DIRECT']._serialized_start = 347
@@ -199,144 +199,148 @@
_globals['_FUNCTIONOPTION']._serialized_start = 16674
_globals['_FUNCTIONOPTION']._serialized_end = 16742
_globals['_EXPRESSION']._serialized_start = 16745
- _globals['_EXPRESSION']._serialized_end = 27753
- _globals['_EXPRESSION_ENUM']._serialized_start = 17524
- _globals['_EXPRESSION_ENUM']._serialized_end = 17658
- _globals['_EXPRESSION_ENUM_EMPTY']._serialized_start = 17630
- _globals['_EXPRESSION_ENUM_EMPTY']._serialized_end = 17641
- _globals['_EXPRESSION_LITERAL']._serialized_start = 17661
- _globals['_EXPRESSION_LITERAL']._serialized_end = 20420
- _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_start = 19169
- _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_end = 19224
- _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_start = 19226
- _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_end = 19309
- _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_start = 19311
- _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_end = 19383
- _globals['_EXPRESSION_LITERAL_MAP']._serialized_start = 19386
- _globals['_EXPRESSION_LITERAL_MAP']._serialized_end = 19568
- _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_start = 19464
- _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_end = 19568
- _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_start = 19570
- _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_end = 19637
- _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_start = 19640
- _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_end = 19831
- _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_start = 19834
- _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_end = 20052
- _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_start = 20054
- _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_end = 20113
- _globals['_EXPRESSION_LITERAL_LIST']._serialized_start = 20115
- _globals['_EXPRESSION_LITERAL_LIST']._serialized_end = 20172
- _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_start = 20175
- _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_end = 20404
- _globals['_EXPRESSION_NESTED']._serialized_start = 20423
- _globals['_EXPRESSION_NESTED']._serialized_end = 20966
- _globals['_EXPRESSION_NESTED_MAP']._serialized_start = 20682
- _globals['_EXPRESSION_NESTED_MAP']._serialized_end = 20847
- _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_start = 20759
- _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_end = 20847
- _globals['_EXPRESSION_NESTED_STRUCT']._serialized_start = 20849
- _globals['_EXPRESSION_NESTED_STRUCT']._serialized_end = 20900
- _globals['_EXPRESSION_NESTED_LIST']._serialized_start = 20902
- _globals['_EXPRESSION_NESTED_LIST']._serialized_end = 20951
- _globals['_EXPRESSION_SCALARFUNCTION']._serialized_start = 20969
- _globals['_EXPRESSION_SCALARFUNCTION']._serialized_end = 21225
- _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_start = 21228
- _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_end = 22465
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_start = 21929
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_end = 22377
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_start = 22270
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_end = 22305
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_start = 22307
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_end = 22342
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_start = 22344
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_end = 22356
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_start = 22358
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_end = 22369
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_start = 22379
- _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_end = 22465
- _globals['_EXPRESSION_IFTHEN']._serialized_start = 22468
- _globals['_EXPRESSION_IFTHEN']._serialized_end = 22654
- _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_start = 22570
- _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_end = 22654
- _globals['_EXPRESSION_CAST']._serialized_start = 22657
- _globals['_EXPRESSION_CAST']._serialized_end = 22945
- _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_start = 22822
- _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_end = 22945
- _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_start = 22948
- _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_end = 23201
- _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_start = 23110
- _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_end = 23201
- _globals['_EXPRESSION_SINGULARORLIST']._serialized_start = 23203
- _globals['_EXPRESSION_SINGULARORLIST']._serialized_end = 23305
- _globals['_EXPRESSION_MULTIORLIST']._serialized_start = 23308
- _globals['_EXPRESSION_MULTIORLIST']._serialized_end = 23479
- _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_start = 23428
- _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_end = 23479
- _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_start = 23482
- _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_end = 23997
- _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_start = 23820
- _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_end = 23906
- _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_start = 23908
- _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_end = 23989
- _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_start = 24000
- _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_end = 24588
- _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_start = 24260
- _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_end = 24378
- _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_start = 24380
- _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_end = 24473
- _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_start = 24475
- _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_end = 24570
- _globals['_EXPRESSION_MASKEXPRESSION']._serialized_start = 24591
- _globals['_EXPRESSION_MASKEXPRESSION']._serialized_end = 25981
- _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_start = 24739
- _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_end = 24959
- _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_start = 24961
- _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_end = 25055
- _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_start = 25057
- _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_end = 25154
- _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_start = 25157
- _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_end = 25627
- _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_start = 25325
- _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_end = 25627
- _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_start = 25531
- _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_end = 25566
- _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_start = 25568
- _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_end = 25619
- _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_start = 25630
- _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_end = 25981
- _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_start = 25872
- _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_end = 25905
- _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_start = 25907
- _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_end = 25971
- _globals['_EXPRESSION_FIELDREFERENCE']._serialized_start = 25984
- _globals['_EXPRESSION_FIELDREFERENCE']._serialized_end = 26489
- _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_start = 26396
- _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_end = 26411
- _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_start = 26413
- _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_end = 26458
- _globals['_EXPRESSION_SUBQUERY']._serialized_start = 26492
- _globals['_EXPRESSION_SUBQUERY']._serialized_end = 27741
- _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_start = 26805
- _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_end = 26847
- _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_start = 26849
- _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_end = 26947
- _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_start = 26950
- _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_end = 27183
- _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_start = 27090
- _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_end = 27183
- _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_start = 27186
- _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_end = 27724
- _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_start = 27458
- _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_end = 27635
- _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_start = 27637
- _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_end = 27724
- _globals['_SORTFIELD']._serialized_start = 27756
- _globals['_SORTFIELD']._serialized_end = 28177
- _globals['_SORTFIELD_SORTDIRECTION']._serialized_start = 27943
- _globals['_SORTFIELD_SORTDIRECTION']._serialized_end = 28164
- _globals['_AGGREGATEFUNCTION']._serialized_start = 28180
- _globals['_AGGREGATEFUNCTION']._serialized_end = 28741
- _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_start = 28609
- _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_end = 28741
- _globals['_REFERENCEREL']._serialized_start = 28743
- _globals['_REFERENCEREL']._serialized_end = 28798
\ No newline at end of file
+ _globals['_EXPRESSION']._serialized_end = 27976
+ _globals['_EXPRESSION_ENUM']._serialized_start = 17596
+ _globals['_EXPRESSION_ENUM']._serialized_end = 17730
+ _globals['_EXPRESSION_ENUM_EMPTY']._serialized_start = 17702
+ _globals['_EXPRESSION_ENUM_EMPTY']._serialized_end = 17713
+ _globals['_EXPRESSION_LITERAL']._serialized_start = 17733
+ _globals['_EXPRESSION_LITERAL']._serialized_end = 20643
+ _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_start = 19323
+ _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_end = 19378
+ _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_start = 19380
+ _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_end = 19463
+ _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_start = 19465
+ _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_end = 19532
+ _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_start = 19534
+ _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_end = 19606
+ _globals['_EXPRESSION_LITERAL_MAP']._serialized_start = 19609
+ _globals['_EXPRESSION_LITERAL_MAP']._serialized_end = 19791
+ _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_start = 19687
+ _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_end = 19791
+ _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_start = 19793
+ _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_end = 19860
+ _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_start = 19863
+ _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_end = 20054
+ _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_start = 20057
+ _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_end = 20275
+ _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_start = 20277
+ _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_end = 20336
+ _globals['_EXPRESSION_LITERAL_LIST']._serialized_start = 20338
+ _globals['_EXPRESSION_LITERAL_LIST']._serialized_end = 20395
+ _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_start = 20398
+ _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_end = 20627
+ _globals['_EXPRESSION_NESTED']._serialized_start = 20646
+ _globals['_EXPRESSION_NESTED']._serialized_end = 21189
+ _globals['_EXPRESSION_NESTED_MAP']._serialized_start = 20905
+ _globals['_EXPRESSION_NESTED_MAP']._serialized_end = 21070
+ _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_start = 20982
+ _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_end = 21070
+ _globals['_EXPRESSION_NESTED_STRUCT']._serialized_start = 21072
+ _globals['_EXPRESSION_NESTED_STRUCT']._serialized_end = 21123
+ _globals['_EXPRESSION_NESTED_LIST']._serialized_start = 21125
+ _globals['_EXPRESSION_NESTED_LIST']._serialized_end = 21174
+ _globals['_EXPRESSION_SCALARFUNCTION']._serialized_start = 21192
+ _globals['_EXPRESSION_SCALARFUNCTION']._serialized_end = 21448
+ _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_start = 21451
+ _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_end = 22688
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_start = 22152
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_end = 22600
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_start = 22493
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_end = 22528
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_start = 22530
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_end = 22565
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_start = 22567
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_end = 22579
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_start = 22581
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_end = 22592
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_start = 22602
+ _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_end = 22688
+ _globals['_EXPRESSION_IFTHEN']._serialized_start = 22691
+ _globals['_EXPRESSION_IFTHEN']._serialized_end = 22877
+ _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_start = 22793
+ _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_end = 22877
+ _globals['_EXPRESSION_CAST']._serialized_start = 22880
+ _globals['_EXPRESSION_CAST']._serialized_end = 23168
+ _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_start = 23045
+ _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_end = 23168
+ _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_start = 23171
+ _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_end = 23424
+ _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_start = 23333
+ _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_end = 23424
+ _globals['_EXPRESSION_SINGULARORLIST']._serialized_start = 23426
+ _globals['_EXPRESSION_SINGULARORLIST']._serialized_end = 23528
+ _globals['_EXPRESSION_MULTIORLIST']._serialized_start = 23531
+ _globals['_EXPRESSION_MULTIORLIST']._serialized_end = 23702
+ _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_start = 23651
+ _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_end = 23702
+ _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_start = 23705
+ _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_end = 24220
+ _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_start = 24043
+ _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_end = 24129
+ _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_start = 24131
+ _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_end = 24212
+ _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_start = 24223
+ _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_end = 24811
+ _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_start = 24483
+ _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_end = 24601
+ _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_start = 24603
+ _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_end = 24696
+ _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_start = 24698
+ _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_end = 24793
+ _globals['_EXPRESSION_MASKEXPRESSION']._serialized_start = 24814
+ _globals['_EXPRESSION_MASKEXPRESSION']._serialized_end = 26204
+ _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_start = 24962
+ _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_end = 25182
+ _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_start = 25184
+ _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_end = 25278
+ _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_start = 25280
+ _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_end = 25377
+ _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_start = 25380
+ _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_end = 25850
+ _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_start = 25548
+ _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_end = 25850
+ _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_start = 25754
+ _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_end = 25789
+ _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_start = 25791
+ _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_end = 25842
+ _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_start = 25853
+ _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_end = 26204
+ _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_start = 26095
+ _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_end = 26128
+ _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_start = 26130
+ _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_end = 26194
+ _globals['_EXPRESSION_FIELDREFERENCE']._serialized_start = 26207
+ _globals['_EXPRESSION_FIELDREFERENCE']._serialized_end = 26712
+ _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_start = 26619
+ _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_end = 26634
+ _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_start = 26636
+ _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_end = 26681
+ _globals['_EXPRESSION_SUBQUERY']._serialized_start = 26715
+ _globals['_EXPRESSION_SUBQUERY']._serialized_end = 27964
+ _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_start = 27028
+ _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_end = 27070
+ _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_start = 27072
+ _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_end = 27170
+ _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_start = 27173
+ _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_end = 27406
+ _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_start = 27313
+ _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_end = 27406
+ _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_start = 27409
+ _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_end = 27947
+ _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_start = 27681
+ _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_end = 27858
+ _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_start = 27860
+ _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_end = 27947
+ _globals['_DYNAMICPARAMETER']._serialized_start = 27978
+ _globals['_DYNAMICPARAMETER']._serialized_end = 28078
+ _globals['_SORTFIELD']._serialized_start = 28081
+ _globals['_SORTFIELD']._serialized_end = 28502
+ _globals['_SORTFIELD_SORTDIRECTION']._serialized_start = 28268
+ _globals['_SORTFIELD_SORTDIRECTION']._serialized_end = 28489
+ _globals['_AGGREGATEFUNCTION']._serialized_start = 28505
+ _globals['_AGGREGATEFUNCTION']._serialized_end = 29066
+ _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_start = 28934
+ _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_end = 29066
+ _globals['_REFERENCEREL']._serialized_start = 29068
+ _globals['_REFERENCEREL']._serialized_end = 29123
\ No newline at end of file
diff --git a/src/substrait/gen/proto/algebra_pb2.pyi b/src/substrait/gen/proto/algebra_pb2.pyi
index 16867fc..4d30d5a 100644
--- a/src/substrait/gen/proto/algebra_pb2.pyi
+++ b/src/substrait/gen/proto/algebra_pb2.pyi
@@ -2575,13 +2575,29 @@ class Expression(google.protobuf.message.Message):
def ClearField(self, field_name: typing_extensions.Literal['precision', b'precision', 'scale', b'scale', 'value', b'value']) -> None:
...
+ @typing_extensions.final
+ class PrecisionTime(google.protobuf.message.Message):
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+ PRECISION_FIELD_NUMBER: builtins.int
+ VALUE_FIELD_NUMBER: builtins.int
+ precision: builtins.int
+ 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds'
+ value: builtins.int
+ 'Time passed since midnight in precision units.'
+
+ def __init__(self, *, precision: builtins.int=..., value: builtins.int=...) -> None:
+ ...
+
+ def ClearField(self, field_name: typing_extensions.Literal['precision', b'precision', 'value', b'value']) -> None:
+ ...
+
@typing_extensions.final
class PrecisionTimestamp(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
PRECISION_FIELD_NUMBER: builtins.int
VALUE_FIELD_NUMBER: builtins.int
precision: builtins.int
- 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds'
+ 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds'
value: builtins.int
'Time passed since 1970-01-01 00:00:00.000000 in UTC for PrecisionTimestampTZ and unspecified timezone for PrecisionTimestamp'
@@ -2779,6 +2795,7 @@ class Expression(google.protobuf.message.Message):
VAR_CHAR_FIELD_NUMBER: builtins.int
FIXED_BINARY_FIELD_NUMBER: builtins.int
DECIMAL_FIELD_NUMBER: builtins.int
+ PRECISION_TIME_FIELD_NUMBER: builtins.int
PRECISION_TIMESTAMP_FIELD_NUMBER: builtins.int
PRECISION_TIMESTAMP_TZ_FIELD_NUMBER: builtins.int
STRUCT_FIELD_NUMBER: builtins.int
@@ -2802,11 +2819,11 @@ class Expression(google.protobuf.message.Message):
string: builtins.str
binary: builtins.bytes
timestamp: builtins.int
- 'Timestamp in units of microseconds since the UNIX epoch.\n Deprecated in favor of `precision_timestamp`\n '
+ 'Timestamp in units of microseconds since the UNIX epoch.\n Deprecated in favor of `precision_timestamp`.\n '
date: builtins.int
'Date in units of days since the UNIX epoch.'
time: builtins.int
- 'Time in units of microseconds past midnight'
+ 'Time in units of microseconds past midnight.\n Deprecated in favor of `precision_time`.\n '
@property
def interval_year_to_month(self) -> global___Expression.Literal.IntervalYearToMonth:
@@ -2830,6 +2847,10 @@ class Expression(google.protobuf.message.Message):
def decimal(self) -> global___Expression.Literal.Decimal:
...
+ @property
+ def precision_time(self) -> global___Expression.Literal.PrecisionTime:
+ """Time in precision units past midnight."""
+
@property
def precision_timestamp(self) -> global___Expression.Literal.PrecisionTimestamp:
...
@@ -2873,16 +2894,16 @@ class Expression(google.protobuf.message.Message):
type_variation_reference: builtins.int
'optionally points to a type_variation_anchor defined in this plan.\n Applies to all members of union other than the Typed null (which should\n directly declare the type variation).\n '
- def __init__(self, *, boolean: builtins.bool=..., i8: builtins.int=..., i16: builtins.int=..., i32: builtins.int=..., i64: builtins.int=..., fp32: builtins.float=..., fp64: builtins.float=..., string: builtins.str=..., binary: builtins.bytes=..., timestamp: builtins.int=..., date: builtins.int=..., time: builtins.int=..., interval_year_to_month: global___Expression.Literal.IntervalYearToMonth | None=..., interval_day_to_second: global___Expression.Literal.IntervalDayToSecond | None=..., interval_compound: global___Expression.Literal.IntervalCompound | None=..., fixed_char: builtins.str=..., var_char: global___Expression.Literal.VarChar | None=..., fixed_binary: builtins.bytes=..., decimal: global___Expression.Literal.Decimal | None=..., precision_timestamp: global___Expression.Literal.PrecisionTimestamp | None=..., precision_timestamp_tz: global___Expression.Literal.PrecisionTimestamp | None=..., struct: global___Expression.Literal.Struct | None=..., map: global___Expression.Literal.Map | None=..., timestamp_tz: builtins.int=..., uuid: builtins.bytes=..., null: proto.type_pb2.Type | None=..., list: global___Expression.Literal.List | None=..., empty_list: proto.type_pb2.Type.List | None=..., empty_map: proto.type_pb2.Type.Map | None=..., user_defined: global___Expression.Literal.UserDefined | None=..., nullable: builtins.bool=..., type_variation_reference: builtins.int=...) -> None:
+ def __init__(self, *, boolean: builtins.bool=..., i8: builtins.int=..., i16: builtins.int=..., i32: builtins.int=..., i64: builtins.int=..., fp32: builtins.float=..., fp64: builtins.float=..., string: builtins.str=..., binary: builtins.bytes=..., timestamp: builtins.int=..., date: builtins.int=..., time: builtins.int=..., interval_year_to_month: global___Expression.Literal.IntervalYearToMonth | None=..., interval_day_to_second: global___Expression.Literal.IntervalDayToSecond | None=..., interval_compound: global___Expression.Literal.IntervalCompound | None=..., fixed_char: builtins.str=..., var_char: global___Expression.Literal.VarChar | None=..., fixed_binary: builtins.bytes=..., decimal: global___Expression.Literal.Decimal | None=..., precision_time: global___Expression.Literal.PrecisionTime | None=..., precision_timestamp: global___Expression.Literal.PrecisionTimestamp | None=..., precision_timestamp_tz: global___Expression.Literal.PrecisionTimestamp | None=..., struct: global___Expression.Literal.Struct | None=..., map: global___Expression.Literal.Map | None=..., timestamp_tz: builtins.int=..., uuid: builtins.bytes=..., null: proto.type_pb2.Type | None=..., list: global___Expression.Literal.List | None=..., empty_list: proto.type_pb2.Type.List | None=..., empty_map: proto.type_pb2.Type.Map | None=..., user_defined: global___Expression.Literal.UserDefined | None=..., nullable: builtins.bool=..., type_variation_reference: builtins.int=...) -> None:
...
- def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'uuid', b'uuid', 'var_char', b'var_char']) -> builtins.bool:
+ def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'uuid', b'uuid', 'var_char', b'var_char']) -> builtins.bool:
...
- def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'nullable', b'nullable', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_variation_reference', b'type_variation_reference', 'user_defined', b'user_defined', 'uuid', b'uuid', 'var_char', b'var_char']) -> None:
+ def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'nullable', b'nullable', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_variation_reference', b'type_variation_reference', 'user_defined', b'user_defined', 'uuid', b'uuid', 'var_char', b'var_char']) -> None:
...
- def WhichOneof(self, oneof_group: typing_extensions.Literal['literal_type', b'literal_type']) -> typing_extensions.Literal['boolean', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year_to_month', 'interval_day_to_second', 'interval_compound', 'fixed_char', 'var_char', 'fixed_binary', 'decimal', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'map', 'timestamp_tz', 'uuid', 'null', 'list', 'empty_list', 'empty_map', 'user_defined'] | None:
+ def WhichOneof(self, oneof_group: typing_extensions.Literal['literal_type', b'literal_type']) -> typing_extensions.Literal['boolean', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year_to_month', 'interval_day_to_second', 'interval_compound', 'fixed_char', 'var_char', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'map', 'timestamp_tz', 'uuid', 'null', 'list', 'empty_list', 'empty_map', 'user_defined'] | None:
...
@typing_extensions.final
@@ -4132,6 +4153,7 @@ class Expression(google.protobuf.message.Message):
CAST_FIELD_NUMBER: builtins.int
SUBQUERY_FIELD_NUMBER: builtins.int
NESTED_FIELD_NUMBER: builtins.int
+ DYNAMIC_PARAMETER_FIELD_NUMBER: builtins.int
ENUM_FIELD_NUMBER: builtins.int
@property
@@ -4178,6 +4200,10 @@ class Expression(google.protobuf.message.Message):
def nested(self) -> global___Expression.Nested:
...
+ @property
+ def dynamic_parameter(self) -> global___DynamicParameter:
+ ...
+
@property
def enum(self) -> global___Expression.Enum:
"""deprecated: enum literals are only sensible in the context of
@@ -4185,19 +4211,44 @@ class Expression(google.protobuf.message.Message):
used
"""
- def __init__(self, *, literal: global___Expression.Literal | None=..., selection: global___Expression.FieldReference | None=..., scalar_function: global___Expression.ScalarFunction | None=..., window_function: global___Expression.WindowFunction | None=..., if_then: global___Expression.IfThen | None=..., switch_expression: global___Expression.SwitchExpression | None=..., singular_or_list: global___Expression.SingularOrList | None=..., multi_or_list: global___Expression.MultiOrList | None=..., cast: global___Expression.Cast | None=..., subquery: global___Expression.Subquery | None=..., nested: global___Expression.Nested | None=..., enum: global___Expression.Enum | None=...) -> None:
+ def __init__(self, *, literal: global___Expression.Literal | None=..., selection: global___Expression.FieldReference | None=..., scalar_function: global___Expression.ScalarFunction | None=..., window_function: global___Expression.WindowFunction | None=..., if_then: global___Expression.IfThen | None=..., switch_expression: global___Expression.SwitchExpression | None=..., singular_or_list: global___Expression.SingularOrList | None=..., multi_or_list: global___Expression.MultiOrList | None=..., cast: global___Expression.Cast | None=..., subquery: global___Expression.Subquery | None=..., nested: global___Expression.Nested | None=..., dynamic_parameter: global___DynamicParameter | None=..., enum: global___Expression.Enum | None=...) -> None:
...
- def HasField(self, field_name: typing_extensions.Literal['cast', b'cast', 'enum', b'enum', 'if_then', b'if_then', 'literal', b'literal', 'multi_or_list', b'multi_or_list', 'nested', b'nested', 'rex_type', b'rex_type', 'scalar_function', b'scalar_function', 'selection', b'selection', 'singular_or_list', b'singular_or_list', 'subquery', b'subquery', 'switch_expression', b'switch_expression', 'window_function', b'window_function']) -> builtins.bool:
+ def HasField(self, field_name: typing_extensions.Literal['cast', b'cast', 'dynamic_parameter', b'dynamic_parameter', 'enum', b'enum', 'if_then', b'if_then', 'literal', b'literal', 'multi_or_list', b'multi_or_list', 'nested', b'nested', 'rex_type', b'rex_type', 'scalar_function', b'scalar_function', 'selection', b'selection', 'singular_or_list', b'singular_or_list', 'subquery', b'subquery', 'switch_expression', b'switch_expression', 'window_function', b'window_function']) -> builtins.bool:
...
- def ClearField(self, field_name: typing_extensions.Literal['cast', b'cast', 'enum', b'enum', 'if_then', b'if_then', 'literal', b'literal', 'multi_or_list', b'multi_or_list', 'nested', b'nested', 'rex_type', b'rex_type', 'scalar_function', b'scalar_function', 'selection', b'selection', 'singular_or_list', b'singular_or_list', 'subquery', b'subquery', 'switch_expression', b'switch_expression', 'window_function', b'window_function']) -> None:
+ def ClearField(self, field_name: typing_extensions.Literal['cast', b'cast', 'dynamic_parameter', b'dynamic_parameter', 'enum', b'enum', 'if_then', b'if_then', 'literal', b'literal', 'multi_or_list', b'multi_or_list', 'nested', b'nested', 'rex_type', b'rex_type', 'scalar_function', b'scalar_function', 'selection', b'selection', 'singular_or_list', b'singular_or_list', 'subquery', b'subquery', 'switch_expression', b'switch_expression', 'window_function', b'window_function']) -> None:
...
- def WhichOneof(self, oneof_group: typing_extensions.Literal['rex_type', b'rex_type']) -> typing_extensions.Literal['literal', 'selection', 'scalar_function', 'window_function', 'if_then', 'switch_expression', 'singular_or_list', 'multi_or_list', 'cast', 'subquery', 'nested', 'enum'] | None:
+ def WhichOneof(self, oneof_group: typing_extensions.Literal['rex_type', b'rex_type']) -> typing_extensions.Literal['literal', 'selection', 'scalar_function', 'window_function', 'if_then', 'switch_expression', 'singular_or_list', 'multi_or_list', 'cast', 'subquery', 'nested', 'dynamic_parameter', 'enum'] | None:
...
global___Expression = Expression
+@typing_extensions.final
+class DynamicParameter(google.protobuf.message.Message):
+ """Expression that represents a dynamic parameter.
+ Dynamic parameters are identified by a surrogate key within a plan.
+ """
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+ TYPE_FIELD_NUMBER: builtins.int
+ PARAMETER_REFERENCE_FIELD_NUMBER: builtins.int
+
+ @property
+ def type(self) -> proto.type_pb2.Type:
+ """The type of the dynamic parameter."""
+ parameter_reference: builtins.int
+ 'The surrogate key used within a plan to reference a specific parameter binding.'
+
+ def __init__(self, *, type: proto.type_pb2.Type | None=..., parameter_reference: builtins.int=...) -> None:
+ ...
+
+ def HasField(self, field_name: typing_extensions.Literal['type', b'type']) -> builtins.bool:
+ ...
+
+ def ClearField(self, field_name: typing_extensions.Literal['parameter_reference', b'parameter_reference', 'type', b'type']) -> None:
+ ...
+global___DynamicParameter = DynamicParameter
+
@typing_extensions.final
class SortField(google.protobuf.message.Message):
"""The description of a field to sort on (including the direction of sorting and null semantics)"""
diff --git a/src/substrait/gen/proto/parameterized_types_pb2.py b/src/substrait/gen/proto/parameterized_types_pb2.py
index d42f30b..2ce49a8 100644
--- a/src/substrait/gen/proto/parameterized_types_pb2.py
+++ b/src/substrait/gen/proto/parameterized_types_pb2.py
@@ -5,7 +5,7 @@
from google.protobuf.internal import builder as _builder
_sym_db = _symbol_database.Default()
from ..proto import type_pb2 as proto_dot_type__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/parameterized_types.proto\x12\x05proto\x1a\x10proto/type.proto"\x91&\n\x11ParameterizedType\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12&\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeH\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b21.proto.ParameterizedType.ParameterizedIntervalDayH\x00R\x0bintervalDay\x12e\n\x11interval_compound\x18$ \x01(\x0b26.proto.ParameterizedType.ParameterizedIntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x12P\n\nfixed_char\x18\x15 \x01(\x0b2/.proto.ParameterizedType.ParameterizedFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b2-.proto.ParameterizedType.ParameterizedVarCharH\x00R\x07varchar\x12V\n\x0cfixed_binary\x18\x17 \x01(\x0b21.proto.ParameterizedType.ParameterizedFixedBinaryH\x00R\x0bfixedBinary\x12I\n\x07decimal\x18\x18 \x01(\x0b2-.proto.ParameterizedType.ParameterizedDecimalH\x00R\x07decimal\x12k\n\x13precision_timestamp\x18" \x01(\x0b28.proto.ParameterizedType.ParameterizedPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18# \x01(\x0b2:.proto.ParameterizedType.ParameterizedPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12F\n\x06struct\x18\x19 \x01(\x0b2,.proto.ParameterizedType.ParameterizedStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b2*.proto.ParameterizedType.ParameterizedListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b2).proto.ParameterizedType.ParameterizedMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b21.proto.ParameterizedType.ParameterizedUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x12O\n\x0etype_parameter\x18! \x01(\x0b2&.proto.ParameterizedType.TypeParameterH\x00R\rtypeParameter\x1aU\n\rTypeParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x120\n\x06bounds\x18\x02 \x03(\x0b2\x18.proto.ParameterizedTypeR\x06bounds\x1a\xde\x01\n\x10IntegerParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\\\n\x15range_start_inclusive\x18\x02 \x01(\x0b2(.proto.ParameterizedType.NullableIntegerR\x13rangeStartInclusive\x12X\n\x13range_end_exclusive\x18\x03 \x01(\x0b2(.proto.ParameterizedType.NullableIntegerR\x11rangeEndExclusive\x1a\'\n\x0fNullableInteger\x12\x14\n\x05value\x18\x01 \x01(\x03R\x05value\x1a\xc0\x01\n\x16ParameterizedFixedChar\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbe\x01\n\x14ParameterizedVarChar\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc2\x01\n\x18ParameterizedFixedBinary\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x02\n\x14ParameterizedDecimal\x12<\n\x05scale\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x05scale\x12D\n\tprecision\x18\x02 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc8\x01\n\x18ParameterizedIntervalDay\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcd\x01\n\x1dParameterizedIntervalCompound\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcf\x01\n\x1fParameterizedPrecisionTimestamp\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd1\x01\n!ParameterizedPrecisionTimestampTZ\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x13ParameterizedStruct\x12.\n\x05types\x18\x01 \x03(\x0b2\x18.proto.ParameterizedTypeR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1av\n\x18ParameterizedNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12D\n\x06struct\x18\x02 \x01(\x0b2,.proto.ParameterizedType.ParameterizedStructR\x06struct\x1a\xa9\x01\n\x11ParameterizedList\x12,\n\x04type\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd6\x01\n\x10ParameterizedMap\x12*\n\x03key\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x03key\x12.\n\x05value\x18\x02 \x01(\x0b2\x18.proto.ParameterizedTypeR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa5\x01\n\x18ParameterizedUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x86\x01\n\rIntegerOption\x12\x1a\n\x07literal\x18\x01 \x01(\x05H\x00R\x07literal\x12I\n\tparameter\x18\x02 \x01(\x0b2).proto.ParameterizedType.IntegerParameterH\x00R\tparameterB\x0e\n\x0cinteger_typeB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/parameterized_types.proto\x12\x05proto\x1a\x10proto/type.proto"\xc0(\n\x11ParameterizedType\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b21.proto.ParameterizedType.ParameterizedIntervalDayH\x00R\x0bintervalDay\x12e\n\x11interval_compound\x18$ \x01(\x0b26.proto.ParameterizedType.ParameterizedIntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x12P\n\nfixed_char\x18\x15 \x01(\x0b2/.proto.ParameterizedType.ParameterizedFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b2-.proto.ParameterizedType.ParameterizedVarCharH\x00R\x07varchar\x12V\n\x0cfixed_binary\x18\x17 \x01(\x0b21.proto.ParameterizedType.ParameterizedFixedBinaryH\x00R\x0bfixedBinary\x12I\n\x07decimal\x18\x18 \x01(\x0b2-.proto.ParameterizedType.ParameterizedDecimalH\x00R\x07decimal\x12\\\n\x0eprecision_time\x18% \x01(\x0b23.proto.ParameterizedType.ParameterizedPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18" \x01(\x0b28.proto.ParameterizedType.ParameterizedPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18# \x01(\x0b2:.proto.ParameterizedType.ParameterizedPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12F\n\x06struct\x18\x19 \x01(\x0b2,.proto.ParameterizedType.ParameterizedStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b2*.proto.ParameterizedType.ParameterizedListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b2).proto.ParameterizedType.ParameterizedMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b21.proto.ParameterizedType.ParameterizedUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x12O\n\x0etype_parameter\x18! \x01(\x0b2&.proto.ParameterizedType.TypeParameterH\x00R\rtypeParameter\x1aU\n\rTypeParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x120\n\x06bounds\x18\x02 \x03(\x0b2\x18.proto.ParameterizedTypeR\x06bounds\x1a\xde\x01\n\x10IntegerParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\\\n\x15range_start_inclusive\x18\x02 \x01(\x0b2(.proto.ParameterizedType.NullableIntegerR\x13rangeStartInclusive\x12X\n\x13range_end_exclusive\x18\x03 \x01(\x0b2(.proto.ParameterizedType.NullableIntegerR\x11rangeEndExclusive\x1a\'\n\x0fNullableInteger\x12\x14\n\x05value\x18\x01 \x01(\x03R\x05value\x1a\xc0\x01\n\x16ParameterizedFixedChar\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbe\x01\n\x14ParameterizedVarChar\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc2\x01\n\x18ParameterizedFixedBinary\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x02\n\x14ParameterizedDecimal\x12<\n\x05scale\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x05scale\x12D\n\tprecision\x18\x02 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc8\x01\n\x18ParameterizedIntervalDay\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcd\x01\n\x1dParameterizedIntervalCompound\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xca\x01\n\x1aParameterizedPrecisionTime\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcf\x01\n\x1fParameterizedPrecisionTimestamp\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd1\x01\n!ParameterizedPrecisionTimestampTZ\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x13ParameterizedStruct\x12.\n\x05types\x18\x01 \x03(\x0b2\x18.proto.ParameterizedTypeR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1av\n\x18ParameterizedNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12D\n\x06struct\x18\x02 \x01(\x0b2,.proto.ParameterizedType.ParameterizedStructR\x06struct\x1a\xa9\x01\n\x11ParameterizedList\x12,\n\x04type\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd6\x01\n\x10ParameterizedMap\x12*\n\x03key\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x03key\x12.\n\x05value\x18\x02 \x01(\x0b2\x18.proto.ParameterizedTypeR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa5\x01\n\x18ParameterizedUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x86\x01\n\rIntegerOption\x12\x1a\n\x07literal\x18\x01 \x01(\x05H\x00R\x07literal\x12I\n\tparameter\x18\x02 \x01(\x0b2).proto.ParameterizedType.IntegerParameterH\x00R\tparameterB\x0e\n\x0cinteger_typeB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.parameterized_types_pb2', _globals)
@@ -14,43 +14,47 @@
_globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf'
_globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp']._options = None
_globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp']._serialized_options = b'\x18\x01'
+ _globals['_PARAMETERIZEDTYPE'].fields_by_name['time']._options = None
+ _globals['_PARAMETERIZEDTYPE'].fields_by_name['time']._serialized_options = b'\x18\x01'
_globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp_tz']._options = None
_globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01'
_globals['_PARAMETERIZEDTYPE'].fields_by_name['user_defined_pointer']._options = None
_globals['_PARAMETERIZEDTYPE'].fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01'
_globals['_PARAMETERIZEDTYPE']._serialized_start = 61
- _globals['_PARAMETERIZEDTYPE']._serialized_end = 4942
- _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_start = 1914
- _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_end = 1999
- _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_start = 2002
- _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_end = 2224
- _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_start = 2226
- _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_end = 2265
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_start = 2268
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_end = 2460
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_start = 2463
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_end = 2653
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_start = 2656
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_end = 2850
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_start = 2853
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_end = 3111
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_start = 3114
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_end = 3314
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_start = 3317
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_end = 3522
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_start = 3525
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_end = 3732
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_start = 3735
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_end = 3944
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_start = 3947
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_end = 4120
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_start = 4122
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_end = 4240
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_start = 4243
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_end = 4412
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_start = 4415
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_end = 4629
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_start = 4632
- _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_end = 4797
- _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_start = 4800
- _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_end = 4934
\ No newline at end of file
+ _globals['_PARAMETERIZEDTYPE']._serialized_end = 5245
+ _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_start = 2012
+ _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_end = 2097
+ _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_start = 2100
+ _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_end = 2322
+ _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_start = 2324
+ _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_end = 2363
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_start = 2366
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_end = 2558
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_start = 2561
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_end = 2751
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_start = 2754
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_end = 2948
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_start = 2951
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_end = 3209
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_start = 3212
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_end = 3412
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_start = 3415
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_end = 3620
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME']._serialized_start = 3623
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME']._serialized_end = 3825
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_start = 3828
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_end = 4035
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_start = 4038
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_end = 4247
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_start = 4250
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_end = 4423
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_start = 4425
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_end = 4543
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_start = 4546
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_end = 4715
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_start = 4718
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_end = 4932
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_start = 4935
+ _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_end = 5100
+ _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_start = 5103
+ _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_end = 5237
\ No newline at end of file
diff --git a/src/substrait/gen/proto/parameterized_types_pb2.pyi b/src/substrait/gen/proto/parameterized_types_pb2.pyi
index 363a54d..205219a 100644
--- a/src/substrait/gen/proto/parameterized_types_pb2.pyi
+++ b/src/substrait/gen/proto/parameterized_types_pb2.pyi
@@ -210,6 +210,28 @@ class ParameterizedType(google.protobuf.message.Message):
def ClearField(self, field_name: typing_extensions.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None:
...
+ @typing_extensions.final
+ class ParameterizedPrecisionTime(google.protobuf.message.Message):
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+ PRECISION_FIELD_NUMBER: builtins.int
+ VARIATION_POINTER_FIELD_NUMBER: builtins.int
+ NULLABILITY_FIELD_NUMBER: builtins.int
+
+ @property
+ def precision(self) -> global___ParameterizedType.IntegerOption:
+ ...
+ variation_pointer: builtins.int
+ nullability: proto.type_pb2.Type.Nullability.ValueType
+
+ def __init__(self, *, precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None:
+ ...
+
+ def HasField(self, field_name: typing_extensions.Literal['precision', b'precision']) -> builtins.bool:
+ ...
+
+ def ClearField(self, field_name: typing_extensions.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None:
+ ...
+
@typing_extensions.final
class ParameterizedPrecisionTimestamp(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -404,6 +426,7 @@ class ParameterizedType(google.protobuf.message.Message):
VARCHAR_FIELD_NUMBER: builtins.int
FIXED_BINARY_FIELD_NUMBER: builtins.int
DECIMAL_FIELD_NUMBER: builtins.int
+ PRECISION_TIME_FIELD_NUMBER: builtins.int
PRECISION_TIMESTAMP_FIELD_NUMBER: builtins.int
PRECISION_TIMESTAMP_TZ_FIELD_NUMBER: builtins.int
STRUCT_FIELD_NUMBER: builtins.int
@@ -459,7 +482,7 @@ class ParameterizedType(google.protobuf.message.Message):
@property
def time(self) -> proto.type_pb2.Type.Time:
- ...
+ """Deprecated in favor of `ParameterizedPrecisionTime precision_time`"""
@property
def interval_year(self) -> proto.type_pb2.Type.IntervalYear:
@@ -497,6 +520,10 @@ class ParameterizedType(google.protobuf.message.Message):
def decimal(self) -> global___ParameterizedType.ParameterizedDecimal:
...
+ @property
+ def precision_time(self) -> global___ParameterizedType.ParameterizedPrecisionTime:
+ ...
+
@property
def precision_timestamp(self) -> global___ParameterizedType.ParameterizedPrecisionTimestamp:
...
@@ -527,15 +554,15 @@ class ParameterizedType(google.protobuf.message.Message):
def type_parameter(self) -> global___ParameterizedType.TypeParameter:
...
- def __init__(self, *, bool: proto.type_pb2.Type.Boolean | None=..., i8: proto.type_pb2.Type.I8 | None=..., i16: proto.type_pb2.Type.I16 | None=..., i32: proto.type_pb2.Type.I32 | None=..., i64: proto.type_pb2.Type.I64 | None=..., fp32: proto.type_pb2.Type.FP32 | None=..., fp64: proto.type_pb2.Type.FP64 | None=..., string: proto.type_pb2.Type.String | None=..., binary: proto.type_pb2.Type.Binary | None=..., timestamp: proto.type_pb2.Type.Timestamp | None=..., date: proto.type_pb2.Type.Date | None=..., time: proto.type_pb2.Type.Time | None=..., interval_year: proto.type_pb2.Type.IntervalYear | None=..., interval_day: global___ParameterizedType.ParameterizedIntervalDay | None=..., interval_compound: global___ParameterizedType.ParameterizedIntervalCompound | None=..., timestamp_tz: proto.type_pb2.Type.TimestampTZ | None=..., uuid: proto.type_pb2.Type.UUID | None=..., fixed_char: global___ParameterizedType.ParameterizedFixedChar | None=..., varchar: global___ParameterizedType.ParameterizedVarChar | None=..., fixed_binary: global___ParameterizedType.ParameterizedFixedBinary | None=..., decimal: global___ParameterizedType.ParameterizedDecimal | None=..., precision_timestamp: global___ParameterizedType.ParameterizedPrecisionTimestamp | None=..., precision_timestamp_tz: global___ParameterizedType.ParameterizedPrecisionTimestampTZ | None=..., struct: global___ParameterizedType.ParameterizedStruct | None=..., list: global___ParameterizedType.ParameterizedList | None=..., map: global___ParameterizedType.ParameterizedMap | None=..., user_defined: global___ParameterizedType.ParameterizedUserDefined | None=..., user_defined_pointer: builtins.int=..., type_parameter: global___ParameterizedType.TypeParameter | None=...) -> None:
+ def __init__(self, *, bool: proto.type_pb2.Type.Boolean | None=..., i8: proto.type_pb2.Type.I8 | None=..., i16: proto.type_pb2.Type.I16 | None=..., i32: proto.type_pb2.Type.I32 | None=..., i64: proto.type_pb2.Type.I64 | None=..., fp32: proto.type_pb2.Type.FP32 | None=..., fp64: proto.type_pb2.Type.FP64 | None=..., string: proto.type_pb2.Type.String | None=..., binary: proto.type_pb2.Type.Binary | None=..., timestamp: proto.type_pb2.Type.Timestamp | None=..., date: proto.type_pb2.Type.Date | None=..., time: proto.type_pb2.Type.Time | None=..., interval_year: proto.type_pb2.Type.IntervalYear | None=..., interval_day: global___ParameterizedType.ParameterizedIntervalDay | None=..., interval_compound: global___ParameterizedType.ParameterizedIntervalCompound | None=..., timestamp_tz: proto.type_pb2.Type.TimestampTZ | None=..., uuid: proto.type_pb2.Type.UUID | None=..., fixed_char: global___ParameterizedType.ParameterizedFixedChar | None=..., varchar: global___ParameterizedType.ParameterizedVarChar | None=..., fixed_binary: global___ParameterizedType.ParameterizedFixedBinary | None=..., decimal: global___ParameterizedType.ParameterizedDecimal | None=..., precision_time: global___ParameterizedType.ParameterizedPrecisionTime | None=..., precision_timestamp: global___ParameterizedType.ParameterizedPrecisionTimestamp | None=..., precision_timestamp_tz: global___ParameterizedType.ParameterizedPrecisionTimestampTZ | None=..., struct: global___ParameterizedType.ParameterizedStruct | None=..., list: global___ParameterizedType.ParameterizedList | None=..., map: global___ParameterizedType.ParameterizedMap | None=..., user_defined: global___ParameterizedType.ParameterizedUserDefined | None=..., user_defined_pointer: builtins.int=..., type_parameter: global___ParameterizedType.TypeParameter | None=...) -> None:
...
- def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool:
+ def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool:
...
- def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None:
+ def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None:
...
- def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'interval_compound', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_pointer', 'type_parameter'] | None:
+ def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'interval_compound', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_pointer', 'type_parameter'] | None:
...
global___ParameterizedType = ParameterizedType
\ No newline at end of file
diff --git a/src/substrait/gen/proto/plan_pb2.py b/src/substrait/gen/proto/plan_pb2.py
index 649a2af..6712aa5 100644
--- a/src/substrait/gen/proto/plan_pb2.py
+++ b/src/substrait/gen/proto/plan_pb2.py
@@ -6,7 +6,7 @@
_sym_db = _symbol_database.Default()
from ..proto import algebra_pb2 as proto_dot_algebra__pb2
from ..proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/plan.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto"[\n\x07PlanRel\x12\x1e\n\x03rel\x18\x01 \x01(\x0b2\n.proto.RelH\x00R\x03rel\x12$\n\x04root\x18\x02 \x01(\x0b2\x0e.proto.RelRootH\x00R\x04rootB\n\n\x08rel_type"\xfd\x02\n\x04Plan\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version\x12K\n\x0eextension_uris\x18\x01 \x03(\x0b2$.proto.extensions.SimpleExtensionURIR\rextensionUris\x12L\n\nextensions\x18\x02 \x03(\x0b2,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12,\n\trelations\x18\x03 \x03(\x0b2\x0e.proto.PlanRelR\trelations\x12T\n\x13advanced_extensions\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x05 \x03(\tR\x10expectedTypeUrls"7\n\x0bPlanVersion\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version"\xa9\x01\n\x07Version\x12!\n\x0cmajor_number\x18\x01 \x01(\rR\x0bmajorNumber\x12!\n\x0cminor_number\x18\x02 \x01(\rR\x0bminorNumber\x12!\n\x0cpatch_number\x18\x03 \x01(\rR\x0bpatchNumber\x12\x19\n\x08git_hash\x18\x04 \x01(\tR\x07gitHash\x12\x1a\n\x08producer\x18\x05 \x01(\tR\x08producerB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/plan.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto"[\n\x07PlanRel\x12\x1e\n\x03rel\x18\x01 \x01(\x0b2\n.proto.RelH\x00R\x03rel\x12$\n\x04root\x18\x02 \x01(\x0b2\x0e.proto.RelRootH\x00R\x04rootB\n\n\x08rel_type"\xcc\x03\n\x04Plan\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version\x12K\n\x0eextension_uris\x18\x01 \x03(\x0b2$.proto.extensions.SimpleExtensionURIR\rextensionUris\x12L\n\nextensions\x18\x02 \x03(\x0b2,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12,\n\trelations\x18\x03 \x03(\x0b2\x0e.proto.PlanRelR\trelations\x12T\n\x13advanced_extensions\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x05 \x03(\tR\x10expectedTypeUrls\x12M\n\x12parameter_bindings\x18\x07 \x03(\x0b2\x1e.proto.DynamicParameterBindingR\x11parameterBindings"7\n\x0bPlanVersion\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version"\xa9\x01\n\x07Version\x12!\n\x0cmajor_number\x18\x01 \x01(\rR\x0bmajorNumber\x12!\n\x0cminor_number\x18\x02 \x01(\rR\x0bminorNumber\x12!\n\x0cpatch_number\x18\x03 \x01(\rR\x0bpatchNumber\x12\x19\n\x08git_hash\x18\x04 \x01(\tR\x07gitHash\x12\x1a\n\x08producer\x18\x05 \x01(\tR\x08producer"u\n\x17DynamicParameterBinding\x12)\n\x10parameter_anchor\x18\x01 \x01(\rR\x0fparameterAnchor\x12/\n\x05value\x18\x02 \x01(\x0b2\x19.proto.Expression.LiteralR\x05valueB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.plan_pb2', _globals)
@@ -16,8 +16,10 @@
_globals['_PLANREL']._serialized_start = 83
_globals['_PLANREL']._serialized_end = 174
_globals['_PLAN']._serialized_start = 177
- _globals['_PLAN']._serialized_end = 558
- _globals['_PLANVERSION']._serialized_start = 560
- _globals['_PLANVERSION']._serialized_end = 615
- _globals['_VERSION']._serialized_start = 618
- _globals['_VERSION']._serialized_end = 787
\ No newline at end of file
+ _globals['_PLAN']._serialized_end = 637
+ _globals['_PLANVERSION']._serialized_start = 639
+ _globals['_PLANVERSION']._serialized_end = 694
+ _globals['_VERSION']._serialized_start = 697
+ _globals['_VERSION']._serialized_end = 866
+ _globals['_DYNAMICPARAMETERBINDING']._serialized_start = 868
+ _globals['_DYNAMICPARAMETERBINDING']._serialized_end = 985
\ No newline at end of file
diff --git a/src/substrait/gen/proto/plan_pb2.pyi b/src/substrait/gen/proto/plan_pb2.pyi
index 5e3a396..c3ce4c2 100644
--- a/src/substrait/gen/proto/plan_pb2.pyi
+++ b/src/substrait/gen/proto/plan_pb2.pyi
@@ -55,6 +55,7 @@ class Plan(google.protobuf.message.Message):
RELATIONS_FIELD_NUMBER: builtins.int
ADVANCED_EXTENSIONS_FIELD_NUMBER: builtins.int
EXPECTED_TYPE_URLS_FIELD_NUMBER: builtins.int
+ PARAMETER_BINDINGS_FIELD_NUMBER: builtins.int
@property
def version(self) -> global___Version:
@@ -87,13 +88,19 @@ class Plan(google.protobuf.message.Message):
one or more message types defined here are unknown.
"""
- def __init__(self, *, version: global___Version | None=..., extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None=..., extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None=..., relations: collections.abc.Iterable[global___PlanRel] | None=..., advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None=..., expected_type_urls: collections.abc.Iterable[builtins.str] | None=...) -> None:
+ @property
+ def parameter_bindings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DynamicParameterBinding]:
+ """An optional list of bindings for dynamic parameters used in this plan.
+ Each binding maps a parameter_anchor to its corresponding runtime value.
+ """
+
+ def __init__(self, *, version: global___Version | None=..., extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None=..., extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None=..., relations: collections.abc.Iterable[global___PlanRel] | None=..., advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None=..., expected_type_urls: collections.abc.Iterable[builtins.str] | None=..., parameter_bindings: collections.abc.Iterable[global___DynamicParameterBinding] | None=...) -> None:
...
def HasField(self, field_name: typing_extensions.Literal['advanced_extensions', b'advanced_extensions', 'version', b'version']) -> builtins.bool:
...
- def ClearField(self, field_name: typing_extensions.Literal['advanced_extensions', b'advanced_extensions', 'expected_type_urls', b'expected_type_urls', 'extension_uris', b'extension_uris', 'extensions', b'extensions', 'relations', b'relations', 'version', b'version']) -> None:
+ def ClearField(self, field_name: typing_extensions.Literal['advanced_extensions', b'advanced_extensions', 'expected_type_urls', b'expected_type_urls', 'extension_uris', b'extension_uris', 'extensions', b'extensions', 'parameter_bindings', b'parameter_bindings', 'relations', b'relations', 'version', b'version']) -> None:
...
global___Plan = Plan
@@ -144,4 +151,30 @@ class Version(google.protobuf.message.Message):
def ClearField(self, field_name: typing_extensions.Literal['git_hash', b'git_hash', 'major_number', b'major_number', 'minor_number', b'minor_number', 'patch_number', b'patch_number', 'producer', b'producer']) -> None:
...
-global___Version = Version
\ No newline at end of file
+global___Version = Version
+
+@typing_extensions.final
+class DynamicParameterBinding(google.protobuf.message.Message):
+ """Represents a binding for a dynamic parameter."""
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+ PARAMETER_ANCHOR_FIELD_NUMBER: builtins.int
+ VALUE_FIELD_NUMBER: builtins.int
+ parameter_anchor: builtins.int
+ 'The parameter anchor that identifies the dynamic parameter reference.'
+
+ @property
+ def value(self) -> proto.algebra_pb2.Expression.Literal:
+ """The literal value assigned to the parameter at runtime.
+ The type of the literal needs to match the type of the corresponding
+ DynamicParameter expression in the plan.
+ """
+
+ def __init__(self, *, parameter_anchor: builtins.int=..., value: proto.algebra_pb2.Expression.Literal | None=...) -> None:
+ ...
+
+ def HasField(self, field_name: typing_extensions.Literal['value', b'value']) -> builtins.bool:
+ ...
+
+ def ClearField(self, field_name: typing_extensions.Literal['parameter_anchor', b'parameter_anchor', 'value', b'value']) -> None:
+ ...
+global___DynamicParameterBinding = DynamicParameterBinding
\ No newline at end of file
diff --git a/src/substrait/gen/proto/type_expressions_pb2.py b/src/substrait/gen/proto/type_expressions_pb2.py
index 6af02a1..3526838 100644
--- a/src/substrait/gen/proto/type_expressions_pb2.py
+++ b/src/substrait/gen/proto/type_expressions_pb2.py
@@ -5,7 +5,7 @@
from google.protobuf.internal import builder as _builder
_sym_db = _symbol_database.Default()
from ..proto import type_pb2 as proto_dot_type__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cproto/type_expressions.proto\x12\x05proto\x1a\x10proto/type.proto"\xdb-\n\x14DerivationExpression\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12&\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeH\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b21.proto.DerivationExpression.ExpressionIntervalDayH\x00R\x0bintervalDay\x12e\n\x11interval_compound\x18* \x01(\x0b26.proto.DerivationExpression.ExpressionIntervalCompoundH\x00R\x10intervalCompound\x12P\n\nfixed_char\x18\x15 \x01(\x0b2/.proto.DerivationExpression.ExpressionFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b2-.proto.DerivationExpression.ExpressionVarCharH\x00R\x07varchar\x12V\n\x0cfixed_binary\x18\x17 \x01(\x0b21.proto.DerivationExpression.ExpressionFixedBinaryH\x00R\x0bfixedBinary\x12I\n\x07decimal\x18\x18 \x01(\x0b2-.proto.DerivationExpression.ExpressionDecimalH\x00R\x07decimal\x12k\n\x13precision_timestamp\x18( \x01(\x0b28.proto.DerivationExpression.ExpressionPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18) \x01(\x0b2:.proto.DerivationExpression.ExpressionPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12F\n\x06struct\x18\x19 \x01(\x0b2,.proto.DerivationExpression.ExpressionStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b2*.proto.DerivationExpression.ExpressionListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b2).proto.DerivationExpression.ExpressionMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b21.proto.DerivationExpression.ExpressionUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x120\n\x13type_parameter_name\x18! \x01(\tH\x00R\x11typeParameterName\x126\n\x16integer_parameter_name\x18" \x01(\tH\x00R\x14integerParameterName\x12)\n\x0finteger_literal\x18# \x01(\x05H\x00R\x0eintegerLiteral\x12@\n\x08unary_op\x18$ \x01(\x0b2#.proto.DerivationExpression.UnaryOpH\x00R\x07unaryOp\x12C\n\tbinary_op\x18% \x01(\x0b2$.proto.DerivationExpression.BinaryOpH\x00R\x08binaryOp\x12=\n\x07if_else\x18& \x01(\x0b2".proto.DerivationExpression.IfElseH\x00R\x06ifElse\x12R\n\x0ereturn_program\x18\' \x01(\x0b2).proto.DerivationExpression.ReturnProgramH\x00R\rreturnProgram\x1a\xb2\x01\n\x13ExpressionFixedChar\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb0\x01\n\x11ExpressionVarChar\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb4\x01\n\x15ExpressionFixedBinary\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x11ExpressionDecimal\x121\n\x05scale\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x05scale\x129\n\tprecision\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc1\x01\n\x1cExpressionPrecisionTimestamp\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xba\x01\n\x15ExpressionIntervalDay\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbf\x01\n\x1aExpressionIntervalCompound\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc3\x01\n\x1eExpressionPrecisionTimestampTZ\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x10ExpressionStruct\x121\n\x05types\x18\x01 \x03(\x0b2\x1b.proto.DerivationExpressionR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1as\n\x15ExpressionNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12D\n\x06struct\x18\x02 \x01(\x0b2,.proto.DerivationExpression.ExpressionStructR\x06struct\x1a\xa9\x01\n\x0eExpressionList\x12/\n\x04type\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd9\x01\n\rExpressionMap\x12-\n\x03key\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x03key\x121\n\x05value\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\x15ExpressionUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc0\x01\n\x06IfElse\x12>\n\x0cif_condition\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x0bifCondition\x128\n\tif_return\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x08ifReturn\x12<\n\x0belse_return\x18\x03 \x01(\x0b2\x1b.proto.DerivationExpressionR\nelseReturn\x1a\xcf\x01\n\x07UnaryOp\x12H\n\x07op_type\x18\x01 \x01(\x0e2/.proto.DerivationExpression.UnaryOp.UnaryOpTypeR\x06opType\x12-\n\x03arg\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x03arg"K\n\x0bUnaryOpType\x12\x1d\n\x19UNARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19UNARY_OP_TYPE_BOOLEAN_NOT\x10\x01\x1a\xa8\x04\n\x08BinaryOp\x12J\n\x07op_type\x18\x01 \x01(\x0e21.proto.DerivationExpression.BinaryOp.BinaryOpTypeR\x06opType\x12/\n\x04arg1\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04arg1\x12/\n\x04arg2\x18\x03 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04arg2"\xed\x02\n\x0cBinaryOpType\x12\x1e\n\x1aBINARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13BINARY_OP_TYPE_PLUS\x10\x01\x12\x18\n\x14BINARY_OP_TYPE_MINUS\x10\x02\x12\x1b\n\x17BINARY_OP_TYPE_MULTIPLY\x10\x03\x12\x19\n\x15BINARY_OP_TYPE_DIVIDE\x10\x04\x12\x16\n\x12BINARY_OP_TYPE_MIN\x10\x05\x12\x16\n\x12BINARY_OP_TYPE_MAX\x10\x06\x12\x1f\n\x1bBINARY_OP_TYPE_GREATER_THAN\x10\x07\x12\x1c\n\x18BINARY_OP_TYPE_LESS_THAN\x10\x08\x12\x16\n\x12BINARY_OP_TYPE_AND\x10\t\x12\x15\n\x11BINARY_OP_TYPE_OR\x10\n\x12\x19\n\x15BINARY_OP_TYPE_EQUALS\x10\x0b\x12\x19\n\x15BINARY_OP_TYPE_COVERS\x10\x0c\x1a\x8e\x02\n\rReturnProgram\x12V\n\x0bassignments\x18\x01 \x03(\x0b24.proto.DerivationExpression.ReturnProgram.AssignmentR\x0bassignments\x12F\n\x10final_expression\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x0ffinalExpression\x1a]\n\nAssignment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12;\n\nexpression\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\nexpressionB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cproto/type_expressions.proto\x12\x05proto\x1a\x10proto/type.proto"\xfc/\n\x14DerivationExpression\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b21.proto.DerivationExpression.ExpressionIntervalDayH\x00R\x0bintervalDay\x12e\n\x11interval_compound\x18* \x01(\x0b26.proto.DerivationExpression.ExpressionIntervalCompoundH\x00R\x10intervalCompound\x12P\n\nfixed_char\x18\x15 \x01(\x0b2/.proto.DerivationExpression.ExpressionFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b2-.proto.DerivationExpression.ExpressionVarCharH\x00R\x07varchar\x12V\n\x0cfixed_binary\x18\x17 \x01(\x0b21.proto.DerivationExpression.ExpressionFixedBinaryH\x00R\x0bfixedBinary\x12I\n\x07decimal\x18\x18 \x01(\x0b2-.proto.DerivationExpression.ExpressionDecimalH\x00R\x07decimal\x12\\\n\x0eprecision_time\x18+ \x01(\x0b23.proto.DerivationExpression.ExpressionPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18( \x01(\x0b28.proto.DerivationExpression.ExpressionPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18) \x01(\x0b2:.proto.DerivationExpression.ExpressionPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12F\n\x06struct\x18\x19 \x01(\x0b2,.proto.DerivationExpression.ExpressionStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b2*.proto.DerivationExpression.ExpressionListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b2).proto.DerivationExpression.ExpressionMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b21.proto.DerivationExpression.ExpressionUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x120\n\x13type_parameter_name\x18! \x01(\tH\x00R\x11typeParameterName\x126\n\x16integer_parameter_name\x18" \x01(\tH\x00R\x14integerParameterName\x12)\n\x0finteger_literal\x18# \x01(\x05H\x00R\x0eintegerLiteral\x12@\n\x08unary_op\x18$ \x01(\x0b2#.proto.DerivationExpression.UnaryOpH\x00R\x07unaryOp\x12C\n\tbinary_op\x18% \x01(\x0b2$.proto.DerivationExpression.BinaryOpH\x00R\x08binaryOp\x12=\n\x07if_else\x18& \x01(\x0b2".proto.DerivationExpression.IfElseH\x00R\x06ifElse\x12R\n\x0ereturn_program\x18\' \x01(\x0b2).proto.DerivationExpression.ReturnProgramH\x00R\rreturnProgram\x1a\xb2\x01\n\x13ExpressionFixedChar\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb0\x01\n\x11ExpressionVarChar\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb4\x01\n\x15ExpressionFixedBinary\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x11ExpressionDecimal\x121\n\x05scale\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x05scale\x129\n\tprecision\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x17ExpressionPrecisionTime\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc1\x01\n\x1cExpressionPrecisionTimestamp\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xba\x01\n\x15ExpressionIntervalDay\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbf\x01\n\x1aExpressionIntervalCompound\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc3\x01\n\x1eExpressionPrecisionTimestampTZ\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x10ExpressionStruct\x121\n\x05types\x18\x01 \x03(\x0b2\x1b.proto.DerivationExpressionR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1as\n\x15ExpressionNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12D\n\x06struct\x18\x02 \x01(\x0b2,.proto.DerivationExpression.ExpressionStructR\x06struct\x1a\xa9\x01\n\x0eExpressionList\x12/\n\x04type\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd9\x01\n\rExpressionMap\x12-\n\x03key\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x03key\x121\n\x05value\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\x15ExpressionUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc0\x01\n\x06IfElse\x12>\n\x0cif_condition\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x0bifCondition\x128\n\tif_return\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x08ifReturn\x12<\n\x0belse_return\x18\x03 \x01(\x0b2\x1b.proto.DerivationExpressionR\nelseReturn\x1a\xcf\x01\n\x07UnaryOp\x12H\n\x07op_type\x18\x01 \x01(\x0e2/.proto.DerivationExpression.UnaryOp.UnaryOpTypeR\x06opType\x12-\n\x03arg\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x03arg"K\n\x0bUnaryOpType\x12\x1d\n\x19UNARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19UNARY_OP_TYPE_BOOLEAN_NOT\x10\x01\x1a\xa8\x04\n\x08BinaryOp\x12J\n\x07op_type\x18\x01 \x01(\x0e21.proto.DerivationExpression.BinaryOp.BinaryOpTypeR\x06opType\x12/\n\x04arg1\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04arg1\x12/\n\x04arg2\x18\x03 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04arg2"\xed\x02\n\x0cBinaryOpType\x12\x1e\n\x1aBINARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13BINARY_OP_TYPE_PLUS\x10\x01\x12\x18\n\x14BINARY_OP_TYPE_MINUS\x10\x02\x12\x1b\n\x17BINARY_OP_TYPE_MULTIPLY\x10\x03\x12\x19\n\x15BINARY_OP_TYPE_DIVIDE\x10\x04\x12\x16\n\x12BINARY_OP_TYPE_MIN\x10\x05\x12\x16\n\x12BINARY_OP_TYPE_MAX\x10\x06\x12\x1f\n\x1bBINARY_OP_TYPE_GREATER_THAN\x10\x07\x12\x1c\n\x18BINARY_OP_TYPE_LESS_THAN\x10\x08\x12\x16\n\x12BINARY_OP_TYPE_AND\x10\t\x12\x15\n\x11BINARY_OP_TYPE_OR\x10\n\x12\x19\n\x15BINARY_OP_TYPE_EQUALS\x10\x0b\x12\x19\n\x15BINARY_OP_TYPE_COVERS\x10\x0c\x1a\x8e\x02\n\rReturnProgram\x12V\n\x0bassignments\x18\x01 \x03(\x0b24.proto.DerivationExpression.ReturnProgram.AssignmentR\x0bassignments\x12F\n\x10final_expression\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x0ffinalExpression\x1a]\n\nAssignment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12;\n\nexpression\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\nexpressionB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_expressions_pb2', _globals)
@@ -14,49 +14,53 @@
_globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf'
_globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp']._options = None
_globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp']._serialized_options = b'\x18\x01'
+ _globals['_DERIVATIONEXPRESSION'].fields_by_name['time']._options = None
+ _globals['_DERIVATIONEXPRESSION'].fields_by_name['time']._serialized_options = b'\x18\x01'
_globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp_tz']._options = None
_globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01'
_globals['_DERIVATIONEXPRESSION'].fields_by_name['user_defined_pointer']._options = None
_globals['_DERIVATIONEXPRESSION'].fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01'
_globals['_DERIVATIONEXPRESSION']._serialized_start = 58
- _globals['_DERIVATIONEXPRESSION']._serialized_end = 5909
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_start = 2265
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_end = 2443
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_start = 2446
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_end = 2622
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_start = 2625
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_end = 2805
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_start = 2808
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_end = 3041
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_start = 3044
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_end = 3237
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_start = 3240
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_end = 3426
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_start = 3429
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_end = 3620
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_start = 3623
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_end = 3818
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_start = 3821
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_end = 3994
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_start = 3996
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_end = 4111
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_start = 4114
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_end = 4283
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_start = 4286
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_end = 4503
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_start = 4506
- _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_end = 4668
- _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_start = 4671
- _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_end = 4863
- _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_start = 4866
- _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_end = 5073
- _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_start = 4998
- _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_end = 5073
- _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_start = 5076
- _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_end = 5628
- _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_start = 5263
- _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_end = 5628
- _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_start = 5631
- _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_end = 5901
- _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_start = 5808
- _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_end = 5901
\ No newline at end of file
+ _globals['_DERIVATIONEXPRESSION']._serialized_end = 6198
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_start = 2363
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_end = 2541
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_start = 2544
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_end = 2720
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_start = 2723
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_end = 2903
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_start = 2906
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_end = 3139
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME']._serialized_start = 3142
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME']._serialized_end = 3330
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_start = 3333
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_end = 3526
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_start = 3529
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_end = 3715
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_start = 3718
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_end = 3909
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_start = 3912
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_end = 4107
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_start = 4110
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_end = 4283
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_start = 4285
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_end = 4400
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_start = 4403
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_end = 4572
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_start = 4575
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_end = 4792
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_start = 4795
+ _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_end = 4957
+ _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_start = 4960
+ _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_end = 5152
+ _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_start = 5155
+ _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_end = 5362
+ _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_start = 5287
+ _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_end = 5362
+ _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_start = 5365
+ _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_end = 5917
+ _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_start = 5552
+ _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_end = 5917
+ _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_start = 5920
+ _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_end = 6190
+ _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_start = 6097
+ _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_end = 6190
\ No newline at end of file
diff --git a/src/substrait/gen/proto/type_expressions_pb2.pyi b/src/substrait/gen/proto/type_expressions_pb2.pyi
index d4a3dda..ec95b4d 100644
--- a/src/substrait/gen/proto/type_expressions_pb2.pyi
+++ b/src/substrait/gen/proto/type_expressions_pb2.pyi
@@ -114,6 +114,28 @@ class DerivationExpression(google.protobuf.message.Message):
def ClearField(self, field_name: typing_extensions.Literal['nullability', b'nullability', 'precision', b'precision', 'scale', b'scale', 'variation_pointer', b'variation_pointer']) -> None:
...
+ @typing_extensions.final
+ class ExpressionPrecisionTime(google.protobuf.message.Message):
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+ PRECISION_FIELD_NUMBER: builtins.int
+ VARIATION_POINTER_FIELD_NUMBER: builtins.int
+ NULLABILITY_FIELD_NUMBER: builtins.int
+
+ @property
+ def precision(self) -> global___DerivationExpression:
+ ...
+ variation_pointer: builtins.int
+ nullability: proto.type_pb2.Type.Nullability.ValueType
+
+ def __init__(self, *, precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None:
+ ...
+
+ def HasField(self, field_name: typing_extensions.Literal['precision', b'precision']) -> builtins.bool:
+ ...
+
+ def ClearField(self, field_name: typing_extensions.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None:
+ ...
+
@typing_extensions.final
class ExpressionPrecisionTimestamp(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -495,6 +517,7 @@ class DerivationExpression(google.protobuf.message.Message):
VARCHAR_FIELD_NUMBER: builtins.int
FIXED_BINARY_FIELD_NUMBER: builtins.int
DECIMAL_FIELD_NUMBER: builtins.int
+ PRECISION_TIME_FIELD_NUMBER: builtins.int
PRECISION_TIMESTAMP_FIELD_NUMBER: builtins.int
PRECISION_TIMESTAMP_TZ_FIELD_NUMBER: builtins.int
STRUCT_FIELD_NUMBER: builtins.int
@@ -556,7 +579,7 @@ class DerivationExpression(google.protobuf.message.Message):
@property
def time(self) -> proto.type_pb2.Type.Time:
- ...
+ """Deprecated in favor of `ExpressionPrecisionTime precision_time`"""
@property
def interval_year(self) -> proto.type_pb2.Type.IntervalYear:
@@ -594,6 +617,10 @@ class DerivationExpression(google.protobuf.message.Message):
def decimal(self) -> global___DerivationExpression.ExpressionDecimal:
...
+ @property
+ def precision_time(self) -> global___DerivationExpression.ExpressionPrecisionTime:
+ ...
+
@property
def precision_timestamp(self) -> global___DerivationExpression.ExpressionPrecisionTimestamp:
...
@@ -639,15 +666,15 @@ class DerivationExpression(google.protobuf.message.Message):
def return_program(self) -> global___DerivationExpression.ReturnProgram:
...
- def __init__(self, *, bool: proto.type_pb2.Type.Boolean | None=..., i8: proto.type_pb2.Type.I8 | None=..., i16: proto.type_pb2.Type.I16 | None=..., i32: proto.type_pb2.Type.I32 | None=..., i64: proto.type_pb2.Type.I64 | None=..., fp32: proto.type_pb2.Type.FP32 | None=..., fp64: proto.type_pb2.Type.FP64 | None=..., string: proto.type_pb2.Type.String | None=..., binary: proto.type_pb2.Type.Binary | None=..., timestamp: proto.type_pb2.Type.Timestamp | None=..., date: proto.type_pb2.Type.Date | None=..., time: proto.type_pb2.Type.Time | None=..., interval_year: proto.type_pb2.Type.IntervalYear | None=..., timestamp_tz: proto.type_pb2.Type.TimestampTZ | None=..., uuid: proto.type_pb2.Type.UUID | None=..., interval_day: global___DerivationExpression.ExpressionIntervalDay | None=..., interval_compound: global___DerivationExpression.ExpressionIntervalCompound | None=..., fixed_char: global___DerivationExpression.ExpressionFixedChar | None=..., varchar: global___DerivationExpression.ExpressionVarChar | None=..., fixed_binary: global___DerivationExpression.ExpressionFixedBinary | None=..., decimal: global___DerivationExpression.ExpressionDecimal | None=..., precision_timestamp: global___DerivationExpression.ExpressionPrecisionTimestamp | None=..., precision_timestamp_tz: global___DerivationExpression.ExpressionPrecisionTimestampTZ | None=..., struct: global___DerivationExpression.ExpressionStruct | None=..., list: global___DerivationExpression.ExpressionList | None=..., map: global___DerivationExpression.ExpressionMap | None=..., user_defined: global___DerivationExpression.ExpressionUserDefined | None=..., user_defined_pointer: builtins.int=..., type_parameter_name: builtins.str=..., integer_parameter_name: builtins.str=..., integer_literal: builtins.int=..., unary_op: global___DerivationExpression.UnaryOp | None=..., binary_op: global___DerivationExpression.BinaryOp | None=..., if_else: global___DerivationExpression.IfElse | None=..., return_program: global___DerivationExpression.ReturnProgram | None=...) -> None:
+ def __init__(self, *, bool: proto.type_pb2.Type.Boolean | None=..., i8: proto.type_pb2.Type.I8 | None=..., i16: proto.type_pb2.Type.I16 | None=..., i32: proto.type_pb2.Type.I32 | None=..., i64: proto.type_pb2.Type.I64 | None=..., fp32: proto.type_pb2.Type.FP32 | None=..., fp64: proto.type_pb2.Type.FP64 | None=..., string: proto.type_pb2.Type.String | None=..., binary: proto.type_pb2.Type.Binary | None=..., timestamp: proto.type_pb2.Type.Timestamp | None=..., date: proto.type_pb2.Type.Date | None=..., time: proto.type_pb2.Type.Time | None=..., interval_year: proto.type_pb2.Type.IntervalYear | None=..., timestamp_tz: proto.type_pb2.Type.TimestampTZ | None=..., uuid: proto.type_pb2.Type.UUID | None=..., interval_day: global___DerivationExpression.ExpressionIntervalDay | None=..., interval_compound: global___DerivationExpression.ExpressionIntervalCompound | None=..., fixed_char: global___DerivationExpression.ExpressionFixedChar | None=..., varchar: global___DerivationExpression.ExpressionVarChar | None=..., fixed_binary: global___DerivationExpression.ExpressionFixedBinary | None=..., decimal: global___DerivationExpression.ExpressionDecimal | None=..., precision_time: global___DerivationExpression.ExpressionPrecisionTime | None=..., precision_timestamp: global___DerivationExpression.ExpressionPrecisionTimestamp | None=..., precision_timestamp_tz: global___DerivationExpression.ExpressionPrecisionTimestampTZ | None=..., struct: global___DerivationExpression.ExpressionStruct | None=..., list: global___DerivationExpression.ExpressionList | None=..., map: global___DerivationExpression.ExpressionMap | None=..., user_defined: global___DerivationExpression.ExpressionUserDefined | None=..., user_defined_pointer: builtins.int=..., type_parameter_name: builtins.str=..., integer_parameter_name: builtins.str=..., integer_literal: builtins.int=..., unary_op: global___DerivationExpression.UnaryOp | None=..., binary_op: global___DerivationExpression.BinaryOp | None=..., if_else: global___DerivationExpression.IfElse | None=..., return_program: global___DerivationExpression.ReturnProgram | None=...) -> None:
...
- def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool:
+ def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool:
...
- def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None:
+ def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None:
...
- def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'timestamp_tz', 'uuid', 'interval_day', 'interval_compound', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_pointer', 'type_parameter_name', 'integer_parameter_name', 'integer_literal', 'unary_op', 'binary_op', 'if_else', 'return_program'] | None:
+ def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'timestamp_tz', 'uuid', 'interval_day', 'interval_compound', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_pointer', 'type_parameter_name', 'integer_parameter_name', 'integer_literal', 'unary_op', 'binary_op', 'if_else', 'return_program'] | None:
...
global___DerivationExpression = DerivationExpression
\ No newline at end of file
diff --git a/src/substrait/gen/proto/type_pb2.py b/src/substrait/gen/proto/type_pb2.py
index b7043aa..96d98aa 100644
--- a/src/substrait/gen/proto/type_pb2.py
+++ b/src/substrait/gen/proto/type_pb2.py
@@ -5,7 +5,7 @@
from google.protobuf.internal import builder as _builder
_sym_db = _symbol_database.Default()
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
-DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/type.proto\x12\x05proto\x1a\x1bgoogle/protobuf/empty.proto"\x8a-\n\x04Type\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12&\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeH\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12<\n\x0cinterval_day\x18\x14 \x01(\x0b2\x17.proto.Type.IntervalDayH\x00R\x0bintervalDay\x12K\n\x11interval_compound\x18# \x01(\x0b2\x1c.proto.Type.IntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x126\n\nfixed_char\x18\x15 \x01(\x0b2\x15.proto.Type.FixedCharH\x00R\tfixedChar\x12/\n\x07varchar\x18\x16 \x01(\x0b2\x13.proto.Type.VarCharH\x00R\x07varchar\x12<\n\x0cfixed_binary\x18\x17 \x01(\x0b2\x17.proto.Type.FixedBinaryH\x00R\x0bfixedBinary\x12/\n\x07decimal\x18\x18 \x01(\x0b2\x13.proto.Type.DecimalH\x00R\x07decimal\x12Q\n\x13precision_timestamp\x18! \x01(\x0b2\x1e.proto.Type.PrecisionTimestampH\x00R\x12precisionTimestamp\x12X\n\x16precision_timestamp_tz\x18" \x01(\x0b2 .proto.Type.PrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12,\n\x06struct\x18\x19 \x01(\x0b2\x12.proto.Type.StructH\x00R\x06struct\x12&\n\x04list\x18\x1b \x01(\x0b2\x10.proto.Type.ListH\x00R\x04list\x12#\n\x03map\x18\x1c \x01(\x0b2\x0f.proto.Type.MapH\x00R\x03map\x12<\n\x0cuser_defined\x18\x1e \x01(\x0b2\x17.proto.Type.UserDefinedH\x00R\x0buserDefined\x12C\n\x1buser_defined_type_reference\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x18userDefinedTypeReference\x1a~\n\x07Boolean\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1ay\n\x02I8\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I16\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06String\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06Binary\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x80\x01\n\tTimestamp\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Date\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Time\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x01\n\x0bTimestampTZ\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x83\x01\n\x0cIntervalYear\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb3\x01\n\x0bIntervalDay\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12!\n\tprecision\x18\x03 \x01(\x05H\x00R\tprecision\x88\x01\x01B\x0c\n\n_precision\x1a\xa5\x01\n\x10IntervalCompound\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12\x1c\n\tprecision\x18\x03 \x01(\x05R\tprecision\x1a{\n\x04UUID\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x98\x01\n\tFixedChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x96\x01\n\x07VarChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9a\x01\n\x0bFixedBinary\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb2\x01\n\x07Decimal\x12\x14\n\x05scale\x18\x01 \x01(\x05R\x05scale\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa7\x01\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa9\x01\n\x14PrecisionTimestampTZ\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa0\x01\n\x06Struct\x12!\n\x05types\x18\x01 \x03(\x0b2\x0b.proto.TypeR\x05types\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9c\x01\n\x04List\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x03Map\x12\x1d\n\x03key\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x03key\x12!\n\x05value\x18\x02 \x01(\x0b2\x0b.proto.TypeR\x05value\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12>\n\x0ftype_parameters\x18\x04 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x1a\xda\x01\n\tParameter\x12,\n\x04null\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x04null\x12*\n\tdata_type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x08dataType\x12\x1a\n\x07boolean\x18\x03 \x01(\x08H\x00R\x07boolean\x12\x1a\n\x07integer\x18\x04 \x01(\x03H\x00R\x07integer\x12\x14\n\x04enum\x18\x05 \x01(\tH\x00R\x04enum\x12\x18\n\x06string\x18\x06 \x01(\tH\x00R\x06stringB\x0b\n\tparameter"^\n\x0bNullability\x12\x1b\n\x17NULLABILITY_UNSPECIFIED\x10\x00\x12\x18\n\x14NULLABILITY_NULLABLE\x10\x01\x12\x18\n\x14NULLABILITY_REQUIRED\x10\x02B\x06\n\x04kind"O\n\x0bNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12*\n\x06struct\x18\x02 \x01(\x0b2\x12.proto.Type.StructR\x06structB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3')
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/type.proto\x12\x05proto\x1a\x1bgoogle/protobuf/empty.proto"\xf3.\n\x04Type\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12&\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeH\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12<\n\x0cinterval_day\x18\x14 \x01(\x0b2\x17.proto.Type.IntervalDayH\x00R\x0bintervalDay\x12K\n\x11interval_compound\x18# \x01(\x0b2\x1c.proto.Type.IntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x126\n\nfixed_char\x18\x15 \x01(\x0b2\x15.proto.Type.FixedCharH\x00R\tfixedChar\x12/\n\x07varchar\x18\x16 \x01(\x0b2\x13.proto.Type.VarCharH\x00R\x07varchar\x12<\n\x0cfixed_binary\x18\x17 \x01(\x0b2\x17.proto.Type.FixedBinaryH\x00R\x0bfixedBinary\x12/\n\x07decimal\x18\x18 \x01(\x0b2\x13.proto.Type.DecimalH\x00R\x07decimal\x12B\n\x0eprecision_time\x18$ \x01(\x0b2\x19.proto.Type.PrecisionTimeH\x00R\rprecisionTime\x12Q\n\x13precision_timestamp\x18! \x01(\x0b2\x1e.proto.Type.PrecisionTimestampH\x00R\x12precisionTimestamp\x12X\n\x16precision_timestamp_tz\x18" \x01(\x0b2 .proto.Type.PrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12,\n\x06struct\x18\x19 \x01(\x0b2\x12.proto.Type.StructH\x00R\x06struct\x12&\n\x04list\x18\x1b \x01(\x0b2\x10.proto.Type.ListH\x00R\x04list\x12#\n\x03map\x18\x1c \x01(\x0b2\x0f.proto.Type.MapH\x00R\x03map\x12<\n\x0cuser_defined\x18\x1e \x01(\x0b2\x17.proto.Type.UserDefinedH\x00R\x0buserDefined\x12C\n\x1buser_defined_type_reference\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x18userDefinedTypeReference\x1a~\n\x07Boolean\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1ay\n\x02I8\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I16\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06String\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06Binary\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x80\x01\n\tTimestamp\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Date\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Time\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x01\n\x0bTimestampTZ\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x83\x01\n\x0cIntervalYear\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb3\x01\n\x0bIntervalDay\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12!\n\tprecision\x18\x03 \x01(\x05H\x00R\tprecision\x88\x01\x01B\x0c\n\n_precision\x1a\xa5\x01\n\x10IntervalCompound\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12\x1c\n\tprecision\x18\x03 \x01(\x05R\tprecision\x1a{\n\x04UUID\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x98\x01\n\tFixedChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x96\x01\n\x07VarChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9a\x01\n\x0bFixedBinary\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb2\x01\n\x07Decimal\x12\x14\n\x05scale\x18\x01 \x01(\x05R\x05scale\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa7\x01\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa9\x01\n\x14PrecisionTimestampTZ\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa0\x01\n\x06Struct\x12!\n\x05types\x18\x01 \x03(\x0b2\x0b.proto.TypeR\x05types\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9c\x01\n\x04List\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x03Map\x12\x1d\n\x03key\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x03key\x12!\n\x05value\x18\x02 \x01(\x0b2\x0b.proto.TypeR\x05value\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12>\n\x0ftype_parameters\x18\x04 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x1a\xda\x01\n\tParameter\x12,\n\x04null\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x04null\x12*\n\tdata_type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x08dataType\x12\x1a\n\x07boolean\x18\x03 \x01(\x08H\x00R\x07boolean\x12\x1a\n\x07integer\x18\x04 \x01(\x03H\x00R\x07integer\x12\x14\n\x04enum\x18\x05 \x01(\tH\x00R\x04enum\x12\x18\n\x06string\x18\x06 \x01(\tH\x00R\x06stringB\x0b\n\tparameter"^\n\x0bNullability\x12\x1b\n\x17NULLABILITY_UNSPECIFIED\x10\x00\x12\x18\n\x14NULLABILITY_NULLABLE\x10\x01\x12\x18\n\x14NULLABILITY_REQUIRED\x10\x02B\x06\n\x04kind"O\n\x0bNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12*\n\x06struct\x18\x02 \x01(\x0b2\x12.proto.Type.StructR\x06structB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_pb2', _globals)
@@ -19,64 +19,66 @@
_globals['_TYPE'].fields_by_name['user_defined_type_reference']._options = None
_globals['_TYPE'].fields_by_name['user_defined_type_reference']._serialized_options = b'\x18\x01'
_globals['_TYPE']._serialized_start = 57
- _globals['_TYPE']._serialized_end = 5827
- _globals['_TYPE_BOOLEAN']._serialized_start = 1517
- _globals['_TYPE_BOOLEAN']._serialized_end = 1643
- _globals['_TYPE_I8']._serialized_start = 1645
- _globals['_TYPE_I8']._serialized_end = 1766
- _globals['_TYPE_I16']._serialized_start = 1768
- _globals['_TYPE_I16']._serialized_end = 1890
- _globals['_TYPE_I32']._serialized_start = 1892
- _globals['_TYPE_I32']._serialized_end = 2014
- _globals['_TYPE_I64']._serialized_start = 2016
- _globals['_TYPE_I64']._serialized_end = 2138
- _globals['_TYPE_FP32']._serialized_start = 2140
- _globals['_TYPE_FP32']._serialized_end = 2263
- _globals['_TYPE_FP64']._serialized_start = 2265
- _globals['_TYPE_FP64']._serialized_end = 2388
- _globals['_TYPE_STRING']._serialized_start = 2390
- _globals['_TYPE_STRING']._serialized_end = 2515
- _globals['_TYPE_BINARY']._serialized_start = 2517
- _globals['_TYPE_BINARY']._serialized_end = 2642
- _globals['_TYPE_TIMESTAMP']._serialized_start = 2645
- _globals['_TYPE_TIMESTAMP']._serialized_end = 2773
- _globals['_TYPE_DATE']._serialized_start = 2775
- _globals['_TYPE_DATE']._serialized_end = 2898
- _globals['_TYPE_TIME']._serialized_start = 2900
- _globals['_TYPE_TIME']._serialized_end = 3023
- _globals['_TYPE_TIMESTAMPTZ']._serialized_start = 3026
- _globals['_TYPE_TIMESTAMPTZ']._serialized_end = 3156
- _globals['_TYPE_INTERVALYEAR']._serialized_start = 3159
- _globals['_TYPE_INTERVALYEAR']._serialized_end = 3290
- _globals['_TYPE_INTERVALDAY']._serialized_start = 3293
- _globals['_TYPE_INTERVALDAY']._serialized_end = 3472
- _globals['_TYPE_INTERVALCOMPOUND']._serialized_start = 3475
- _globals['_TYPE_INTERVALCOMPOUND']._serialized_end = 3640
- _globals['_TYPE_UUID']._serialized_start = 3642
- _globals['_TYPE_UUID']._serialized_end = 3765
- _globals['_TYPE_FIXEDCHAR']._serialized_start = 3768
- _globals['_TYPE_FIXEDCHAR']._serialized_end = 3920
- _globals['_TYPE_VARCHAR']._serialized_start = 3923
- _globals['_TYPE_VARCHAR']._serialized_end = 4073
- _globals['_TYPE_FIXEDBINARY']._serialized_start = 4076
- _globals['_TYPE_FIXEDBINARY']._serialized_end = 4230
- _globals['_TYPE_DECIMAL']._serialized_start = 4233
- _globals['_TYPE_DECIMAL']._serialized_end = 4411
- _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_start = 4414
- _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_end = 4581
- _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_start = 4584
- _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_end = 4753
- _globals['_TYPE_STRUCT']._serialized_start = 4756
- _globals['_TYPE_STRUCT']._serialized_end = 4916
- _globals['_TYPE_LIST']._serialized_start = 4919
- _globals['_TYPE_LIST']._serialized_end = 5075
- _globals['_TYPE_MAP']._serialized_start = 5078
- _globals['_TYPE_MAP']._serialized_end = 5266
- _globals['_TYPE_USERDEFINED']._serialized_start = 5269
- _globals['_TYPE_USERDEFINED']._serialized_end = 5502
- _globals['_TYPE_PARAMETER']._serialized_start = 5505
- _globals['_TYPE_PARAMETER']._serialized_end = 5723
- _globals['_TYPE_NULLABILITY']._serialized_start = 5725
- _globals['_TYPE_NULLABILITY']._serialized_end = 5819
- _globals['_NAMEDSTRUCT']._serialized_start = 5829
- _globals['_NAMEDSTRUCT']._serialized_end = 5908
\ No newline at end of file
+ _globals['_TYPE']._serialized_end = 6060
+ _globals['_TYPE_BOOLEAN']._serialized_start = 1585
+ _globals['_TYPE_BOOLEAN']._serialized_end = 1711
+ _globals['_TYPE_I8']._serialized_start = 1713
+ _globals['_TYPE_I8']._serialized_end = 1834
+ _globals['_TYPE_I16']._serialized_start = 1836
+ _globals['_TYPE_I16']._serialized_end = 1958
+ _globals['_TYPE_I32']._serialized_start = 1960
+ _globals['_TYPE_I32']._serialized_end = 2082
+ _globals['_TYPE_I64']._serialized_start = 2084
+ _globals['_TYPE_I64']._serialized_end = 2206
+ _globals['_TYPE_FP32']._serialized_start = 2208
+ _globals['_TYPE_FP32']._serialized_end = 2331
+ _globals['_TYPE_FP64']._serialized_start = 2333
+ _globals['_TYPE_FP64']._serialized_end = 2456
+ _globals['_TYPE_STRING']._serialized_start = 2458
+ _globals['_TYPE_STRING']._serialized_end = 2583
+ _globals['_TYPE_BINARY']._serialized_start = 2585
+ _globals['_TYPE_BINARY']._serialized_end = 2710
+ _globals['_TYPE_TIMESTAMP']._serialized_start = 2713
+ _globals['_TYPE_TIMESTAMP']._serialized_end = 2841
+ _globals['_TYPE_DATE']._serialized_start = 2843
+ _globals['_TYPE_DATE']._serialized_end = 2966
+ _globals['_TYPE_TIME']._serialized_start = 2968
+ _globals['_TYPE_TIME']._serialized_end = 3091
+ _globals['_TYPE_TIMESTAMPTZ']._serialized_start = 3094
+ _globals['_TYPE_TIMESTAMPTZ']._serialized_end = 3224
+ _globals['_TYPE_INTERVALYEAR']._serialized_start = 3227
+ _globals['_TYPE_INTERVALYEAR']._serialized_end = 3358
+ _globals['_TYPE_INTERVALDAY']._serialized_start = 3361
+ _globals['_TYPE_INTERVALDAY']._serialized_end = 3540
+ _globals['_TYPE_INTERVALCOMPOUND']._serialized_start = 3543
+ _globals['_TYPE_INTERVALCOMPOUND']._serialized_end = 3708
+ _globals['_TYPE_UUID']._serialized_start = 3710
+ _globals['_TYPE_UUID']._serialized_end = 3833
+ _globals['_TYPE_FIXEDCHAR']._serialized_start = 3836
+ _globals['_TYPE_FIXEDCHAR']._serialized_end = 3988
+ _globals['_TYPE_VARCHAR']._serialized_start = 3991
+ _globals['_TYPE_VARCHAR']._serialized_end = 4141
+ _globals['_TYPE_FIXEDBINARY']._serialized_start = 4144
+ _globals['_TYPE_FIXEDBINARY']._serialized_end = 4298
+ _globals['_TYPE_DECIMAL']._serialized_start = 4301
+ _globals['_TYPE_DECIMAL']._serialized_end = 4479
+ _globals['_TYPE_PRECISIONTIME']._serialized_start = 4482
+ _globals['_TYPE_PRECISIONTIME']._serialized_end = 4644
+ _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_start = 4647
+ _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_end = 4814
+ _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_start = 4817
+ _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_end = 4986
+ _globals['_TYPE_STRUCT']._serialized_start = 4989
+ _globals['_TYPE_STRUCT']._serialized_end = 5149
+ _globals['_TYPE_LIST']._serialized_start = 5152
+ _globals['_TYPE_LIST']._serialized_end = 5308
+ _globals['_TYPE_MAP']._serialized_start = 5311
+ _globals['_TYPE_MAP']._serialized_end = 5499
+ _globals['_TYPE_USERDEFINED']._serialized_start = 5502
+ _globals['_TYPE_USERDEFINED']._serialized_end = 5735
+ _globals['_TYPE_PARAMETER']._serialized_start = 5738
+ _globals['_TYPE_PARAMETER']._serialized_end = 5956
+ _globals['_TYPE_NULLABILITY']._serialized_start = 5958
+ _globals['_TYPE_NULLABILITY']._serialized_end = 6052
+ _globals['_NAMEDSTRUCT']._serialized_start = 6062
+ _globals['_NAMEDSTRUCT']._serialized_end = 6141
\ No newline at end of file
diff --git a/src/substrait/gen/proto/type_pb2.pyi b/src/substrait/gen/proto/type_pb2.pyi
index 922e2fc..551a5ee 100644
--- a/src/substrait/gen/proto/type_pb2.pyi
+++ b/src/substrait/gen/proto/type_pb2.pyi
@@ -357,6 +357,23 @@ class Type(google.protobuf.message.Message):
def ClearField(self, field_name: typing_extensions.Literal['nullability', b'nullability', 'precision', b'precision', 'scale', b'scale', 'type_variation_reference', b'type_variation_reference']) -> None:
...
+ @typing_extensions.final
+ class PrecisionTime(google.protobuf.message.Message):
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
+ PRECISION_FIELD_NUMBER: builtins.int
+ TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int
+ NULLABILITY_FIELD_NUMBER: builtins.int
+ precision: builtins.int
+ 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds'
+ type_variation_reference: builtins.int
+ nullability: global___Type.Nullability.ValueType
+
+ def __init__(self, *, precision: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None:
+ ...
+
+ def ClearField(self, field_name: typing_extensions.Literal['nullability', b'nullability', 'precision', b'precision', 'type_variation_reference', b'type_variation_reference']) -> None:
+ ...
+
@typing_extensions.final
class PrecisionTimestamp(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -364,7 +381,7 @@ class Type(google.protobuf.message.Message):
TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int
NULLABILITY_FIELD_NUMBER: builtins.int
precision: builtins.int
- 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds'
+ 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds'
type_variation_reference: builtins.int
nullability: global___Type.Nullability.ValueType
@@ -381,7 +398,7 @@ class Type(google.protobuf.message.Message):
TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int
NULLABILITY_FIELD_NUMBER: builtins.int
precision: builtins.int
- 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds'
+ 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds'
type_variation_reference: builtins.int
nullability: global___Type.Nullability.ValueType
@@ -537,6 +554,7 @@ class Type(google.protobuf.message.Message):
VARCHAR_FIELD_NUMBER: builtins.int
FIXED_BINARY_FIELD_NUMBER: builtins.int
DECIMAL_FIELD_NUMBER: builtins.int
+ PRECISION_TIME_FIELD_NUMBER: builtins.int
PRECISION_TIMESTAMP_FIELD_NUMBER: builtins.int
PRECISION_TIMESTAMP_TZ_FIELD_NUMBER: builtins.int
STRUCT_FIELD_NUMBER: builtins.int
@@ -591,7 +609,7 @@ class Type(google.protobuf.message.Message):
@property
def time(self) -> global___Type.Time:
- ...
+ """Deprecated in favor of `PrecisionTime precision_time`"""
@property
def interval_year(self) -> global___Type.IntervalYear:
@@ -629,6 +647,10 @@ class Type(google.protobuf.message.Message):
def decimal(self) -> global___Type.Decimal:
...
+ @property
+ def precision_time(self) -> global___Type.PrecisionTime:
+ ...
+
@property
def precision_timestamp(self) -> global___Type.PrecisionTimestamp:
...
@@ -655,16 +677,16 @@ class Type(google.protobuf.message.Message):
user_defined_type_reference: builtins.int
'Deprecated in favor of user_defined, which allows nullability and\n variations to be specified. If user_defined_type_reference is\n encountered, treat it as being non-nullable and having the default\n variation.\n '
- def __init__(self, *, bool: global___Type.Boolean | None=..., i8: global___Type.I8 | None=..., i16: global___Type.I16 | None=..., i32: global___Type.I32 | None=..., i64: global___Type.I64 | None=..., fp32: global___Type.FP32 | None=..., fp64: global___Type.FP64 | None=..., string: global___Type.String | None=..., binary: global___Type.Binary | None=..., timestamp: global___Type.Timestamp | None=..., date: global___Type.Date | None=..., time: global___Type.Time | None=..., interval_year: global___Type.IntervalYear | None=..., interval_day: global___Type.IntervalDay | None=..., interval_compound: global___Type.IntervalCompound | None=..., timestamp_tz: global___Type.TimestampTZ | None=..., uuid: global___Type.UUID | None=..., fixed_char: global___Type.FixedChar | None=..., varchar: global___Type.VarChar | None=..., fixed_binary: global___Type.FixedBinary | None=..., decimal: global___Type.Decimal | None=..., precision_timestamp: global___Type.PrecisionTimestamp | None=..., precision_timestamp_tz: global___Type.PrecisionTimestampTZ | None=..., struct: global___Type.Struct | None=..., list: global___Type.List | None=..., map: global___Type.Map | None=..., user_defined: global___Type.UserDefined | None=..., user_defined_type_reference: builtins.int=...) -> None:
+ def __init__(self, *, bool: global___Type.Boolean | None=..., i8: global___Type.I8 | None=..., i16: global___Type.I16 | None=..., i32: global___Type.I32 | None=..., i64: global___Type.I64 | None=..., fp32: global___Type.FP32 | None=..., fp64: global___Type.FP64 | None=..., string: global___Type.String | None=..., binary: global___Type.Binary | None=..., timestamp: global___Type.Timestamp | None=..., date: global___Type.Date | None=..., time: global___Type.Time | None=..., interval_year: global___Type.IntervalYear | None=..., interval_day: global___Type.IntervalDay | None=..., interval_compound: global___Type.IntervalCompound | None=..., timestamp_tz: global___Type.TimestampTZ | None=..., uuid: global___Type.UUID | None=..., fixed_char: global___Type.FixedChar | None=..., varchar: global___Type.VarChar | None=..., fixed_binary: global___Type.FixedBinary | None=..., decimal: global___Type.Decimal | None=..., precision_time: global___Type.PrecisionTime | None=..., precision_timestamp: global___Type.PrecisionTimestamp | None=..., precision_timestamp_tz: global___Type.PrecisionTimestampTZ | None=..., struct: global___Type.Struct | None=..., list: global___Type.List | None=..., map: global___Type.Map | None=..., user_defined: global___Type.UserDefined | None=..., user_defined_type_reference: builtins.int=...) -> None:
...
- def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool:
+ def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool:
...
- def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> None:
+ def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> None:
...
- def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'interval_compound', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_type_reference'] | None:
+ def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'interval_compound', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_type_reference'] | None:
...
global___Type = Type
@@ -689,6 +711,8 @@ class NamedStruct(google.protobuf.message.Message):
* Only struct fields are contained in this field's elements,
* Map keys should be traversed first, then values when producing/consuming
+ * When used to represent a relation schema, the outermost struct's
+ nullability should be NULLABILITY_REQUIRED.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
NAMES_FIELD_NUMBER: builtins.int
diff --git a/third_party/substrait b/third_party/substrait
index ff013aa..413c7c8 160000
--- a/third_party/substrait
+++ b/third_party/substrait
@@ -1 +1 @@
-Subproject commit ff013aaca4ed1083e318532b74fb3e72f665e357
+Subproject commit 413c7c8c8ea149ea1596c9c3b2e57151d6ce63f7