# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: substrait/algebra.proto
# Protobuf Python Version: 5.29.5
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
_runtime_version.ValidateProtobufRuntimeVersion(
    _runtime_version.Domain.PUBLIC,
    5,
    29,
    5,
    '',
    'substrait/algebra.proto'
)
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
from substrait.extensions import extensions_pb2 as substrait_dot_extensions_dot_extensions__pb2
from substrait import type_pb2 as substrait_dot_type__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17substrait/algebra.proto\x12\tsubstrait\x1a\x19google/protobuf/any.proto\x1a%substrait/extensions/extensions.proto\x1a\x14substrait/type.proto\"\xf6\x0c\n\tRelCommon\x12\x35\n\x06\x64irect\x18\x01 \x01(\x0b\x32\x1b.substrait.RelCommon.DirectH\x00R\x06\x64irect\x12/\n\x04\x65mit\x18\x02 \x01(\x0b\x32\x19.substrait.RelCommon.EmitH\x00R\x04\x65mit\x12-\n\x04hint\x18\x03 \x01(\x0b\x32\x19.substrait.RelCommon.HintR\x04hint\x12V\n\x12\x61\x64vanced_extension\x18\x04 \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\x08\n\x06\x44irect\x1a-\n\x04\x45mit\x12%\n\x0eoutput_mapping\x18\x01 \x03(\x05R\routputMapping\x1a\xb3\n\n\x04Hint\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.substrait.RelCommon.Hint.StatsR\x05stats\x12K\n\nconstraint\x18\x02 \x01(\x0b\x32+.substrait.RelCommon.Hint.RuntimeConstraintR\nconstraint\x12\x14\n\x05\x61lias\x18\x03 \x01(\tR\x05\x61lias\x12!\n\x0coutput_names\x18\x04 \x03(\tR\x0boutputNames\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x12Y\n\x12saved_computations\x18\x0b \x03(\x0b\x32*.substrait.RelCommon.Hint.SavedComputationR\x11savedComputations\x12\\\n\x13loaded_computations\x18\x0c \x03(\x0b\x32+.substrait.RelCommon.Hint.LoadedComputationR\x12loadedComputations\x1a\x9d\x01\n\x05Stats\x12\x1b\n\trow_count\x18\x01 \x01(\x01R\x08rowCount\x12\x1f\n\x0brecord_size\x18\x02 \x01(\x01R\nrecordSize\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1ak\n\x11RuntimeConstraint\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xd0\x01\n\x10SavedComputation\x12%\n\x0e\x63omputation_id\x18\x01 \x01(\x05R\rcomputationId\x12=\n\x04type\x18\x02 \x01(\x0e\x32).substrait.RelCommon.Hint.ComputationTypeR\x04type\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xe4\x01\n\x11LoadedComputation\x12\x38\n\x18\x63omputation_id_reference\x18\x01 \x01(\x05R\x16\x63omputationIdReference\x12=\n\x04type\x18\x02 \x01(\x0e\x32).substrait.RelCommon.Hint.ComputationTypeR\x04type\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\x95\x01\n\x0f\x43omputationType\x12 \n\x1c\x43OMPUTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x43OMPUTATION_TYPE_HASHTABLE\x10\x01\x12!\n\x1d\x43OMPUTATION_TYPE_BLOOM_FILTER\x10\x02\x12\x1d\n\x18\x43OMPUTATION_TYPE_UNKNOWN\x10\x8fNB\x0b\n\temit_kind\"\xdd\x14\n\x07ReadRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12\x37\n\x0b\x62\x61se_schema\x18\x02 \x01(\x0b\x32\x16.substrait.NamedStructR\nbaseSchema\x12-\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x15.substrait.ExpressionR\x06\x66ilter\x12\x43\n\x12\x62\x65st_effort_filter\x18\x0b \x01(\x0b\x32\x15.substrait.ExpressionR\x10\x62\x65stEffortFilter\x12\x44\n\nprojection\x18\x04 \x01(\x0b\x32$.substrait.Expression.MaskExpressionR\nprojection\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x12\x46\n\rvirtual_table\x18\x05 \x01(\x0b\x32\x1f.substrait.ReadRel.VirtualTableH\x00R\x0cvirtualTable\x12@\n\x0blocal_files\x18\x06 \x01(\x0b\x32\x1d.substrait.ReadRel.LocalFilesH\x00R\nlocalFiles\x12@\n\x0bnamed_table\x18\x07 \x01(\x0b\x32\x1d.substrait.ReadRel.NamedTableH\x00R\nnamedTable\x12L\n\x0f\x65xtension_table\x18\x08 \x01(\x0b\x32!.substrait.ReadRel.ExtensionTableH\x00R\x0e\x65xtensionTable\x12\x46\n\riceberg_table\x18\t \x01(\x0b\x32\x1f.substrait.ReadRel.IcebergTableH\x00R\x0cicebergTable\x1az\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\x80\x02\n\x0cIcebergTable\x12J\n\x06\x64irect\x18\x01 \x01(\x0b\x32\x30.substrait.ReadRel.IcebergTable.MetadataFileReadH\x00R\x06\x64irect\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\x97\x01\n\x0cVirtualTable\x12@\n\x06values\x18\x01 \x03(\x0b\x32$.substrait.Expression.Literal.StructB\x02\x18\x01R\x06values\x12\x45\n\x0b\x65xpressions\x18\x02 \x03(\x0b\x32#.substrait.Expression.Nested.StructR\x0b\x65xpressions\x1a>\n\x0e\x45xtensionTable\x12,\n\x06\x64\x65tail\x18\x01 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\x1a\x90\n\n\nLocalFiles\x12?\n\x05items\x18\x01 \x03(\x0b\x32).substrait.ReadRel.LocalFiles.FileOrFilesR\x05items\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xe8\x08\n\x0b\x46ileOrFiles\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\x12X\n\x07parquet\x18\t \x01(\x0b\x32<.substrait.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptionsH\x01R\x07parquet\x12R\n\x05\x61rrow\x18\n \x01(\x0b\x32:.substrait.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptionsH\x01R\x05\x61rrow\x12L\n\x03orc\x18\x0b \x01(\x0b\x32\x38.substrait.ReadRel.LocalFiles.FileOrFiles.OrcReadOptionsH\x01R\x03orc\x12\x34\n\textension\x18\x0c \x01(\x0b\x32\x14.google.protobuf.AnyH\x01R\textension\x12O\n\x04\x64wrf\x18\r \x01(\x0b\x32\x39.substrait.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptionsH\x01R\x04\x64wrf\x12\x61\n\x04text\x18\x0e \x01(\x0b\x32K.substrait.ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptionsH\x01R\x04text\x1a\x14\n\x12ParquetReadOptions\x1a\x12\n\x10\x41rrowReadOptions\x1a\x10\n\x0eOrcReadOptions\x1a\x11\n\x0f\x44wrfReadOptions\x1a\xa1\x02\n!DelimiterSeparatedTextReadOptions\x12\'\n\x0f\x66ield_delimiter\x18\x01 \x01(\tR\x0e\x66ieldDelimiter\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\x06\x65scape\x18\x05 \x01(\tR\x06\x65scape\x12\x36\n\x15value_treated_as_null\x18\x06 \x01(\tH\x00R\x12valueTreatedAsNull\x88\x01\x01\x42\x18\n\x16_value_treated_as_nullB\x0b\n\tpath_typeB\r\n\x0b\x66ile_formatJ\x04\x08\x05\x10\x06R\x06\x66ormatB\x0b\n\tread_type\"\xf1\x01\n\nProjectRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12$\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x12\x37\n\x0b\x65xpressions\x18\x03 \x03(\x0b\x32\x15.substrait.ExpressionR\x0b\x65xpressions\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xcd\x05\n\x07JoinRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12\"\n\x04left\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x04left\x12$\n\x05right\x18\x03 \x01(\x0b\x32\x0e.substrait.RelR\x05right\x12\x35\n\nexpression\x18\x04 \x01(\x0b\x32\x15.substrait.ExpressionR\nexpression\x12?\n\x10post_join_filter\x18\x05 \x01(\x0b\x32\x15.substrait.ExpressionR\x0epostJoinFilter\x12/\n\x04type\x18\x06 \x01(\x0e\x32\x1b.substrait.JoinRel.JoinTypeR\x04type\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\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\"\xda\x01\n\x08\x43rossRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12\"\n\x04left\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x04left\x12$\n\x05right\x18\x03 \x01(\x0b\x32\x0e.substrait.RelR\x05right\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xff\x02\n\x08\x46\x65tchRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12$\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x12\x1c\n\x06offset\x18\x03 \x01(\x03\x42\x02\x18\x01H\x00R\x06offset\x12\x38\n\x0boffset_expr\x18\x05 \x01(\x0b\x32\x15.substrait.ExpressionH\x00R\noffsetExpr\x12\x1a\n\x05\x63ount\x18\x04 \x01(\x03\x42\x02\x18\x01H\x01R\x05\x63ount\x12\x36\n\ncount_expr\x18\x06 \x01(\x0b\x32\x15.substrait.ExpressionH\x01R\tcountExpr\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtensionB\r\n\x0boffset_modeB\x0c\n\ncount_mode\"\x83\x05\n\x0c\x41ggregateRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12$\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x12>\n\tgroupings\x18\x03 \x03(\x0b\x32 .substrait.AggregateRel.GroupingR\tgroupings\x12;\n\x08measures\x18\x04 \x03(\x0b\x32\x1f.substrait.AggregateRel.MeasureR\x08measures\x12H\n\x14grouping_expressions\x18\x05 \x03(\x0b\x32\x15.substrait.ExpressionR\x13groupingExpressions\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\x8d\x01\n\x08Grouping\x12L\n\x14grouping_expressions\x18\x01 \x03(\x0b\x32\x15.substrait.ExpressionB\x02\x18\x01R\x13groupingExpressions\x12\x33\n\x15\x65xpression_references\x18\x02 \x03(\rR\x14\x65xpressionReferences\x1ap\n\x07Measure\x12\x36\n\x07measure\x18\x01 \x01(\x0b\x32\x1c.substrait.AggregateFunctionR\x07measure\x12-\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x15.substrait.ExpressionR\x06\x66ilter\"\x82\x08\n\x1c\x43onsistentPartitionWindowRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12$\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x12\x64\n\x10window_functions\x18\x03 \x03(\x0b\x32\x39.substrait.ConsistentPartitionWindowRel.WindowRelFunctionR\x0fwindowFunctions\x12J\n\x15partition_expressions\x18\x04 \x03(\x0b\x32\x15.substrait.ExpressionR\x14partitionExpressions\x12*\n\x05sorts\x18\x05 \x03(\x0b\x32\x14.substrait.SortFieldR\x05sorts\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xd7\x04\n\x11WindowRelFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x39\n\targuments\x18\t \x03(\x0b\x32\x1b.substrait.FunctionArgumentR\targuments\x12\x33\n\x07options\x18\x0b \x03(\x0b\x32\x19.substrait.FunctionOptionR\x07options\x12\x30\n\x0boutput_type\x18\x07 \x01(\x0b\x32\x0f.substrait.TypeR\noutputType\x12\x31\n\x05phase\x18\x06 \x01(\x0e\x32\x1b.substrait.AggregationPhaseR\x05phase\x12R\n\ninvocation\x18\n \x01(\x0e\x32\x32.substrait.AggregateFunction.AggregationInvocationR\ninvocation\x12K\n\x0blower_bound\x18\x05 \x01(\x0b\x32*.substrait.Expression.WindowFunction.BoundR\nlowerBound\x12K\n\x0bupper_bound\x18\x04 \x01(\x0b\x32*.substrait.Expression.WindowFunction.BoundR\nupperBound\x12P\n\x0b\x62ounds_type\x18\x0c \x01(\x0e\x32/.substrait.Expression.WindowFunction.BoundsTypeR\nboundsType\"\xe1\x01\n\x07SortRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12$\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x12*\n\x05sorts\x18\x03 \x03(\x0b\x32\x14.substrait.SortFieldR\x05sorts\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xec\x01\n\tFilterRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12$\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x12\x33\n\tcondition\x18\x03 \x01(\x0b\x32\x15.substrait.ExpressionR\tcondition\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xee\x03\n\x06SetRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12&\n\x06inputs\x18\x02 \x03(\x0b\x32\x0e.substrait.RelR\x06inputs\x12\'\n\x02op\x18\x03 \x01(\x0e\x32\x17.substrait.SetRel.SetOpR\x02op\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\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\"\x96\x01\n\x12\x45xtensionSingleRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12$\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x12,\n\x06\x64\x65tail\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"n\n\x10\x45xtensionLeafRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12,\n\x06\x64\x65tail\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"\x97\x01\n\x11\x45xtensionMultiRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12&\n\x06inputs\x18\x02 \x03(\x0b\x32\x0e.substrait.RelR\x06inputs\x12,\n\x06\x64\x65tail\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"\x9a\t\n\x0b\x45xchangeRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12$\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x12\'\n\x0fpartition_count\x18\x03 \x01(\x05R\x0epartitionCount\x12?\n\x07targets\x18\x04 \x03(\x0b\x32%.substrait.ExchangeRel.ExchangeTargetR\x07targets\x12R\n\x11scatter_by_fields\x18\x05 \x01(\x0b\x32$.substrait.ExchangeRel.ScatterFieldsH\x00R\x0fscatterByFields\x12T\n\rsingle_target\x18\x06 \x01(\x0b\x32-.substrait.ExchangeRel.SingleBucketExpressionH\x00R\x0csingleTarget\x12Q\n\x0cmulti_target\x18\x07 \x01(\x0b\x32,.substrait.ExchangeRel.MultiBucketExpressionH\x00R\x0bmultiTarget\x12\x44\n\x0bround_robin\x18\x08 \x01(\x0b\x32!.substrait.ExchangeRel.RoundRobinH\x00R\nroundRobin\x12@\n\tbroadcast\x18\t \x01(\x0b\x32 .substrait.ExchangeRel.BroadcastH\x00R\tbroadcast\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1aM\n\rScatterFields\x12<\n\x06\x66ields\x18\x01 \x03(\x0b\x32$.substrait.Expression.FieldReferenceR\x06\x66ields\x1aO\n\x16SingleBucketExpression\x12\x35\n\nexpression\x18\x01 \x01(\x0b\x32\x15.substrait.ExpressionR\nexpression\x1a\x80\x01\n\x15MultiBucketExpression\x12\x35\n\nexpression\x18\x01 \x01(\x0b\x32\x15.substrait.ExpressionR\nexpression\x12\x30\n\x14\x63onstrained_to_count\x18\x02 \x01(\x08R\x12\x63onstrainedToCount\x1a\x0b\n\tBroadcast\x1a\"\n\nRoundRobin\x12\x14\n\x05\x65xact\x18\x01 \x01(\x08R\x05\x65xact\x1a\x8a\x01\n\x0e\x45xchangeTarget\x12!\n\x0cpartition_id\x18\x01 \x03(\x05R\x0bpartitionId\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x12\x32\n\x08\x65xtended\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00R\x08\x65xtendedB\r\n\x0btarget_typeB\x0f\n\rexchange_kind\"\x94\x03\n\tExpandRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12$\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x12\x38\n\x06\x66ields\x18\x04 \x03(\x0b\x32 .substrait.ExpandRel.ExpandFieldR\x06\x66ields\x1a\xaf\x01\n\x0b\x45xpandField\x12N\n\x0fswitching_field\x18\x02 \x01(\x0b\x32#.substrait.ExpandRel.SwitchingFieldH\x00R\x0eswitchingField\x12\x42\n\x10\x63onsistent_field\x18\x03 \x01(\x0b\x32\x15.substrait.ExpressionH\x00R\x0f\x63onsistentFieldB\x0c\n\nfield_type\x1aG\n\x0eSwitchingField\x12\x35\n\nduplicates\x18\x01 \x03(\x0b\x32\x15.substrait.ExpressionR\nduplicates\"E\n\x07RelRoot\x12$\n\x05input\x18\x01 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x12\x14\n\x05names\x18\x02 \x03(\tR\x05names\"\xa8\t\n\x03Rel\x12(\n\x04read\x18\x01 \x01(\x0b\x32\x12.substrait.ReadRelH\x00R\x04read\x12.\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x14.substrait.FilterRelH\x00R\x06\x66ilter\x12+\n\x05\x66\x65tch\x18\x03 \x01(\x0b\x32\x13.substrait.FetchRelH\x00R\x05\x66\x65tch\x12\x37\n\taggregate\x18\x04 \x01(\x0b\x32\x17.substrait.AggregateRelH\x00R\taggregate\x12(\n\x04sort\x18\x05 \x01(\x0b\x32\x12.substrait.SortRelH\x00R\x04sort\x12(\n\x04join\x18\x06 \x01(\x0b\x32\x12.substrait.JoinRelH\x00R\x04join\x12\x31\n\x07project\x18\x07 \x01(\x0b\x32\x15.substrait.ProjectRelH\x00R\x07project\x12%\n\x03set\x18\x08 \x01(\x0b\x32\x11.substrait.SetRelH\x00R\x03set\x12J\n\x10\x65xtension_single\x18\t \x01(\x0b\x32\x1d.substrait.ExtensionSingleRelH\x00R\x0f\x65xtensionSingle\x12G\n\x0f\x65xtension_multi\x18\n \x01(\x0b\x32\x1c.substrait.ExtensionMultiRelH\x00R\x0e\x65xtensionMulti\x12\x44\n\x0e\x65xtension_leaf\x18\x0b \x01(\x0b\x32\x1b.substrait.ExtensionLeafRelH\x00R\rextensionLeaf\x12+\n\x05\x63ross\x18\x0c \x01(\x0b\x32\x13.substrait.CrossRelH\x00R\x05\x63ross\x12\x37\n\treference\x18\x15 \x01(\x0b\x32\x17.substrait.ReferenceRelH\x00R\treference\x12+\n\x05write\x18\x13 \x01(\x0b\x32\x13.substrait.WriteRelH\x00R\x05write\x12%\n\x03\x64\x64l\x18\x14 \x01(\x0b\x32\x11.substrait.DdlRelH\x00R\x03\x64\x64l\x12.\n\x06update\x18\x16 \x01(\x0b\x32\x14.substrait.UpdateRelH\x00R\x06update\x12\x35\n\thash_join\x18\r \x01(\x0b\x32\x16.substrait.HashJoinRelH\x00R\x08hashJoin\x12\x38\n\nmerge_join\x18\x0e \x01(\x0b\x32\x17.substrait.MergeJoinRelH\x00R\tmergeJoin\x12H\n\x10nested_loop_join\x18\x12 \x01(\x0b\x32\x1c.substrait.NestedLoopJoinRelH\x00R\x0enestedLoopJoin\x12\x41\n\x06window\x18\x11 \x01(\x0b\x32\'.substrait.ConsistentPartitionWindowRelH\x00R\x06window\x12\x34\n\x08\x65xchange\x18\x0f \x01(\x0b\x32\x16.substrait.ExchangeRelH\x00R\x08\x65xchange\x12.\n\x06\x65xpand\x18\x10 \x01(\x0b\x32\x14.substrait.ExpandRelH\x00R\x06\x65xpandB\n\n\x08rel_type\"\x80\x01\n\x10NamedObjectWrite\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"?\n\x0f\x45xtensionObject\x12,\n\x06\x64\x65tail\x18\x01 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"\xaa\x06\n\x06\x44\x64lRel\x12@\n\x0cnamed_object\x18\x01 \x01(\x0b\x32\x1b.substrait.NamedObjectWriteH\x00R\x0bnamedObject\x12G\n\x10\x65xtension_object\x18\x02 \x01(\x0b\x32\x1a.substrait.ExtensionObjectH\x00R\x0f\x65xtensionObject\x12\x39\n\x0ctable_schema\x18\x03 \x01(\x0b\x32\x16.substrait.NamedStructR\x0btableSchema\x12K\n\x0etable_defaults\x18\x04 \x01(\x0b\x32$.substrait.Expression.Literal.StructR\rtableDefaults\x12\x33\n\x06object\x18\x05 \x01(\x0e\x32\x1b.substrait.DdlRel.DdlObjectR\x06object\x12\'\n\x02op\x18\x06 \x01(\x0e\x32\x17.substrait.DdlRel.DdlOpR\x02op\x12\x37\n\x0fview_definition\x18\x07 \x01(\x0b\x32\x0e.substrait.RelR\x0eviewDefinition\x12,\n\x06\x63ommon\x18\x08 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12V\n\x12\x61\x64vanced_extension\x18\t \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"R\n\tDdlObject\x12\x1a\n\x16\x44\x44L_OBJECT_UNSPECIFIED\x10\x00\x12\x14\n\x10\x44\x44L_OBJECT_TABLE\x10\x01\x12\x13\n\x0f\x44\x44L_OBJECT_VIEW\x10\x02\"\x8d\x01\n\x05\x44\x64lOp\x12\x16\n\x12\x44\x44L_OP_UNSPECIFIED\x10\x00\x12\x11\n\rDDL_OP_CREATE\x10\x01\x12\x1c\n\x18\x44\x44L_OP_CREATE_OR_REPLACE\x10\x02\x12\x10\n\x0c\x44\x44L_OP_ALTER\x10\x03\x12\x0f\n\x0b\x44\x44L_OP_DROP\x10\x04\x12\x18\n\x14\x44\x44L_OP_DROP_IF_EXIST\x10\x05\x42\x0c\n\nwrite_type\"\xbf\x07\n\x08WriteRel\x12>\n\x0bnamed_table\x18\x01 \x01(\x0b\x32\x1b.substrait.NamedObjectWriteH\x00R\nnamedTable\x12\x45\n\x0f\x65xtension_table\x18\x02 \x01(\x0b\x32\x1a.substrait.ExtensionObjectH\x00R\x0e\x65xtensionTable\x12\x39\n\x0ctable_schema\x18\x03 \x01(\x0b\x32\x16.substrait.NamedStructR\x0btableSchema\x12+\n\x02op\x18\x04 \x01(\x0e\x32\x1b.substrait.WriteRel.WriteOpR\x02op\x12$\n\x05input\x18\x05 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x12?\n\x0b\x63reate_mode\x18\x08 \x01(\x0e\x32\x1e.substrait.WriteRel.CreateModeR\ncreateMode\x12\x36\n\x06output\x18\x06 \x01(\x0e\x32\x1e.substrait.WriteRel.OutputModeR\x06output\x12,\n\x06\x63ommon\x18\x07 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12V\n\x12\x61\x64vanced_extension\x18\t \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"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\x17\x43REATE_MODE_UNSPECIFIED\x10\x00\x12 \n\x1c\x43REATE_MODE_APPEND_IF_EXISTS\x10\x01\x12!\n\x1d\x43REATE_MODE_REPLACE_IF_EXISTS\x10\x02\x12 \n\x1c\x43REATE_MODE_IGNORE_IF_EXISTS\x10\x03\x12\x1f\n\x1b\x43REATE_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\x02\x42\x0c\n\nwrite_type\"\xeb\x03\n\tUpdateRel\x12\x38\n\x0bnamed_table\x18\x01 \x01(\x0b\x32\x15.substrait.NamedTableH\x00R\nnamedTable\x12\x39\n\x0ctable_schema\x18\x02 \x01(\x0b\x32\x16.substrait.NamedStructR\x0btableSchema\x12\x33\n\tcondition\x18\x03 \x01(\x0b\x32\x15.substrait.ExpressionR\tcondition\x12R\n\x0ftransformations\x18\x04 \x03(\x0b\x32(.substrait.UpdateRel.TransformExpressionR\x0ftransformations\x12V\n\x12\x61\x64vanced_extension\x18\x05 \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1ay\n\x13TransformExpression\x12=\n\x0etransformation\x18\x01 \x01(\x0b\x32\x15.substrait.ExpressionR\x0etransformation\x12#\n\rcolumn_target\x18\x02 \x01(\x05R\x0c\x63olumnTargetB\r\n\x0bupdate_type\"z\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xbb\x04\n\x11\x43omparisonJoinKey\x12\x38\n\x04left\x18\x01 \x01(\x0b\x32$.substrait.Expression.FieldReferenceR\x04left\x12:\n\x05right\x18\x02 \x01(\x0b\x32$.substrait.Expression.FieldReferenceR\x05right\x12K\n\ncomparison\x18\x03 \x01(\x0b\x32+.substrait.ComparisonJoinKey.ComparisonTypeR\ncomparison\x1a\xa9\x01\n\x0e\x43omparisonType\x12K\n\x06simple\x18\x01 \x01(\x0e\x32\x31.substrait.ComparisonJoinKey.SimpleComparisonTypeH\x00R\x06simple\x12<\n\x19\x63ustom_function_reference\x18\x02 \x01(\rH\x00R\x17\x63ustomFunctionReferenceB\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\"\xfc\x07\n\x0bHashJoinRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12\"\n\x04left\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x04left\x12$\n\x05right\x18\x03 \x01(\x0b\x32\x0e.substrait.RelR\x05right\x12\x45\n\tleft_keys\x18\x04 \x03(\x0b\x32$.substrait.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12G\n\nright_keys\x18\x05 \x03(\x0b\x32$.substrait.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12\x30\n\x04keys\x18\x08 \x03(\x0b\x32\x1c.substrait.ComparisonJoinKeyR\x04keys\x12?\n\x10post_join_filter\x18\x06 \x01(\x0b\x32\x15.substrait.ExpressionR\x0epostJoinFilter\x12\x33\n\x04type\x18\x07 \x01(\x0e\x32\x1f.substrait.HashJoinRel.JoinTypeR\x04type\x12\x42\n\x0b\x62uild_input\x18\t \x01(\x0e\x32!.substrait.HashJoinRel.BuildInputR\nbuildInput\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\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\"V\n\nBuildInput\x12\x1b\n\x17\x42UILD_INPUT_UNSPECIFIED\x10\x00\x12\x14\n\x10\x42UILD_INPUT_LEFT\x10\x01\x12\x15\n\x11\x42UILD_INPUT_RIGHT\x10\x02\"\xe2\x06\n\x0cMergeJoinRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12\"\n\x04left\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x04left\x12$\n\x05right\x18\x03 \x01(\x0b\x32\x0e.substrait.RelR\x05right\x12\x45\n\tleft_keys\x18\x04 \x03(\x0b\x32$.substrait.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12G\n\nright_keys\x18\x05 \x03(\x0b\x32$.substrait.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12\x30\n\x04keys\x18\x08 \x03(\x0b\x32\x1c.substrait.ComparisonJoinKeyR\x04keys\x12?\n\x10post_join_filter\x18\x06 \x01(\x0b\x32\x15.substrait.ExpressionR\x0epostJoinFilter\x12\x34\n\x04type\x18\x07 \x01(\x0e\x32 .substrait.MergeJoinRel.JoinTypeR\x04type\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\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\"\xa0\x05\n\x11NestedLoopJoinRel\x12,\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommonR\x06\x63ommon\x12\"\n\x04left\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x04left\x12$\n\x05right\x18\x03 \x01(\x0b\x32\x0e.substrait.RelR\x05right\x12\x35\n\nexpression\x18\x04 \x01(\x0b\x32\x15.substrait.ExpressionR\nexpression\x12\x39\n\x04type\x18\x05 \x01(\x0e\x32%.substrait.NestedLoopJoinRel.JoinTypeR\x04type\x12V\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\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\"\x8a\x01\n\x10\x46unctionArgument\x12\x14\n\x04\x65num\x18\x01 \x01(\tH\x00R\x04\x65num\x12%\n\x04type\x18\x02 \x01(\x0b\x32\x0f.substrait.TypeH\x00R\x04type\x12-\n\x05value\x18\x03 \x01(\x0b\x32\x15.substrait.ExpressionH\x00R\x05valueB\n\n\x08\x61rg_type\"D\n\x0e\x46unctionOption\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n\npreference\x18\x02 \x03(\tR\npreference\"\xdb`\n\nExpression\x12\x39\n\x07literal\x18\x01 \x01(\x0b\x32\x1d.substrait.Expression.LiteralH\x00R\x07literal\x12\x44\n\tselection\x18\x02 \x01(\x0b\x32$.substrait.Expression.FieldReferenceH\x00R\tselection\x12O\n\x0fscalar_function\x18\x03 \x01(\x0b\x32$.substrait.Expression.ScalarFunctionH\x00R\x0escalarFunction\x12O\n\x0fwindow_function\x18\x05 \x01(\x0b\x32$.substrait.Expression.WindowFunctionH\x00R\x0ewindowFunction\x12\x37\n\x07if_then\x18\x06 \x01(\x0b\x32\x1c.substrait.Expression.IfThenH\x00R\x06ifThen\x12U\n\x11switch_expression\x18\x07 \x01(\x0b\x32&.substrait.Expression.SwitchExpressionH\x00R\x10switchExpression\x12P\n\x10singular_or_list\x18\x08 \x01(\x0b\x32$.substrait.Expression.SingularOrListH\x00R\x0esingularOrList\x12G\n\rmulti_or_list\x18\t \x01(\x0b\x32!.substrait.Expression.MultiOrListH\x00R\x0bmultiOrList\x12\x30\n\x04\x63\x61st\x18\x0b \x01(\x0b\x32\x1a.substrait.Expression.CastH\x00R\x04\x63\x61st\x12<\n\x08subquery\x18\x0c \x01(\x0b\x32\x1e.substrait.Expression.SubqueryH\x00R\x08subquery\x12\x36\n\x06nested\x18\r \x01(\x0b\x32\x1c.substrait.Expression.NestedH\x00R\x06nested\x12J\n\x11\x64ynamic_parameter\x18\x0e \x01(\x0b\x32\x1b.substrait.DynamicParameterH\x00R\x10\x64ynamicParameter\x12\x36\n\x06lambda\x18\x0f \x01(\x0b\x32\x1c.substrait.Expression.LambdaH\x00R\x06lambda\x12U\n\x11lambda_invocation\x18\x10 \x01(\x0b\x32&.substrait.Expression.LambdaInvocationH\x00R\x10lambdaInvocation\x12\x34\n\x04\x65num\x18\n \x01(\x0b\x32\x1a.substrait.Expression.EnumB\x02\x18\x01H\x00R\x04\x65num\x1a\x8a\x01\n\x04\x45num\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12\x44\n\x0bunspecified\x18\x02 \x01(\x0b\x32 .substrait.Expression.Enum.EmptyH\x00R\x0bunspecified\x1a\x0b\n\x05\x45mpty:\x02\x18\x01:\x02\x18\x01\x42\x0b\n\tenum_kind\x1a\x88\x18\n\x07Literal\x12\x1a\n\x07\x62oolean\x18\x01 \x01(\x08H\x00R\x07\x62oolean\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\x04\x66p32\x18\n \x01(\x02H\x00R\x04\x66p32\x12\x14\n\x04\x66p64\x18\x0b \x01(\x01H\x00R\x04\x66p64\x12\x18\n\x06string\x18\x0c \x01(\tH\x00R\x06string\x12\x18\n\x06\x62inary\x18\r \x01(\x0cH\x00R\x06\x62inary\x12\"\n\ttimestamp\x18\x0e \x01(\x03\x42\x02\x18\x01H\x00R\ttimestamp\x12\x14\n\x04\x64\x61te\x18\x10 \x01(\x05H\x00R\x04\x64\x61te\x12\x14\n\x04time\x18\x11 \x01(\x03H\x00R\x04time\x12h\n\x16interval_year_to_month\x18\x13 \x01(\x0b\x32\x31.substrait.Expression.Literal.IntervalYearToMonthH\x00R\x13intervalYearToMonth\x12h\n\x16interval_day_to_second\x18\x14 \x01(\x0b\x32\x31.substrait.Expression.Literal.IntervalDayToSecondH\x00R\x13intervalDayToSecond\x12]\n\x11interval_compound\x18$ \x01(\x0b\x32..substrait.Expression.Literal.IntervalCompoundH\x00R\x10intervalCompound\x12\x1f\n\nfixed_char\x18\x15 \x01(\tH\x00R\tfixedChar\x12\x42\n\x08var_char\x18\x16 \x01(\x0b\x32%.substrait.Expression.Literal.VarCharH\x00R\x07varChar\x12#\n\x0c\x66ixed_binary\x18\x17 \x01(\x0cH\x00R\x0b\x66ixedBinary\x12\x41\n\x07\x64\x65\x63imal\x18\x18 \x01(\x0b\x32%.substrait.Expression.Literal.DecimalH\x00R\x07\x64\x65\x63imal\x12T\n\x0eprecision_time\x18% \x01(\x0b\x32+.substrait.Expression.Literal.PrecisionTimeH\x00R\rprecisionTime\x12\x63\n\x13precision_timestamp\x18\" \x01(\x0b\x32\x30.substrait.Expression.Literal.PrecisionTimestampH\x00R\x12precisionTimestamp\x12h\n\x16precision_timestamp_tz\x18# \x01(\x0b\x32\x30.substrait.Expression.Literal.PrecisionTimestampH\x00R\x14precisionTimestampTz\x12>\n\x06struct\x18\x19 \x01(\x0b\x32$.substrait.Expression.Literal.StructH\x00R\x06struct\x12\x35\n\x03map\x18\x1a \x01(\x0b\x32!.substrait.Expression.Literal.MapH\x00R\x03map\x12\'\n\x0ctimestamp_tz\x18\x1b \x01(\x03\x42\x02\x18\x01H\x00R\x0btimestampTz\x12\x14\n\x04uuid\x18\x1c \x01(\x0cH\x00R\x04uuid\x12%\n\x04null\x18\x1d \x01(\x0b\x32\x0f.substrait.TypeH\x00R\x04null\x12\x38\n\x04list\x18\x1e \x01(\x0b\x32\".substrait.Expression.Literal.ListH\x00R\x04list\x12\x35\n\nempty_list\x18\x1f \x01(\x0b\x32\x14.substrait.Type.ListH\x00R\temptyList\x12\x32\n\tempty_map\x18  \x01(\x0b\x32\x13.substrait.Type.MapH\x00R\x08\x65mptyMap\x12N\n\x0cuser_defined\x18! \x01(\x0b\x32).substrait.Expression.Literal.UserDefinedH\x00R\x0buserDefined\x12\x1a\n\x08nullable\x18\x32 \x01(\x08R\x08nullable\x12\x38\n\x18type_variation_reference\x18\x33 \x01(\rR\x16typeVariationReference\x1a\x37\n\x07VarChar\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x12\x16\n\x06length\x18\x02 \x01(\rR\x06length\x1aS\n\x07\x44\x65\x63imal\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\x1a\x43\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\xc2\x01\n\x03Map\x12I\n\nkey_values\x18\x01 \x03(\x0b\x32*.substrait.Expression.Literal.Map.KeyValueR\tkeyValues\x1ap\n\x08KeyValue\x12/\n\x03key\x18\x01 \x01(\x0b\x32\x1d.substrait.Expression.LiteralR\x03key\x12\x33\n\x05value\x18\x02 \x01(\x0b\x32\x1d.substrait.Expression.LiteralR\x05value\x1a\x43\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\x04\x64\x61ys\x18\x01 \x01(\x05R\x04\x64\x61ys\x12\x18\n\x07seconds\x18\x02 \x01(\x05R\x07seconds\x12(\n\x0cmicroseconds\x18\x03 \x01(\x05\x42\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\xe2\x01\n\x10IntervalCompound\x12\x66\n\x16interval_year_to_month\x18\x01 \x01(\x0b\x32\x31.substrait.Expression.Literal.IntervalYearToMonthR\x13intervalYearToMonth\x12\x66\n\x16interval_day_to_second\x18\x02 \x01(\x0b\x32\x31.substrait.Expression.Literal.IntervalDayToSecondR\x13intervalDayToSecond\x1a?\n\x06Struct\x12\x35\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x1d.substrait.Expression.LiteralR\x06\x66ields\x1a=\n\x04List\x12\x35\n\x06values\x18\x01 \x03(\x0b\x32\x1d.substrait.Expression.LiteralR\x06values\x1a\xb7\x02\n\x0bUserDefined\x12\'\n\x0etype_reference\x18\x01 \x01(\rH\x00R\rtypeReference\x12\x32\n\x14type_alias_reference\x18\x05 \x01(\rH\x00R\x12typeAliasReference\x12\x42\n\x0ftype_parameters\x18\x03 \x03(\x0b\x32\x19.substrait.Type.ParameterR\x0etypeParameters\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyH\x01R\x05value\x12>\n\x06struct\x18\x04 \x01(\x0b\x32$.substrait.Expression.Literal.StructH\x01R\x06structB\x12\n\x10type_anchor_typeB\x05\n\x03valB\x0e\n\x0cliteral_type\x1a\xbf\x04\n\x06Nested\x12\x1a\n\x08nullable\x18\x01 \x01(\x08R\x08nullable\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x06struct\x18\x03 \x01(\x0b\x32#.substrait.Expression.Nested.StructH\x00R\x06struct\x12\x37\n\x04list\x18\x04 \x01(\x0b\x32!.substrait.Expression.Nested.ListH\x00R\x04list\x12\x34\n\x03map\x18\x05 \x01(\x0b\x32 .substrait.Expression.Nested.MapH\x00R\x03map\x1a\xb1\x01\n\x03Map\x12H\n\nkey_values\x18\x01 \x03(\x0b\x32).substrait.Expression.Nested.Map.KeyValueR\tkeyValues\x1a`\n\x08KeyValue\x12\'\n\x03key\x18\x01 \x01(\x0b\x32\x15.substrait.ExpressionR\x03key\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x15.substrait.ExpressionR\x05value\x1a\x37\n\x06Struct\x12-\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x15.substrait.ExpressionR\x06\x66ields\x1a\x35\n\x04List\x12-\n\x06values\x18\x01 \x03(\x0b\x32\x15.substrait.ExpressionR\x06valuesB\r\n\x0bnested_type\x1ak\n\x06Lambda\x12\x36\n\nparameters\x18\x01 \x01(\x0b\x32\x16.substrait.Type.StructR\nparameters\x12)\n\x04\x62ody\x18\x02 \x01(\x0b\x32\x15.substrait.ExpressionR\x04\x62ody\x1a\x8b\x01\n\x10LambdaInvocation\x12\x34\n\x06lambda\x18\x01 \x01(\x0b\x32\x1c.substrait.Expression.LambdaR\x06lambda\x12\x41\n\targuments\x18\x02 \x01(\x0b\x32#.substrait.Expression.Nested.StructR\targuments\x1a\x90\x02\n\x0eScalarFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x39\n\targuments\x18\x04 \x03(\x0b\x32\x1b.substrait.FunctionArgumentR\targuments\x12\x33\n\x07options\x18\x05 \x03(\x0b\x32\x19.substrait.FunctionOptionR\x07options\x12\x30\n\x0boutput_type\x18\x03 \x01(\x0b\x32\x0f.substrait.TypeR\noutputType\x12-\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x15.substrait.ExpressionB\x02\x18\x01R\x04\x61rgs\x1a\x91\n\n\x0eWindowFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x39\n\targuments\x18\t \x03(\x0b\x32\x1b.substrait.FunctionArgumentR\targuments\x12\x33\n\x07options\x18\x0b \x03(\x0b\x32\x19.substrait.FunctionOptionR\x07options\x12\x30\n\x0boutput_type\x18\x07 \x01(\x0b\x32\x0f.substrait.TypeR\noutputType\x12\x31\n\x05phase\x18\x06 \x01(\x0e\x32\x1b.substrait.AggregationPhaseR\x05phase\x12*\n\x05sorts\x18\x03 \x03(\x0b\x32\x14.substrait.SortFieldR\x05sorts\x12R\n\ninvocation\x18\n \x01(\x0e\x32\x32.substrait.AggregateFunction.AggregationInvocationR\ninvocation\x12\x35\n\npartitions\x18\x02 \x03(\x0b\x32\x15.substrait.ExpressionR\npartitions\x12P\n\x0b\x62ounds_type\x18\x0c \x01(\x0e\x32/.substrait.Expression.WindowFunction.BoundsTypeR\nboundsType\x12K\n\x0blower_bound\x18\x05 \x01(\x0b\x32*.substrait.Expression.WindowFunction.BoundR\nlowerBound\x12K\n\x0bupper_bound\x18\x04 \x01(\x0b\x32*.substrait.Expression.WindowFunction.BoundR\nupperBound\x12-\n\x04\x61rgs\x18\x08 \x03(\x0b\x32\x15.substrait.ExpressionB\x02\x18\x01R\x04\x61rgs\x1a\xd0\x03\n\x05\x42ound\x12T\n\tpreceding\x18\x01 \x01(\x0b\x32\x34.substrait.Expression.WindowFunction.Bound.PrecedingH\x00R\tpreceding\x12T\n\tfollowing\x18\x02 \x01(\x0b\x32\x34.substrait.Expression.WindowFunction.Bound.FollowingH\x00R\tfollowing\x12X\n\x0b\x63urrent_row\x18\x03 \x01(\x0b\x32\x35.substrait.Expression.WindowFunction.Bound.CurrentRowH\x00R\ncurrentRow\x12T\n\tunbounded\x18\x04 \x01(\x0b\x32\x34.substrait.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\x17\x42OUNDS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x42OUNDS_TYPE_ROWS\x10\x01\x12\x15\n\x11\x42OUNDS_TYPE_RANGE\x10\x02\x1a\xca\x01\n\x06IfThen\x12\x37\n\x03ifs\x18\x01 \x03(\x0b\x32%.substrait.Expression.IfThen.IfClauseR\x03ifs\x12)\n\x04\x65lse\x18\x02 \x01(\x0b\x32\x15.substrait.ExpressionR\x04\x65lse\x1a\\\n\x08IfClause\x12%\n\x02if\x18\x01 \x01(\x0b\x32\x15.substrait.ExpressionR\x02if\x12)\n\x04then\x18\x02 \x01(\x0b\x32\x15.substrait.ExpressionR\x04then\x1a\xac\x02\n\x04\x43\x61st\x12#\n\x04type\x18\x01 \x01(\x0b\x32\x0f.substrait.TypeR\x04type\x12+\n\x05input\x18\x02 \x01(\x0b\x32\x15.substrait.ExpressionR\x05input\x12U\n\x10\x66\x61ilure_behavior\x18\x03 \x01(\x0e\x32*.substrait.Expression.Cast.FailureBehaviorR\x0f\x66\x61ilureBehavior\"{\n\x0f\x46\x61ilureBehavior\x12 \n\x1c\x46\x41ILURE_BEHAVIOR_UNSPECIFIED\x10\x00\x12 \n\x1c\x46\x41ILURE_BEHAVIOR_RETURN_NULL\x10\x01\x12$\n FAILURE_BEHAVIOR_THROW_EXCEPTION\x10\x02\x1a\x91\x02\n\x10SwitchExpression\x12+\n\x05match\x18\x03 \x01(\x0b\x32\x15.substrait.ExpressionR\x05match\x12@\n\x03ifs\x18\x01 \x03(\x0b\x32..substrait.Expression.SwitchExpression.IfValueR\x03ifs\x12)\n\x04\x65lse\x18\x02 \x01(\x0b\x32\x15.substrait.ExpressionR\x04\x65lse\x1a\x63\n\x07IfValue\x12-\n\x02if\x18\x01 \x01(\x0b\x32\x1d.substrait.Expression.LiteralR\x02if\x12)\n\x04then\x18\x02 \x01(\x0b\x32\x15.substrait.ExpressionR\x04then\x1an\n\x0eSingularOrList\x12+\n\x05value\x18\x01 \x01(\x0b\x32\x15.substrait.ExpressionR\x05value\x12/\n\x07options\x18\x02 \x03(\x0b\x32\x15.substrait.ExpressionR\x07options\x1a\xb7\x01\n\x0bMultiOrList\x12+\n\x05value\x18\x01 \x03(\x0b\x32\x15.substrait.ExpressionR\x05value\x12\x42\n\x07options\x18\x02 \x03(\x0b\x32(.substrait.Expression.MultiOrList.RecordR\x07options\x1a\x37\n\x06Record\x12-\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x15.substrait.ExpressionR\x06\x66ields\x1a\x93\x04\n\x10\x45mbeddedFunction\x12\x33\n\targuments\x18\x01 \x03(\x0b\x32\x15.substrait.ExpressionR\targuments\x12\x30\n\x0boutput_type\x18\x02 \x01(\x0b\x32\x0f.substrait.TypeR\noutputType\x12s\n\x16python_pickle_function\x18\x03 \x01(\x0b\x32;.substrait.Expression.EmbeddedFunction.PythonPickleFunctionH\x00R\x14pythonPickleFunction\x12p\n\x15web_assembly_function\x18\x04 \x01(\x0b\x32:.substrait.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00R\x13webAssemblyFunction\x1aV\n\x14PythonPickleFunction\x12\x1a\n\x08\x66unction\x18\x01 \x01(\x0cR\x08\x66unction\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\xe8\x04\n\x10ReferenceSegment\x12H\n\x07map_key\x18\x01 \x01(\x0b\x32-.substrait.Expression.ReferenceSegment.MapKeyH\x00R\x06mapKey\x12W\n\x0cstruct_field\x18\x02 \x01(\x0b\x32\x32.substrait.Expression.ReferenceSegment.StructFieldH\x00R\x0bstructField\x12W\n\x0clist_element\x18\x03 \x01(\x0b\x32\x32.substrait.Expression.ReferenceSegment.ListElementH\x00R\x0blistElement\x1a~\n\x06MapKey\x12\x36\n\x07map_key\x18\x01 \x01(\x0b\x32\x1d.substrait.Expression.LiteralR\x06mapKey\x12<\n\x05\x63hild\x18\x02 \x01(\x0b\x32&.substrait.Expression.ReferenceSegmentR\x05\x63hild\x1a\x61\n\x0bStructField\x12\x14\n\x05\x66ield\x18\x01 \x01(\x05R\x05\x66ield\x12<\n\x05\x63hild\x18\x02 \x01(\x0b\x32&.substrait.Expression.ReferenceSegmentR\x05\x63hild\x1a\x63\n\x0bListElement\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x12<\n\x05\x63hild\x18\x02 \x01(\x0b\x32&.substrait.Expression.ReferenceSegmentR\x05\x63hildB\x10\n\x0ereference_type\x1a\xa2\x0b\n\x0eMaskExpression\x12I\n\x06select\x18\x01 \x01(\x0b\x32\x31.substrait.Expression.MaskExpression.StructSelectR\x06select\x12\x38\n\x18maintain_singular_struct\x18\x02 \x01(\x08R\x16maintainSingularStruct\x1a\xe8\x01\n\x06Select\x12K\n\x06struct\x18\x01 \x01(\x0b\x32\x31.substrait.Expression.MaskExpression.StructSelectH\x00R\x06struct\x12\x45\n\x04list\x18\x02 \x01(\x0b\x32/.substrait.Expression.MaskExpression.ListSelectH\x00R\x04list\x12\x42\n\x03map\x18\x03 \x01(\x0b\x32..substrait.Expression.MaskExpression.MapSelectH\x00R\x03mapB\x06\n\x04type\x1a\x62\n\x0cStructSelect\x12R\n\x0cstruct_items\x18\x01 \x03(\x0b\x32/.substrait.Expression.MaskExpression.StructItemR\x0bstructItems\x1a\x65\n\nStructItem\x12\x14\n\x05\x66ield\x18\x01 \x01(\x05R\x05\x66ield\x12\x41\n\x05\x63hild\x18\x02 \x01(\x0b\x32+.substrait.Expression.MaskExpression.SelectR\x05\x63hild\x1a\xe6\x03\n\nListSelect\x12\\\n\tselection\x18\x01 \x03(\x0b\x32>.substrait.Expression.MaskExpression.ListSelect.ListSelectItemR\tselection\x12\x41\n\x05\x63hild\x18\x02 \x01(\x0b\x32+.substrait.Expression.MaskExpression.SelectR\x05\x63hild\x1a\xb6\x02\n\x0eListSelectItem\x12`\n\x04item\x18\x01 \x01(\x0b\x32J.substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00R\x04item\x12`\n\x05slice\x18\x02 \x01(\x0b\x32H.substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00R\x05slice\x1a#\n\x0bListElement\x12\x14\n\x05\x66ield\x18\x01 \x01(\x05R\x05\x66ield\x1a\x33\n\tListSlice\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03\x65nd\x18\x02 \x01(\x05R\x03\x65ndB\x06\n\x04type\x1a\xeb\x02\n\tMapSelect\x12I\n\x03key\x18\x01 \x01(\x0b\x32\x35.substrait.Expression.MaskExpression.MapSelect.MapKeyH\x00R\x03key\x12\x61\n\nexpression\x18\x02 \x01(\x0b\x32?.substrait.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00R\nexpression\x12\x41\n\x05\x63hild\x18\x03 \x01(\x0b\x32+.substrait.Expression.MaskExpression.SelectR\x05\x63hild\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\xc5\x05\n\x0e\x46ieldReference\x12S\n\x10\x64irect_reference\x18\x01 \x01(\x0b\x32&.substrait.Expression.ReferenceSegmentH\x00R\x0f\x64irectReference\x12Q\n\x10masked_reference\x18\x02 \x01(\x0b\x32$.substrait.Expression.MaskExpressionH\x00R\x0fmaskedReference\x12\x37\n\nexpression\x18\x03 \x01(\x0b\x32\x15.substrait.ExpressionH\x01R\nexpression\x12[\n\x0eroot_reference\x18\x04 \x01(\x0b\x32\x32.substrait.Expression.FieldReference.RootReferenceH\x01R\rrootReference\x12^\n\x0fouter_reference\x18\x05 \x01(\x0b\x32\x33.substrait.Expression.FieldReference.OuterReferenceH\x01R\x0eouterReference\x12}\n\x1alambda_parameter_reference\x18\x06 \x01(\x0b\x32=.substrait.Expression.FieldReference.LambdaParameterReferenceH\x01R\x18lambdaParameterReference\x1a\x0f\n\rRootReference\x1a-\n\x0eOuterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOut\x1a\x37\n\x18LambdaParameterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOutB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\x95\n\n\x08Subquery\x12?\n\x06scalar\x18\x01 \x01(\x0b\x32%.substrait.Expression.Subquery.ScalarH\x00R\x06scalar\x12O\n\x0cin_predicate\x18\x02 \x01(\x0b\x32*.substrait.Expression.Subquery.InPredicateH\x00R\x0binPredicate\x12R\n\rset_predicate\x18\x03 \x01(\x0b\x32+.substrait.Expression.Subquery.SetPredicateH\x00R\x0csetPredicate\x12U\n\x0eset_comparison\x18\x04 \x01(\x0b\x32,.substrait.Expression.Subquery.SetComparisonH\x00R\rsetComparison\x1a.\n\x06Scalar\x12$\n\x05input\x18\x01 \x01(\x0b\x32\x0e.substrait.RelR\x05input\x1aj\n\x0bInPredicate\x12/\n\x07needles\x18\x01 \x03(\x0b\x32\x15.substrait.ExpressionR\x07needles\x12*\n\x08haystack\x18\x02 \x01(\x0b\x32\x0e.substrait.RelR\x08haystack\x1a\xf1\x01\n\x0cSetPredicate\x12Z\n\x0cpredicate_op\x18\x01 \x01(\x0e\x32\x37.substrait.Expression.Subquery.SetPredicate.PredicateOpR\x0bpredicateOp\x12&\n\x06tuples\x18\x02 \x01(\x0b\x32\x0e.substrait.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\xaa\x04\n\rSetComparison\x12[\n\x0creduction_op\x18\x01 \x01(\x0e\x32\x38.substrait.Expression.Subquery.SetComparison.ReductionOpR\x0breductionOp\x12^\n\rcomparison_op\x18\x02 \x01(\x0e\x32\x39.substrait.Expression.Subquery.SetComparison.ComparisonOpR\x0c\x63omparisonOp\x12)\n\x04left\x18\x03 \x01(\x0b\x32\x15.substrait.ExpressionR\x04left\x12$\n\x05right\x18\x04 \x01(\x0b\x32\x0e.substrait.RelR\x05right\"\xb1\x01\n\x0c\x43omparisonOp\x12\x1d\n\x19\x43OMPARISON_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10\x43OMPARISON_OP_EQ\x10\x01\x12\x14\n\x10\x43OMPARISON_OP_NE\x10\x02\x12\x14\n\x10\x43OMPARISON_OP_LT\x10\x03\x12\x14\n\x10\x43OMPARISON_OP_GT\x10\x04\x12\x14\n\x10\x43OMPARISON_OP_LE\x10\x05\x12\x14\n\x10\x43OMPARISON_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\x02\x42\x0f\n\rsubquery_typeB\n\n\x08rex_type\"h\n\x10\x44ynamicParameter\x12#\n\x04type\x18\x01 \x01(\x0b\x32\x0f.substrait.TypeR\x04type\x12/\n\x13parameter_reference\x18\x02 \x01(\rR\x12parameterReference\"\xad\x03\n\tSortField\x12)\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\x15.substrait.ExpressionR\x04\x65xpr\x12\x42\n\tdirection\x18\x02 \x01(\x0e\x32\".substrait.SortField.SortDirectionH\x00R\tdirection\x12\x44\n\x1d\x63omparison_function_reference\x18\x03 \x01(\rH\x00R\x1b\x63omparisonFunctionReference\"\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\x05\x42\x0b\n\tsort_kind\"\xcd\x04\n\x11\x41ggregateFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x39\n\targuments\x18\x07 \x03(\x0b\x32\x1b.substrait.FunctionArgumentR\targuments\x12\x33\n\x07options\x18\x08 \x03(\x0b\x32\x19.substrait.FunctionOptionR\x07options\x12\x30\n\x0boutput_type\x18\x05 \x01(\x0b\x32\x0f.substrait.TypeR\noutputType\x12\x31\n\x05phase\x18\x04 \x01(\x0e\x32\x1b.substrait.AggregationPhaseR\x05phase\x12*\n\x05sorts\x18\x03 \x03(\x0b\x32\x14.substrait.SortFieldR\x05sorts\x12R\n\ninvocation\x18\x06 \x01(\x0e\x32\x32.substrait.AggregateFunction.AggregationInvocationR\ninvocation\x12-\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x15.substrait.ExpressionB\x02\x18\x01R\x04\x61rgs\"\x84\x01\n\x15\x41ggregationInvocation\x12&\n\"AGGREGATION_INVOCATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x41GGREGATION_INVOCATION_ALL\x10\x01\x12#\n\x1f\x41GGREGATION_INVOCATION_DISTINCT\x10\x02\"7\n\x0cReferenceRel\x12\'\n\x0fsubtree_ordinal\x18\x01 \x01(\x05R\x0esubtreeOrdinal*\xef\x01\n\x10\x41ggregationPhase\x12!\n\x1d\x41GGREGATION_PHASE_UNSPECIFIED\x10\x00\x12-\n)AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE\x10\x01\x12\x32\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\x04\x42\x66\n\x12io.substrait.protoP\x01Z9github.com/substrait-io/substrait-protobuf/go/substraitpb\xaa\x02\x12Substrait.Protobufb\x06proto3')

_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'substrait.algebra_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
  _globals['DESCRIPTOR']._loaded_options = None
  _globals['DESCRIPTOR']._serialized_options = b'\n\022io.substrait.protoP\001Z9github.com/substrait-io/substrait-protobuf/go/substraitpb\252\002\022Substrait.Protobuf'
  _globals['_READREL_VIRTUALTABLE'].fields_by_name['values']._loaded_options = None
  _globals['_READREL_VIRTUALTABLE'].fields_by_name['values']._serialized_options = b'\030\001'
  _globals['_FETCHREL'].fields_by_name['offset']._loaded_options = None
  _globals['_FETCHREL'].fields_by_name['offset']._serialized_options = b'\030\001'
  _globals['_FETCHREL'].fields_by_name['count']._loaded_options = None
  _globals['_FETCHREL'].fields_by_name['count']._serialized_options = b'\030\001'
  _globals['_AGGREGATEREL_GROUPING'].fields_by_name['grouping_expressions']._loaded_options = None
  _globals['_AGGREGATEREL_GROUPING'].fields_by_name['grouping_expressions']._serialized_options = b'\030\001'
  _globals['_HASHJOINREL'].fields_by_name['left_keys']._loaded_options = None
  _globals['_HASHJOINREL'].fields_by_name['left_keys']._serialized_options = b'\030\001'
  _globals['_HASHJOINREL'].fields_by_name['right_keys']._loaded_options = None
  _globals['_HASHJOINREL'].fields_by_name['right_keys']._serialized_options = b'\030\001'
  _globals['_MERGEJOINREL'].fields_by_name['left_keys']._loaded_options = None
  _globals['_MERGEJOINREL'].fields_by_name['left_keys']._serialized_options = b'\030\001'
  _globals['_MERGEJOINREL'].fields_by_name['right_keys']._loaded_options = None
  _globals['_MERGEJOINREL'].fields_by_name['right_keys']._serialized_options = b'\030\001'
  _globals['_EXPRESSION_ENUM_EMPTY']._loaded_options = None
  _globals['_EXPRESSION_ENUM_EMPTY']._serialized_options = b'\030\001'
  _globals['_EXPRESSION_ENUM']._loaded_options = None
  _globals['_EXPRESSION_ENUM']._serialized_options = b'\030\001'
  _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND'].fields_by_name['microseconds']._loaded_options = None
  _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND'].fields_by_name['microseconds']._serialized_options = b'\030\001'
  _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp']._loaded_options = None
  _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp']._serialized_options = b'\030\001'
  _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp_tz']._loaded_options = None
  _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp_tz']._serialized_options = b'\030\001'
  _globals['_EXPRESSION_SCALARFUNCTION'].fields_by_name['args']._loaded_options = None
  _globals['_EXPRESSION_SCALARFUNCTION'].fields_by_name['args']._serialized_options = b'\030\001'
  _globals['_EXPRESSION_WINDOWFUNCTION'].fields_by_name['args']._loaded_options = None
  _globals['_EXPRESSION_WINDOWFUNCTION'].fields_by_name['args']._serialized_options = b'\030\001'
  _globals['_EXPRESSION'].fields_by_name['enum']._loaded_options = None
  _globals['_EXPRESSION'].fields_by_name['enum']._serialized_options = b'\030\001'
  _globals['_AGGREGATEFUNCTION'].fields_by_name['args']._loaded_options = None
  _globals['_AGGREGATEFUNCTION'].fields_by_name['args']._serialized_options = b'\030\001'
  _globals['_AGGREGATIONPHASE']._serialized_start=31433
  _globals['_AGGREGATIONPHASE']._serialized_end=31672
  _globals['_RELCOMMON']._serialized_start=127
  _globals['_RELCOMMON']._serialized_end=1781
  _globals['_RELCOMMON_DIRECT']._serialized_start=379
  _globals['_RELCOMMON_DIRECT']._serialized_end=387
  _globals['_RELCOMMON_EMIT']._serialized_start=389
  _globals['_RELCOMMON_EMIT']._serialized_end=434
  _globals['_RELCOMMON_HINT']._serialized_start=437
  _globals['_RELCOMMON_HINT']._serialized_end=1768
  _globals['_RELCOMMON_HINT_STATS']._serialized_start=908
  _globals['_RELCOMMON_HINT_STATS']._serialized_end=1065
  _globals['_RELCOMMON_HINT_RUNTIMECONSTRAINT']._serialized_start=1067
  _globals['_RELCOMMON_HINT_RUNTIMECONSTRAINT']._serialized_end=1174
  _globals['_RELCOMMON_HINT_SAVEDCOMPUTATION']._serialized_start=1177
  _globals['_RELCOMMON_HINT_SAVEDCOMPUTATION']._serialized_end=1385
  _globals['_RELCOMMON_HINT_LOADEDCOMPUTATION']._serialized_start=1388
  _globals['_RELCOMMON_HINT_LOADEDCOMPUTATION']._serialized_end=1616
  _globals['_RELCOMMON_HINT_COMPUTATIONTYPE']._serialized_start=1619
  _globals['_RELCOMMON_HINT_COMPUTATIONTYPE']._serialized_end=1768
  _globals['_READREL']._serialized_start=1784
  _globals['_READREL']._serialized_end=4437
  _globals['_READREL_NAMEDTABLE']._serialized_start=2526
  _globals['_READREL_NAMEDTABLE']._serialized_end=2648
  _globals['_READREL_ICEBERGTABLE']._serialized_start=2651
  _globals['_READREL_ICEBERGTABLE']._serialized_end=2907
  _globals['_READREL_ICEBERGTABLE_METADATAFILEREAD']._serialized_start=2744
  _globals['_READREL_ICEBERGTABLE_METADATAFILEREAD']._serialized_end=2893
  _globals['_READREL_VIRTUALTABLE']._serialized_start=2910
  _globals['_READREL_VIRTUALTABLE']._serialized_end=3061
  _globals['_READREL_EXTENSIONTABLE']._serialized_start=3063
  _globals['_READREL_EXTENSIONTABLE']._serialized_end=3125
  _globals['_READREL_LOCALFILES']._serialized_start=3128
  _globals['_READREL_LOCALFILES']._serialized_end=4424
  _globals['_READREL_LOCALFILES_FILEORFILES']._serialized_start=3296
  _globals['_READREL_LOCALFILES_FILEORFILES']._serialized_end=4424
  _globals['_READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS']._serialized_start=4013
  _globals['_READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS']._serialized_end=4033
  _globals['_READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS']._serialized_start=4035
  _globals['_READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS']._serialized_end=4053
  _globals['_READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS']._serialized_start=4055
  _globals['_READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS']._serialized_end=4071
  _globals['_READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS']._serialized_start=4073
  _globals['_READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS']._serialized_end=4090
  _globals['_READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS']._serialized_start=4093
  _globals['_READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS']._serialized_end=4382
  _globals['_PROJECTREL']._serialized_start=4440
  _globals['_PROJECTREL']._serialized_end=4681
  _globals['_JOINREL']._serialized_start=4684
  _globals['_JOINREL']._serialized_end=5401
  _globals['_JOINREL_JOINTYPE']._serialized_start=5073
  _globals['_JOINREL_JOINTYPE']._serialized_end=5401
  _globals['_CROSSREL']._serialized_start=5404
  _globals['_CROSSREL']._serialized_end=5622
  _globals['_FETCHREL']._serialized_start=5625
  _globals['_FETCHREL']._serialized_end=6008
  _globals['_AGGREGATEREL']._serialized_start=6011
  _globals['_AGGREGATEREL']._serialized_end=6654
  _globals['_AGGREGATEREL_GROUPING']._serialized_start=6399
  _globals['_AGGREGATEREL_GROUPING']._serialized_end=6540
  _globals['_AGGREGATEREL_MEASURE']._serialized_start=6542
  _globals['_AGGREGATEREL_MEASURE']._serialized_end=6654
  _globals['_CONSISTENTPARTITIONWINDOWREL']._serialized_start=6657
  _globals['_CONSISTENTPARTITIONWINDOWREL']._serialized_end=7683
  _globals['_CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION']._serialized_start=7084
  _globals['_CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION']._serialized_end=7683
  _globals['_SORTREL']._serialized_start=7686
  _globals['_SORTREL']._serialized_end=7911
  _globals['_FILTERREL']._serialized_start=7914
  _globals['_FILTERREL']._serialized_end=8150
  _globals['_SETREL']._serialized_start=8153
  _globals['_SETREL']._serialized_end=8647
  _globals['_SETREL_SETOP']._serialized_start=8379
  _globals['_SETREL_SETOP']._serialized_end=8647
  _globals['_EXTENSIONSINGLEREL']._serialized_start=8650
  _globals['_EXTENSIONSINGLEREL']._serialized_end=8800
  _globals['_EXTENSIONLEAFREL']._serialized_start=8802
  _globals['_EXTENSIONLEAFREL']._serialized_end=8912
  _globals['_EXTENSIONMULTIREL']._serialized_start=8915
  _globals['_EXTENSIONMULTIREL']._serialized_end=9066
  _globals['_EXCHANGEREL']._serialized_start=9069
  _globals['_EXCHANGEREL']._serialized_end=10247
  _globals['_EXCHANGEREL_SCATTERFIELDS']._serialized_start=9751
  _globals['_EXCHANGEREL_SCATTERFIELDS']._serialized_end=9828
  _globals['_EXCHANGEREL_SINGLEBUCKETEXPRESSION']._serialized_start=9830
  _globals['_EXCHANGEREL_SINGLEBUCKETEXPRESSION']._serialized_end=9909
  _globals['_EXCHANGEREL_MULTIBUCKETEXPRESSION']._serialized_start=9912
  _globals['_EXCHANGEREL_MULTIBUCKETEXPRESSION']._serialized_end=10040
  _globals['_EXCHANGEREL_BROADCAST']._serialized_start=10042
  _globals['_EXCHANGEREL_BROADCAST']._serialized_end=10053
  _globals['_EXCHANGEREL_ROUNDROBIN']._serialized_start=10055
  _globals['_EXCHANGEREL_ROUNDROBIN']._serialized_end=10089
  _globals['_EXCHANGEREL_EXCHANGETARGET']._serialized_start=10092
  _globals['_EXCHANGEREL_EXCHANGETARGET']._serialized_end=10230
  _globals['_EXPANDREL']._serialized_start=10250
  _globals['_EXPANDREL']._serialized_end=10654
  _globals['_EXPANDREL_EXPANDFIELD']._serialized_start=10406
  _globals['_EXPANDREL_EXPANDFIELD']._serialized_end=10581
  _globals['_EXPANDREL_SWITCHINGFIELD']._serialized_start=10583
  _globals['_EXPANDREL_SWITCHINGFIELD']._serialized_end=10654
  _globals['_RELROOT']._serialized_start=10656
  _globals['_RELROOT']._serialized_end=10725
  _globals['_REL']._serialized_start=10728
  _globals['_REL']._serialized_end=11920
  _globals['_NAMEDOBJECTWRITE']._serialized_start=11923
  _globals['_NAMEDOBJECTWRITE']._serialized_end=12051
  _globals['_EXTENSIONOBJECT']._serialized_start=12053
  _globals['_EXTENSIONOBJECT']._serialized_end=12116
  _globals['_DDLREL']._serialized_start=12119
  _globals['_DDLREL']._serialized_end=12929
  _globals['_DDLREL_DDLOBJECT']._serialized_start=12689
  _globals['_DDLREL_DDLOBJECT']._serialized_end=12771
  _globals['_DDLREL_DDLOP']._serialized_start=12774
  _globals['_DDLREL_DDLOP']._serialized_end=12915
  _globals['_WRITEREL']._serialized_start=12932
  _globals['_WRITEREL']._serialized_end=13891
  _globals['_WRITEREL_WRITEOP']._serialized_start=13476
  _globals['_WRITEREL_WRITEOP']._serialized_end=13593
  _globals['_WRITEREL_CREATEMODE']._serialized_start=13596
  _globals['_WRITEREL_CREATEMODE']._serialized_end=13773
  _globals['_WRITEREL_OUTPUTMODE']._serialized_start=13775
  _globals['_WRITEREL_OUTPUTMODE']._serialized_end=13877
  _globals['_UPDATEREL']._serialized_start=13894
  _globals['_UPDATEREL']._serialized_end=14385
  _globals['_UPDATEREL_TRANSFORMEXPRESSION']._serialized_start=14249
  _globals['_UPDATEREL_TRANSFORMEXPRESSION']._serialized_end=14370
  _globals['_NAMEDTABLE']._serialized_start=2526
  _globals['_NAMEDTABLE']._serialized_end=2648
  _globals['_COMPARISONJOINKEY']._serialized_start=14512
  _globals['_COMPARISONJOINKEY']._serialized_end=15083
  _globals['_COMPARISONJOINKEY_COMPARISONTYPE']._serialized_start=14729
  _globals['_COMPARISONJOINKEY_COMPARISONTYPE']._serialized_end=14898
  _globals['_COMPARISONJOINKEY_SIMPLECOMPARISONTYPE']._serialized_start=14901
  _globals['_COMPARISONJOINKEY_SIMPLECOMPARISONTYPE']._serialized_end=15083
  _globals['_HASHJOINREL']._serialized_start=15086
  _globals['_HASHJOINREL']._serialized_end=16106
  _globals['_HASHJOINREL_JOINTYPE']._serialized_start=15690
  _globals['_HASHJOINREL_JOINTYPE']._serialized_end=16018
  _globals['_HASHJOINREL_BUILDINPUT']._serialized_start=16020
  _globals['_HASHJOINREL_BUILDINPUT']._serialized_end=16106
  _globals['_MERGEJOINREL']._serialized_start=16109
  _globals['_MERGEJOINREL']._serialized_end=16975
  _globals['_MERGEJOINREL_JOINTYPE']._serialized_start=15690
  _globals['_MERGEJOINREL_JOINTYPE']._serialized_end=16018
  _globals['_NESTEDLOOPJOINREL']._serialized_start=16978
  _globals['_NESTEDLOOPJOINREL']._serialized_end=17650
  _globals['_NESTEDLOOPJOINREL_JOINTYPE']._serialized_start=15690
  _globals['_NESTEDLOOPJOINREL_JOINTYPE']._serialized_end=16018
  _globals['_FUNCTIONARGUMENT']._serialized_start=17653
  _globals['_FUNCTIONARGUMENT']._serialized_end=17791
  _globals['_FUNCTIONOPTION']._serialized_start=17793
  _globals['_FUNCTIONOPTION']._serialized_end=17861
  _globals['_EXPRESSION']._serialized_start=17864
  _globals['_EXPRESSION']._serialized_end=30243
  _globals['_EXPRESSION_ENUM']._serialized_start=18910
  _globals['_EXPRESSION_ENUM']._serialized_end=19048
  _globals['_EXPRESSION_ENUM_EMPTY']._serialized_start=19020
  _globals['_EXPRESSION_ENUM_EMPTY']._serialized_end=19031
  _globals['_EXPRESSION_LITERAL']._serialized_start=19051
  _globals['_EXPRESSION_LITERAL']._serialized_end=22131
  _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_start=20701
  _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_end=20756
  _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_start=20758
  _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_end=20841
  _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_start=20843
  _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_end=20910
  _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_start=20912
  _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_end=20984
  _globals['_EXPRESSION_LITERAL_MAP']._serialized_start=20987
  _globals['_EXPRESSION_LITERAL_MAP']._serialized_end=21181
  _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_start=21069
  _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_end=21181
  _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_start=21183
  _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_end=21250
  _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_start=21253
  _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_end=21444
  _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_start=21447
  _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_end=21673
  _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_start=21675
  _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_end=21738
  _globals['_EXPRESSION_LITERAL_LIST']._serialized_start=21740
  _globals['_EXPRESSION_LITERAL_LIST']._serialized_end=21801
  _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_start=21804
  _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_end=22115
  _globals['_EXPRESSION_NESTED']._serialized_start=22134
  _globals['_EXPRESSION_NESTED']._serialized_end=22709
  _globals['_EXPRESSION_NESTED_MAP']._serialized_start=22405
  _globals['_EXPRESSION_NESTED_MAP']._serialized_end=22582
  _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_start=22486
  _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_end=22582
  _globals['_EXPRESSION_NESTED_STRUCT']._serialized_start=22584
  _globals['_EXPRESSION_NESTED_STRUCT']._serialized_end=22639
  _globals['_EXPRESSION_NESTED_LIST']._serialized_start=22641
  _globals['_EXPRESSION_NESTED_LIST']._serialized_end=22694
  _globals['_EXPRESSION_LAMBDA']._serialized_start=22711
  _globals['_EXPRESSION_LAMBDA']._serialized_end=22818
  _globals['_EXPRESSION_LAMBDAINVOCATION']._serialized_start=22821
  _globals['_EXPRESSION_LAMBDAINVOCATION']._serialized_end=22960
  _globals['_EXPRESSION_SCALARFUNCTION']._serialized_start=22963
  _globals['_EXPRESSION_SCALARFUNCTION']._serialized_end=23235
  _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_start=23238
  _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_end=24535
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_start=23983
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_end=24447
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_start=24340
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_end=24375
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_start=24377
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_end=24412
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_start=24414
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_end=24426
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_start=24428
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_end=24439
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_start=24449
  _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_end=24535
  _globals['_EXPRESSION_IFTHEN']._serialized_start=24538
  _globals['_EXPRESSION_IFTHEN']._serialized_end=24740
  _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_start=24648
  _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_end=24740
  _globals['_EXPRESSION_CAST']._serialized_start=24743
  _globals['_EXPRESSION_CAST']._serialized_end=25043
  _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_start=24920
  _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_end=25043
  _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_start=25046
  _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_end=25319
  _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_start=25220
  _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_end=25319
  _globals['_EXPRESSION_SINGULARORLIST']._serialized_start=25321
  _globals['_EXPRESSION_SINGULARORLIST']._serialized_end=25431
  _globals['_EXPRESSION_MULTIORLIST']._serialized_start=25434
  _globals['_EXPRESSION_MULTIORLIST']._serialized_end=25617
  _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_start=25562
  _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_end=25617
  _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_start=25620
  _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_end=26151
  _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_start=25974
  _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_end=26060
  _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_start=26062
  _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_end=26143
  _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_start=26154
  _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_end=26770
  _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_start=26426
  _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_end=26552
  _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_start=26554
  _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_end=26651
  _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_start=26653
  _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_end=26752
  _globals['_EXPRESSION_MASKEXPRESSION']._serialized_start=26773
  _globals['_EXPRESSION_MASKEXPRESSION']._serialized_end=28215
  _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_start=26925
  _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_end=27157
  _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_start=27159
  _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_end=27257
  _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_start=27259
  _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_end=27360
  _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_start=27363
  _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_end=27849
  _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_start=27539
  _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_end=27849
  _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_start=27753
  _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_end=27788
  _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_start=27790
  _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_end=27841
  _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_start=27852
  _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_end=28215
  _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_start=28106
  _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_end=28139
  _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_start=28141
  _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_end=28205
  _globals['_EXPRESSION_FIELDREFERENCE']._serialized_start=28218
  _globals['_EXPRESSION_FIELDREFERENCE']._serialized_end=28927
  _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_start=28777
  _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_end=28792
  _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_start=28794
  _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_end=28839
  _globals['_EXPRESSION_FIELDREFERENCE_LAMBDAPARAMETERREFERENCE']._serialized_start=28841
  _globals['_EXPRESSION_FIELDREFERENCE_LAMBDAPARAMETERREFERENCE']._serialized_end=28896
  _globals['_EXPRESSION_SUBQUERY']._serialized_start=28930
  _globals['_EXPRESSION_SUBQUERY']._serialized_end=30231
  _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_start=29259
  _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_end=29305
  _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_start=29307
  _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_end=29413
  _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_start=29416
  _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_end=29657
  _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_start=29564
  _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_end=29657
  _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_start=29660
  _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_end=30214
  _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_start=29948
  _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_end=30125
  _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_start=30127
  _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_end=30214
  _globals['_DYNAMICPARAMETER']._serialized_start=30245
  _globals['_DYNAMICPARAMETER']._serialized_end=30349
  _globals['_SORTFIELD']._serialized_start=30352
  _globals['_SORTFIELD']._serialized_end=30781
  _globals['_SORTFIELD_SORTDIRECTION']._serialized_start=30547
  _globals['_SORTFIELD_SORTDIRECTION']._serialized_end=30768
  _globals['_AGGREGATEFUNCTION']._serialized_start=30784
  _globals['_AGGREGATEFUNCTION']._serialized_end=31373
  _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_start=31241
  _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_end=31373
  _globals['_REFERENCEREL']._serialized_start=31375
  _globals['_REFERENCEREL']._serialized_end=31430
# @@protoc_insertion_point(module_scope)
