# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: vast_protobuf/substrait/algebra.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
from vast_protobuf.substrait.extensions import extensions_pb2 as vast__protobuf_dot_substrait_dot_extensions_dot_extensions__pb2
from vast_protobuf.substrait import type_pb2 as vast__protobuf_dot_substrait_dot_type__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%vast_protobuf/substrait/algebra.proto\x12\tsubstrait\x1a\x19google/protobuf/any.proto\x1a\x33vast_protobuf/substrait/extensions/extensions.proto\x1a\"vast_protobuf/substrait/type.proto\"\x99\x05\n\tRelCommon\x12-\n\x06\x64irect\x18\x01 \x01(\x0b\x32\x1b.substrait.RelCommon.DirectH\x00\x12)\n\x04\x65mit\x18\x02 \x01(\x0b\x32\x19.substrait.RelCommon.EmitH\x00\x12\'\n\x04hint\x18\x03 \x01(\x0b\x32\x19.substrait.RelCommon.Hint\x12\x43\n\x12\x61\x64vanced_extension\x18\x04 \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\x1a\x08\n\x06\x44irect\x1a\x1e\n\x04\x45mit\x12\x16\n\x0eoutput_mapping\x18\x01 \x03(\x05\x1a\x8c\x03\n\x04Hint\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.substrait.RelCommon.Hint.Stats\x12?\n\nconstraint\x18\x02 \x01(\x0b\x32+.substrait.RelCommon.Hint.RuntimeConstraint\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\x1at\n\x05Stats\x12\x11\n\trow_count\x18\x01 \x01(\x01\x12\x13\n\x0brecord_size\x18\x02 \x01(\x01\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\x1aX\n\x11RuntimeConstraint\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtensionB\x0b\n\temit_kind\"\xe8\x0c\n\x07ReadRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12+\n\x0b\x62\x61se_schema\x18\x02 \x01(\x0b\x32\x16.substrait.NamedStruct\x12%\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x15.substrait.Expression\x12\x31\n\x12\x62\x65st_effort_filter\x18\x0b \x01(\x0b\x32\x15.substrait.Expression\x12\x38\n\nprojection\x18\x04 \x01(\x0b\x32$.substrait.Expression.MaskExpression\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\x12\x38\n\rvirtual_table\x18\x05 \x01(\x0b\x32\x1f.substrait.ReadRel.VirtualTableH\x00\x12\x34\n\x0blocal_files\x18\x06 \x01(\x0b\x32\x1d.substrait.ReadRel.LocalFilesH\x00\x12\x34\n\x0bnamed_table\x18\x07 \x01(\x0b\x32\x1d.substrait.ReadRel.NamedTableH\x00\x12<\n\x0f\x65xtension_table\x18\x08 \x01(\x0b\x32!.substrait.ReadRel.ExtensionTableH\x00\x1a`\n\nNamedTable\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\x1a\x44\n\x0cVirtualTable\x12\x34\n\x06values\x18\x01 \x03(\x0b\x32$.substrait.Expression.Literal.Struct\x1a\x36\n\x0e\x45xtensionTable\x12$\n\x06\x64\x65tail\x18\x01 \x01(\x0b\x32\x14.google.protobuf.Any\x1a\xdf\x06\n\nLocalFiles\x12\x38\n\x05items\x18\x01 \x03(\x0b\x32).substrait.ReadRel.LocalFiles.FileOrFiles\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\x1a\xd1\x05\n\x0b\x46ileOrFiles\x12\x12\n\x08uri_path\x18\x01 \x01(\tH\x00\x12\x17\n\ruri_path_glob\x18\x02 \x01(\tH\x00\x12\x12\n\x08uri_file\x18\x03 \x01(\tH\x00\x12\x14\n\nuri_folder\x18\x04 \x01(\tH\x00\x12\x17\n\x0fpartition_index\x18\x06 \x01(\x04\x12\r\n\x05start\x18\x07 \x01(\x04\x12\x0e\n\x06length\x18\x08 \x01(\x04\x12O\n\x07parquet\x18\t \x01(\x0b\x32<.substrait.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptionsH\x01\x12K\n\x05\x61rrow\x18\n \x01(\x0b\x32:.substrait.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptionsH\x01\x12G\n\x03orc\x18\x0b \x01(\x0b\x32\x38.substrait.ReadRel.LocalFiles.FileOrFiles.OrcReadOptionsH\x01\x12)\n\textension\x18\x0c \x01(\x0b\x32\x14.google.protobuf.AnyH\x01\x12I\n\x04\x64wrf\x18\r \x01(\x0b\x32\x39.substrait.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptionsH\x01\x12J\n\x04vast\x18\xe8\x07 \x01(\x0b\x32\x39.substrait.ReadRel.LocalFiles.FileOrFiles.VastReadOptionsH\x01\x1a\x14\n\x12ParquetReadOptions\x1a\x12\n\x10\x41rrowReadOptions\x1a\x10\n\x0eOrcReadOptions\x1a\x11\n\x0f\x44wrfReadOptions\x1a\x11\n\x0fVastReadOptionsB\x0b\n\tpath_typeB\r\n\x0b\x66ile_formatJ\x04\x08\x05\x10\x06R\x06\x66ormatB\x0b\n\tread_type\"\xc2\x01\n\nProjectRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1d\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12*\n\x0b\x65xpressions\x18\x03 \x03(\x0b\x32\x15.substrait.Expression\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\"\x90\x04\n\x07JoinRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1c\n\x04left\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12\x1d\n\x05right\x18\x03 \x01(\x0b\x32\x0e.substrait.Rel\x12)\n\nexpression\x18\x04 \x01(\x0b\x32\x15.substrait.Expression\x12/\n\x10post_join_filter\x18\x05 \x01(\x0b\x32\x15.substrait.Expression\x12)\n\x04type\x18\x06 \x01(\x0e\x32\x1b.substrait.JoinRel.JoinType\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\"\xd5\x01\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\x12\n\x0eJOIN_TYPE_ANTI\x10\x07\x12\x14\n\x10JOIN_TYPE_SINGLE\x10\x08\"\xb2\x01\n\x08\x43rossRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1c\n\x04left\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12\x1d\n\x05right\x18\x03 \x01(\x0b\x32\x0e.substrait.Rel\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\"\xb3\x01\n\x08\x46\x65tchRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1d\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\r\n\x05\x63ount\x18\x04 \x01(\x03\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\"\xa2\x03\n\x0c\x41ggregateRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1d\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12\x33\n\tgroupings\x18\x03 \x03(\x0b\x32 .substrait.AggregateRel.Grouping\x12\x31\n\x08measures\x18\x04 \x03(\x0b\x32\x1f.substrait.AggregateRel.Measure\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\x1a?\n\x08Grouping\x12\x33\n\x14grouping_expressions\x18\x01 \x03(\x0b\x32\x15.substrait.Expression\x1a_\n\x07Measure\x12-\n\x07measure\x18\x01 \x01(\x0b\x32\x1c.substrait.AggregateFunction\x12%\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x15.substrait.Expression\"\xb8\x01\n\x07SortRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1d\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12#\n\x05sorts\x18\x03 \x03(\x0b\x32\x14.substrait.SortField\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\"\xe2\x02\n\tWindowRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1d\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12.\n\x08measures\x18\x03 \x03(\x0b\x32\x1c.substrait.WindowRel.Measure\x12\x34\n\x15partition_expressions\x18\x04 \x03(\x0b\x32\x15.substrait.Expression\x12#\n\x05sorts\x18\x05 \x03(\x0b\x32\x14.substrait.SortField\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\x1a@\n\x07Measure\x12\x35\n\x07measure\x18\x01 \x01(\x0b\x32$.substrait.Expression.WindowFunction\"\xbf\x01\n\tFilterRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1d\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12(\n\tcondition\x18\x03 \x01(\x0b\x32\x15.substrait.Expression\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\"\x83\x03\n\x06SetRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1e\n\x06inputs\x18\x02 \x03(\x0b\x32\x0e.substrait.Rel\x12#\n\x02op\x18\x03 \x01(\x0e\x32\x17.substrait.SetRel.SetOp\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\"\xc8\x01\n\x05SetOp\x12\x16\n\x12SET_OP_UNSPECIFIED\x10\x00\x12\x18\n\x14SET_OP_MINUS_PRIMARY\x10\x01\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\x19\n\x15SET_OP_UNION_DISTINCT\x10\x05\x12\x14\n\x10SET_OP_UNION_ALL\x10\x06\"\x7f\n\x12\x45xtensionSingleRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1d\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12$\n\x06\x64\x65tail\x18\x03 \x01(\x0b\x32\x14.google.protobuf.Any\"^\n\x10\x45xtensionLeafRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12$\n\x06\x64\x65tail\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\"\x7f\n\x11\x45xtensionMultiRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1e\n\x06inputs\x18\x02 \x03(\x0b\x32\x0e.substrait.Rel\x12$\n\x06\x64\x65tail\x18\x03 \x01(\x0b\x32\x14.google.protobuf.Any\"\xc3\x07\n\x0b\x45xchangeRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1d\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12\x17\n\x0fpartition_count\x18\x03 \x01(\x05\x12\x36\n\x07targets\x18\x04 \x03(\x0b\x32%.substrait.ExchangeRel.ExchangeTarget\x12\x41\n\x11scatter_by_fields\x18\x05 \x01(\x0b\x32$.substrait.ExchangeRel.ScatterFieldsH\x00\x12\x46\n\rsingle_target\x18\x06 \x01(\x0b\x32-.substrait.ExchangeRel.SingleBucketExpressionH\x00\x12\x44\n\x0cmulti_target\x18\x07 \x01(\x0b\x32,.substrait.ExchangeRel.MultiBucketExpressionH\x00\x12\x38\n\x0bround_robin\x18\x08 \x01(\x0b\x32!.substrait.ExchangeRel.RoundRobinH\x00\x12\x35\n\tbroadcast\x18\t \x01(\x0b\x32 .substrait.ExchangeRel.BroadcastH\x00\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\x1a\x45\n\rScatterFields\x12\x34\n\x06\x66ields\x18\x01 \x03(\x0b\x32$.substrait.Expression.FieldReference\x1a\x43\n\x16SingleBucketExpression\x12)\n\nexpression\x18\x01 \x01(\x0b\x32\x15.substrait.Expression\x1a`\n\x15MultiBucketExpression\x12)\n\nexpression\x18\x01 \x01(\x0b\x32\x15.substrait.Expression\x12\x1c\n\x14\x63onstrained_to_count\x18\x02 \x01(\x08\x1a\x0b\n\tBroadcast\x1a\x1b\n\nRoundRobin\x12\r\n\x05\x65xact\x18\x01 \x01(\x08\x1an\n\x0e\x45xchangeTarget\x12\x14\n\x0cpartition_id\x18\x01 \x03(\x05\x12\r\n\x03uri\x18\x02 \x01(\tH\x00\x12(\n\x08\x65xtended\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\r\n\x0btarget_typeB\x0f\n\rexchange_kind\"\x95\x03\n\tExpandRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1d\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12\x30\n\x06\x66ields\x18\x04 \x03(\x0b\x32 .substrait.ExpandRel.ExpandField\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\x1a\x8e\x01\n\x0b\x45xpandField\x12>\n\x0fswitching_field\x18\x02 \x01(\x0b\x32#.substrait.ExpandRel.SwitchingFieldH\x00\x12\x31\n\x10\x63onsistent_field\x18\x03 \x01(\x0b\x32\x15.substrait.ExpressionH\x00\x42\x0c\n\nfield_type\x1a;\n\x0eSwitchingField\x12)\n\nduplicates\x18\x01 \x03(\x0b\x32\x15.substrait.Expression\"7\n\x07RelRoot\x12\x1d\n\x05input\x18\x01 \x01(\x0b\x32\x0e.substrait.Rel\x12\r\n\x05names\x18\x02 \x03(\t\"\xee\x05\n\x03Rel\x12\"\n\x04read\x18\x01 \x01(\x0b\x32\x12.substrait.ReadRelH\x00\x12&\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x14.substrait.FilterRelH\x00\x12$\n\x05\x66\x65tch\x18\x03 \x01(\x0b\x32\x13.substrait.FetchRelH\x00\x12,\n\taggregate\x18\x04 \x01(\x0b\x32\x17.substrait.AggregateRelH\x00\x12\"\n\x04sort\x18\x05 \x01(\x0b\x32\x12.substrait.SortRelH\x00\x12\"\n\x04join\x18\x06 \x01(\x0b\x32\x12.substrait.JoinRelH\x00\x12(\n\x07project\x18\x07 \x01(\x0b\x32\x15.substrait.ProjectRelH\x00\x12 \n\x03set\x18\x08 \x01(\x0b\x32\x11.substrait.SetRelH\x00\x12\x39\n\x10\x65xtension_single\x18\t \x01(\x0b\x32\x1d.substrait.ExtensionSingleRelH\x00\x12\x37\n\x0f\x65xtension_multi\x18\n \x01(\x0b\x32\x1c.substrait.ExtensionMultiRelH\x00\x12\x35\n\x0e\x65xtension_leaf\x18\x0b \x01(\x0b\x32\x1b.substrait.ExtensionLeafRelH\x00\x12$\n\x05\x63ross\x18\x0c \x01(\x0b\x32\x13.substrait.CrossRelH\x00\x12+\n\thash_join\x18\r \x01(\x0b\x32\x16.substrait.HashJoinRelH\x00\x12-\n\nmerge_join\x18\x0e \x01(\x0b\x32\x17.substrait.MergeJoinRelH\x00\x12&\n\x06\x65xpand\x18\x0f \x01(\x0b\x32\x14.substrait.ExpandRelH\x00\x12&\n\x06window\x18\x10 \x01(\x0b\x32\x14.substrait.WindowRelH\x00\x12*\n\x08generate\x18\x11 \x01(\x0b\x32\x16.substrait.GenerateRelH\x00\x42\n\n\x08rel_type\"f\n\x10NamedObjectWrite\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\"7\n\x0f\x45xtensionObject\x12$\n\x06\x64\x65tail\x18\x01 \x01(\x0b\x32\x14.google.protobuf.Any\"\xce\x04\n\x06\x44\x64lRel\x12\x33\n\x0cnamed_object\x18\x01 \x01(\x0b\x32\x1b.substrait.NamedObjectWriteH\x00\x12\x36\n\x10\x65xtension_object\x18\x02 \x01(\x0b\x32\x1a.substrait.ExtensionObjectH\x00\x12,\n\x0ctable_schema\x18\x03 \x01(\x0b\x32\x16.substrait.NamedStruct\x12<\n\x0etable_defaults\x18\x04 \x01(\x0b\x32$.substrait.Expression.Literal.Struct\x12+\n\x06object\x18\x05 \x01(\x0e\x32\x1b.substrait.DdlRel.DdlObject\x12#\n\x02op\x18\x06 \x01(\x0e\x32\x17.substrait.DdlRel.DdlOp\x12\'\n\x0fview_definition\x18\x07 \x01(\x0b\x32\x0e.substrait.Rel\"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\"\x87\x04\n\x08WriteRel\x12\x32\n\x0bnamed_table\x18\x01 \x01(\x0b\x32\x1b.substrait.NamedObjectWriteH\x00\x12\x35\n\x0f\x65xtension_table\x18\x02 \x01(\x0b\x32\x1a.substrait.ExtensionObjectH\x00\x12,\n\x0ctable_schema\x18\x03 \x01(\x0b\x32\x16.substrait.NamedStruct\x12\'\n\x02op\x18\x04 \x01(\x0e\x32\x1b.substrait.WriteRel.WriteOp\x12\x1d\n\x05input\x18\x05 \x01(\x0b\x32\x0e.substrait.Rel\x12.\n\x06output\x18\x06 \x01(\x0e\x32\x1e.substrait.WriteRel.OutputMode\"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\"e\n\nOutputMode\x12\x1b\n\x17OUTPUT_MODE_UNSPECIFIED\x10\x00\x12\x19\n\x15OUTPUT_MODE_NO_OUTPUT\x10\x01\x12\x1f\n\x1bOUTPUT_MODE_MODIFIED_TUPLES\x10\x02\x42\x0c\n\nwrite_type\"\xe9\x04\n\x0bHashJoinRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1c\n\x04left\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12\x1d\n\x05right\x18\x03 \x01(\x0b\x32\x0e.substrait.Rel\x12\x37\n\tleft_keys\x18\x04 \x03(\x0b\x32$.substrait.Expression.FieldReference\x12\x38\n\nright_keys\x18\x05 \x03(\x0b\x32$.substrait.Expression.FieldReference\x12/\n\x10post_join_filter\x18\x06 \x01(\x0b\x32\x15.substrait.Expression\x12-\n\x04type\x18\x07 \x01(\x0e\x32\x1f.substrait.HashJoinRel.JoinType\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\"\xde\x01\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\"\xeb\x04\n\x0cMergeJoinRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1c\n\x04left\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12\x1d\n\x05right\x18\x03 \x01(\x0b\x32\x0e.substrait.Rel\x12\x37\n\tleft_keys\x18\x04 \x03(\x0b\x32$.substrait.Expression.FieldReference\x12\x38\n\nright_keys\x18\x05 \x03(\x0b\x32$.substrait.Expression.FieldReference\x12/\n\x10post_join_filter\x18\x06 \x01(\x0b\x32\x15.substrait.Expression\x12.\n\x04type\x18\x07 \x01(\x0e\x32 .substrait.MergeJoinRel.JoinType\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\"\xde\x01\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\"w\n\x10\x46unctionArgument\x12\x0e\n\x04\x65num\x18\x01 \x01(\tH\x00\x12\x1f\n\x04type\x18\x02 \x01(\x0b\x32\x0f.substrait.TypeH\x00\x12&\n\x05value\x18\x03 \x01(\x0b\x32\x15.substrait.ExpressionH\x00\x42\n\n\x08\x61rg_type\"2\n\x0e\x46unctionOption\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\npreference\x18\x02 \x03(\t\"\xa5G\n\nExpression\x12\x30\n\x07literal\x18\x01 \x01(\x0b\x32\x1d.substrait.Expression.LiteralH\x00\x12\x39\n\tselection\x18\x02 \x01(\x0b\x32$.substrait.Expression.FieldReferenceH\x00\x12?\n\x0fscalar_function\x18\x03 \x01(\x0b\x32$.substrait.Expression.ScalarFunctionH\x00\x12?\n\x0fwindow_function\x18\x05 \x01(\x0b\x32$.substrait.Expression.WindowFunctionH\x00\x12/\n\x07if_then\x18\x06 \x01(\x0b\x32\x1c.substrait.Expression.IfThenH\x00\x12\x43\n\x11switch_expression\x18\x07 \x01(\x0b\x32&.substrait.Expression.SwitchExpressionH\x00\x12@\n\x10singular_or_list\x18\x08 \x01(\x0b\x32$.substrait.Expression.SingularOrListH\x00\x12:\n\rmulti_or_list\x18\t \x01(\x0b\x32!.substrait.Expression.MultiOrListH\x00\x12*\n\x04\x63\x61st\x18\x0b \x01(\x0b\x32\x1a.substrait.Expression.CastH\x00\x12\x32\n\x08subquery\x18\x0c \x01(\x0b\x32\x1e.substrait.Expression.SubqueryH\x00\x12.\n\x06nested\x18\r \x01(\x0b\x32\x1c.substrait.Expression.NestedH\x00\x12.\n\x04\x65num\x18\n \x01(\x0b\x32\x1a.substrait.Expression.EnumB\x02\x18\x01H\x00\x1ar\n\x04\x45num\x12\x13\n\tspecified\x18\x01 \x01(\tH\x00\x12\x37\n\x0bunspecified\x18\x02 \x01(\x0b\x32 .substrait.Expression.Enum.EmptyH\x00\x1a\x0b\n\x05\x45mpty:\x02\x18\x01:\x02\x18\x01\x42\x0b\n\tenum_kind\x1a\xe7\x0c\n\x07Literal\x12\x11\n\x07\x62oolean\x18\x01 \x01(\x08H\x00\x12\x0c\n\x02i8\x18\x02 \x01(\x05H\x00\x12\r\n\x03i16\x18\x03 \x01(\x05H\x00\x12\r\n\x03i32\x18\x05 \x01(\x05H\x00\x12\r\n\x03i64\x18\x07 \x01(\x03H\x00\x12\x0e\n\x04\x66p32\x18\n \x01(\x02H\x00\x12\x0e\n\x04\x66p64\x18\x0b \x01(\x01H\x00\x12\x10\n\x06string\x18\x0c \x01(\tH\x00\x12\x10\n\x06\x62inary\x18\r \x01(\x0cH\x00\x12\x13\n\ttimestamp\x18\x0e \x01(\x03H\x00\x12\x0e\n\x04\x64\x61te\x18\x10 \x01(\x05H\x00\x12\x0e\n\x04time\x18\x11 \x01(\x03H\x00\x12S\n\x16interval_year_to_month\x18\x13 \x01(\x0b\x32\x31.substrait.Expression.Literal.IntervalYearToMonthH\x00\x12S\n\x16interval_day_to_second\x18\x14 \x01(\x0b\x32\x31.substrait.Expression.Literal.IntervalDayToSecondH\x00\x12\x14\n\nfixed_char\x18\x15 \x01(\tH\x00\x12\x39\n\x08var_char\x18\x16 \x01(\x0b\x32%.substrait.Expression.Literal.VarCharH\x00\x12\x16\n\x0c\x66ixed_binary\x18\x17 \x01(\x0cH\x00\x12\x38\n\x07\x64\x65\x63imal\x18\x18 \x01(\x0b\x32%.substrait.Expression.Literal.DecimalH\x00\x12\x36\n\x06struct\x18\x19 \x01(\x0b\x32$.substrait.Expression.Literal.StructH\x00\x12\x30\n\x03map\x18\x1a \x01(\x0b\x32!.substrait.Expression.Literal.MapH\x00\x12\x16\n\x0ctimestamp_tz\x18\x1b \x01(\x03H\x00\x12\x0e\n\x04uuid\x18\x1c \x01(\x0cH\x00\x12\x1f\n\x04null\x18\x1d \x01(\x0b\x32\x0f.substrait.TypeH\x00\x12\x32\n\x04list\x18\x1e \x01(\x0b\x32\".substrait.Expression.Literal.ListH\x00\x12*\n\nempty_list\x18\x1f \x01(\x0b\x32\x14.substrait.Type.ListH\x00\x12(\n\tempty_map\x18  \x01(\x0b\x32\x13.substrait.Type.MapH\x00\x12\x41\n\x0cuser_defined\x18! \x01(\x0b\x32).substrait.Expression.Literal.UserDefinedH\x00\x12\x10\n\x08nullable\x18\x32 \x01(\x08\x12 \n\x18type_variation_reference\x18\x33 \x01(\r\x1a(\n\x07VarChar\x12\r\n\x05value\x18\x01 \x01(\t\x12\x0e\n\x06length\x18\x02 \x01(\r\x1a:\n\x07\x44\x65\x63imal\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x11\n\tprecision\x18\x02 \x01(\x05\x12\r\n\x05scale\x18\x03 \x01(\x05\x1a\xab\x01\n\x03Map\x12>\n\nkey_values\x18\x01 \x03(\x0b\x32*.substrait.Expression.Literal.Map.KeyValue\x1a\x64\n\x08KeyValue\x12*\n\x03key\x18\x01 \x01(\x0b\x32\x1d.substrait.Expression.Literal\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.substrait.Expression.Literal\x1a\x34\n\x13IntervalYearToMonth\x12\r\n\x05years\x18\x01 \x01(\x05\x12\x0e\n\x06months\x18\x02 \x01(\x05\x1aJ\n\x13IntervalDayToSecond\x12\x0c\n\x04\x64\x61ys\x18\x01 \x01(\x05\x12\x0f\n\x07seconds\x18\x02 \x01(\x05\x12\x14\n\x0cmicroseconds\x18\x03 \x01(\x05\x1a\x37\n\x06Struct\x12-\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x1d.substrait.Expression.Literal\x1a\x35\n\x04List\x12-\n\x06values\x18\x01 \x03(\x0b\x32\x1d.substrait.Expression.Literal\x1a~\n\x0bUserDefined\x12\x16\n\x0etype_reference\x18\x01 \x01(\r\x12\x32\n\x0ftype_parameters\x18\x03 \x03(\x0b\x32\x19.substrait.Type.Parameter\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyB\x0e\n\x0cliteral_type\x1a\xe3\x03\n\x06Nested\x12\x10\n\x08nullable\x18\x01 \x01(\x08\x12 \n\x18type_variation_reference\x18\x02 \x01(\r\x12\x35\n\x06struct\x18\x03 \x01(\x0b\x32#.substrait.Expression.Nested.StructH\x00\x12\x31\n\x04list\x18\x04 \x01(\x0b\x32!.substrait.Expression.Nested.ListH\x00\x12/\n\x03map\x18\x05 \x01(\x0b\x32 .substrait.Expression.Nested.MapH\x00\x1a\x9a\x01\n\x03Map\x12=\n\nkey_values\x18\x01 \x03(\x0b\x32).substrait.Expression.Nested.Map.KeyValue\x1aT\n\x08KeyValue\x12\"\n\x03key\x18\x01 \x01(\x0b\x32\x15.substrait.Expression\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.substrait.Expression\x1a/\n\x06Struct\x12%\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x15.substrait.Expression\x1a-\n\x04List\x12%\n\x06values\x18\x01 \x03(\x0b\x32\x15.substrait.ExpressionB\r\n\x0bnested_type\x1a\xd7\x01\n\x0eScalarFunction\x12\x1a\n\x12\x66unction_reference\x18\x01 \x01(\r\x12.\n\targuments\x18\x04 \x03(\x0b\x32\x1b.substrait.FunctionArgument\x12*\n\x07options\x18\x05 \x03(\x0b\x32\x19.substrait.FunctionOption\x12$\n\x0boutput_type\x18\x03 \x01(\x0b\x32\x0f.substrait.Type\x12\'\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x15.substrait.ExpressionB\x02\x18\x01\x1a\x88\t\n\x0eWindowFunction\x12\x1a\n\x12\x66unction_reference\x18\x01 \x01(\r\x12.\n\targuments\x18\t \x03(\x0b\x32\x1b.substrait.FunctionArgument\x12*\n\x07options\x18\x0b \x03(\x0b\x32\x19.substrait.FunctionOption\x12$\n\x0boutput_type\x18\x07 \x01(\x0b\x32\x0f.substrait.Type\x12*\n\x05phase\x18\x06 \x01(\x0e\x32\x1b.substrait.AggregationPhase\x12#\n\x05sorts\x18\x03 \x03(\x0b\x32\x14.substrait.SortField\x12\x46\n\ninvocation\x18\n \x01(\x0e\x32\x32.substrait.AggregateFunction.AggregationInvocation\x12)\n\npartitions\x18\x02 \x03(\x0b\x32\x15.substrait.Expression\x12?\n\x0blower_bound\x18\x05 \x01(\x0b\x32*.substrait.Expression.WindowFunction.Bound\x12\x13\n\x0b\x63olumn_name\x18\x0c \x01(\t\x12*\n\x0bwindow_type\x18\r \x01(\x0e\x32\x15.substrait.WindowType\x12?\n\x0bupper_bound\x18\x04 \x01(\x0b\x32*.substrait.Expression.WindowFunction.Bound\x12\'\n\x04\x61rgs\x18\x08 \x03(\x0b\x32\x15.substrait.ExpressionB\x02\x18\x01\x1a\xa7\x04\n\x05\x42ound\x12I\n\tpreceding\x18\x01 \x01(\x0b\x32\x34.substrait.Expression.WindowFunction.Bound.PrecedingH\x00\x12I\n\tfollowing\x18\x02 \x01(\x0b\x32\x34.substrait.Expression.WindowFunction.Bound.FollowingH\x00\x12L\n\x0b\x63urrent_row\x18\x03 \x01(\x0b\x32\x35.substrait.Expression.WindowFunction.Bound.CurrentRowH\x00\x12]\n\x13unbounded_preceding\x18\x04 \x01(\x0b\x32>.substrait.Expression.WindowFunction.Bound.Unbounded_PrecedingH\x00\x12]\n\x13unbounded_following\x18\x05 \x01(\x0b\x32>.substrait.Expression.WindowFunction.Bound.Unbounded_FollowingH\x00\x1a\x1b\n\tPreceding\x12\x0e\n\x06offset\x18\x01 \x01(\x03\x1a\x1b\n\tFollowing\x12\x0e\n\x06offset\x18\x01 \x01(\x03\x1a\x0c\n\nCurrentRow\x1a\x15\n\x13Unbounded_Preceding\x1a\x15\n\x13Unbounded_FollowingB\x06\n\x04kind\x1a\xb5\x01\n\x06IfThen\x12\x32\n\x03ifs\x18\x01 \x03(\x0b\x32%.substrait.Expression.IfThen.IfClause\x12#\n\x04\x65lse\x18\x02 \x01(\x0b\x32\x15.substrait.Expression\x1aR\n\x08IfClause\x12!\n\x02if\x18\x01 \x01(\x0b\x32\x15.substrait.Expression\x12#\n\x04then\x18\x02 \x01(\x0b\x32\x15.substrait.Expression\x1a\x8e\x02\n\x04\x43\x61st\x12\x1d\n\x04type\x18\x01 \x01(\x0b\x32\x0f.substrait.Type\x12$\n\x05input\x18\x02 \x01(\x0b\x32\x15.substrait.Expression\x12\x44\n\x10\x66\x61ilure_behavior\x18\x03 \x01(\x0e\x32*.substrait.Expression.Cast.FailureBehavior\"{\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\xf5\x01\n\x10SwitchExpression\x12$\n\x05match\x18\x03 \x01(\x0b\x32\x15.substrait.Expression\x12;\n\x03ifs\x18\x01 \x03(\x0b\x32..substrait.Expression.SwitchExpression.IfValue\x12#\n\x04\x65lse\x18\x02 \x01(\x0b\x32\x15.substrait.Expression\x1aY\n\x07IfValue\x12)\n\x02if\x18\x01 \x01(\x0b\x32\x1d.substrait.Expression.Literal\x12#\n\x04then\x18\x02 \x01(\x0b\x32\x15.substrait.Expression\x1a^\n\x0eSingularOrList\x12$\n\x05value\x18\x01 \x01(\x0b\x32\x15.substrait.Expression\x12&\n\x07options\x18\x02 \x03(\x0b\x32\x15.substrait.Expression\x1a\x9f\x01\n\x0bMultiOrList\x12$\n\x05value\x18\x01 \x03(\x0b\x32\x15.substrait.Expression\x12\x39\n\x07options\x18\x02 \x03(\x0b\x32(.substrait.Expression.MultiOrList.Record\x1a/\n\x06Record\x12%\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x15.substrait.Expression\x1a\xa3\x03\n\x10\x45mbeddedFunction\x12(\n\targuments\x18\x01 \x03(\x0b\x32\x15.substrait.Expression\x12$\n\x0boutput_type\x18\x02 \x01(\x0b\x32\x0f.substrait.Type\x12]\n\x16python_pickle_function\x18\x03 \x01(\x0b\x32;.substrait.Expression.EmbeddedFunction.PythonPickleFunctionH\x00\x12[\n\x15web_assembly_function\x18\x04 \x01(\x0b\x32:.substrait.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00\x1a>\n\x14PythonPickleFunction\x12\x10\n\x08\x66unction\x18\x01 \x01(\x0c\x12\x14\n\x0cprerequisite\x18\x02 \x03(\t\x1a;\n\x13WebAssemblyFunction\x12\x0e\n\x06script\x18\x01 \x01(\x0c\x12\x14\n\x0cprerequisite\x18\x02 \x03(\tB\x06\n\x04kind\x1a\x9a\x04\n\x10ReferenceSegment\x12@\n\x07map_key\x18\x01 \x01(\x0b\x32-.substrait.Expression.ReferenceSegment.MapKeyH\x00\x12J\n\x0cstruct_field\x18\x02 \x01(\x0b\x32\x32.substrait.Expression.ReferenceSegment.StructFieldH\x00\x12J\n\x0clist_element\x18\x03 \x01(\x0b\x32\x32.substrait.Expression.ReferenceSegment.ListElementH\x00\x1ao\n\x06MapKey\x12.\n\x07map_key\x18\x01 \x01(\x0b\x32\x1d.substrait.Expression.Literal\x12\x35\n\x05\x63hild\x18\x02 \x01(\x0b\x32&.substrait.Expression.ReferenceSegment\x1aS\n\x0bStructField\x12\r\n\x05\x66ield\x18\x01 \x01(\x05\x12\x35\n\x05\x63hild\x18\x02 \x01(\x0b\x32&.substrait.Expression.ReferenceSegment\x1aT\n\x0bListElement\x12\x0e\n\x06offset\x18\x01 \x01(\x05\x12\x35\n\x05\x63hild\x18\x02 \x01(\x0b\x32&.substrait.Expression.ReferenceSegmentB\x10\n\x0ereference_type\x1a\xf0\t\n\x0eMaskExpression\x12\x41\n\x06select\x18\x01 \x01(\x0b\x32\x31.substrait.Expression.MaskExpression.StructSelect\x12 \n\x18maintain_singular_struct\x18\x02 \x01(\x08\x1a\xd5\x01\n\x06Select\x12\x43\n\x06struct\x18\x01 \x01(\x0b\x32\x31.substrait.Expression.MaskExpression.StructSelectH\x00\x12?\n\x04list\x18\x02 \x01(\x0b\x32/.substrait.Expression.MaskExpression.ListSelectH\x00\x12=\n\x03map\x18\x03 \x01(\x0b\x32..substrait.Expression.MaskExpression.MapSelectH\x00\x42\x06\n\x04type\x1aU\n\x0cStructSelect\x12\x45\n\x0cstruct_items\x18\x01 \x03(\x0b\x32/.substrait.Expression.MaskExpression.StructItem\x1aW\n\nStructItem\x12\r\n\x05\x66ield\x18\x01 \x01(\x05\x12:\n\x05\x63hild\x18\x02 \x01(\x0b\x32+.substrait.Expression.MaskExpression.Select\x1a\xb4\x03\n\nListSelect\x12Q\n\tselection\x18\x01 \x03(\x0b\x32>.substrait.Expression.MaskExpression.ListSelect.ListSelectItem\x12:\n\x05\x63hild\x18\x02 \x01(\x0b\x32+.substrait.Expression.MaskExpression.Select\x1a\x96\x02\n\x0eListSelectItem\x12Z\n\x04item\x18\x01 \x01(\x0b\x32J.substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00\x12Y\n\x05slice\x18\x02 \x01(\x0b\x32H.substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00\x1a\x1c\n\x0bListElement\x12\r\n\x05\x66ield\x18\x01 \x01(\x05\x1a\'\n\tListSlice\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\x42\x06\n\x04type\x1a\xb9\x02\n\tMapSelect\x12\x44\n\x03key\x18\x01 \x01(\x0b\x32\x35.substrait.Expression.MaskExpression.MapSelect.MapKeyH\x00\x12U\n\nexpression\x18\x02 \x01(\x0b\x32?.substrait.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00\x12:\n\x05\x63hild\x18\x03 \x01(\x0b\x32+.substrait.Expression.MaskExpression.Select\x1a\x19\n\x06MapKey\x12\x0f\n\x07map_key\x18\x01 \x01(\t\x1a.\n\x10MapKeyExpression\x12\x1a\n\x12map_key_expression\x18\x01 \x01(\tB\x08\n\x06select\x1a\xb6\x03\n\x0e\x46ieldReference\x12\x42\n\x10\x64irect_reference\x18\x01 \x01(\x0b\x32&.substrait.Expression.ReferenceSegmentH\x00\x12@\n\x10masked_reference\x18\x02 \x01(\x0b\x32$.substrait.Expression.MaskExpressionH\x00\x12+\n\nexpression\x18\x03 \x01(\x0b\x32\x15.substrait.ExpressionH\x01\x12L\n\x0eroot_reference\x18\x04 \x01(\x0b\x32\x32.substrait.Expression.FieldReference.RootReferenceH\x01\x12N\n\x0fouter_reference\x18\x05 \x01(\x0b\x32\x33.substrait.Expression.FieldReference.OuterReferenceH\x01\x1a\x0f\n\rRootReference\x1a#\n\x0eOuterReference\x12\x11\n\tsteps_out\x18\x01 \x01(\rB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\x8c\t\n\x08Subquery\x12\x37\n\x06scalar\x18\x01 \x01(\x0b\x32%.substrait.Expression.Subquery.ScalarH\x00\x12\x42\n\x0cin_predicate\x18\x02 \x01(\x0b\x32*.substrait.Expression.Subquery.InPredicateH\x00\x12\x44\n\rset_predicate\x18\x03 \x01(\x0b\x32+.substrait.Expression.Subquery.SetPredicateH\x00\x12\x46\n\x0eset_comparison\x18\x04 \x01(\x0b\x32,.substrait.Expression.Subquery.SetComparisonH\x00\x1a\'\n\x06Scalar\x12\x1d\n\x05input\x18\x01 \x01(\x0b\x32\x0e.substrait.Rel\x1aW\n\x0bInPredicate\x12&\n\x07needles\x18\x01 \x03(\x0b\x32\x15.substrait.Expression\x12 \n\x08haystack\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x1a\xdc\x01\n\x0cSetPredicate\x12M\n\x0cpredicate_op\x18\x01 \x01(\x0e\x32\x37.substrait.Expression.Subquery.SetPredicate.PredicateOp\x12\x1e\n\x06tuples\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\"]\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\x82\x04\n\rSetComparison\x12N\n\x0creduction_op\x18\x01 \x01(\x0e\x32\x38.substrait.Expression.Subquery.SetComparison.ReductionOp\x12P\n\rcomparison_op\x18\x02 \x01(\x0e\x32\x39.substrait.Expression.Subquery.SetComparison.ComparisonOp\x12#\n\x04left\x18\x03 \x01(\x0b\x32\x15.substrait.Expression\x12\x1d\n\x05right\x18\x04 \x01(\x0b\x32\x0e.substrait.Rel\"\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\"\xfd\x01\n\x0bGenerateRel\x12$\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x14.substrait.RelCommon\x12\x1d\n\x05input\x18\x02 \x01(\x0b\x32\x0e.substrait.Rel\x12(\n\tgenerator\x18\x03 \x01(\x0b\x32\x15.substrait.Expression\x12+\n\x0c\x63hild_output\x18\x04 \x03(\x0b\x32\x15.substrait.Expression\x12\r\n\x05outer\x18\x05 \x01(\x08\x12\x43\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32\'.substrait.extensions.AdvancedExtension\"\xff\x02\n\tSortField\x12#\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\x15.substrait.Expression\x12\x37\n\tdirection\x18\x02 \x01(\x0e\x32\".substrait.SortField.SortDirectionH\x00\x12\'\n\x1d\x63omparison_function_reference\x18\x03 \x01(\rH\x00\"\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\"\xa3\x04\n\x11\x41ggregateFunction\x12\x1a\n\x12\x66unction_reference\x18\x01 \x01(\r\x12.\n\targuments\x18\x07 \x03(\x0b\x32\x1b.substrait.FunctionArgument\x12*\n\x07options\x18\x08 \x03(\x0b\x32\x19.substrait.FunctionOption\x12$\n\x0boutput_type\x18\x05 \x01(\x0b\x32\x0f.substrait.Type\x12*\n\x05phase\x18\x04 \x01(\x0e\x32\x1b.substrait.AggregationPhase\x12#\n\x05sorts\x18\x03 \x03(\x0b\x32\x14.substrait.SortField\x12\x46\n\ninvocation\x18\x06 \x01(\x0e\x32\x32.substrait.AggregateFunction.AggregationInvocation\x12\'\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x15.substrait.ExpressionB\x02\x18\x01\x1a\'\n\x0cReferenceRel\x12\x17\n\x0fsubtree_ordinal\x18\x01 \x01(\x05\"\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*\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*!\n\nWindowType\x12\x08\n\x04ROWS\x10\x00\x12\t\n\x05RANGE\x10\x01\x42W\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobufb\x06proto3')

_AGGREGATIONPHASE = DESCRIPTOR.enum_types_by_name['AggregationPhase']
AggregationPhase = enum_type_wrapper.EnumTypeWrapper(_AGGREGATIONPHASE)
_WINDOWTYPE = DESCRIPTOR.enum_types_by_name['WindowType']
WindowType = enum_type_wrapper.EnumTypeWrapper(_WINDOWTYPE)
AGGREGATION_PHASE_UNSPECIFIED = 0
AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE = 1
AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE = 2
AGGREGATION_PHASE_INITIAL_TO_RESULT = 3
AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT = 4
ROWS = 0
RANGE = 1


_RELCOMMON = DESCRIPTOR.message_types_by_name['RelCommon']
_RELCOMMON_DIRECT = _RELCOMMON.nested_types_by_name['Direct']
_RELCOMMON_EMIT = _RELCOMMON.nested_types_by_name['Emit']
_RELCOMMON_HINT = _RELCOMMON.nested_types_by_name['Hint']
_RELCOMMON_HINT_STATS = _RELCOMMON_HINT.nested_types_by_name['Stats']
_RELCOMMON_HINT_RUNTIMECONSTRAINT = _RELCOMMON_HINT.nested_types_by_name['RuntimeConstraint']
_READREL = DESCRIPTOR.message_types_by_name['ReadRel']
_READREL_NAMEDTABLE = _READREL.nested_types_by_name['NamedTable']
_READREL_VIRTUALTABLE = _READREL.nested_types_by_name['VirtualTable']
_READREL_EXTENSIONTABLE = _READREL.nested_types_by_name['ExtensionTable']
_READREL_LOCALFILES = _READREL.nested_types_by_name['LocalFiles']
_READREL_LOCALFILES_FILEORFILES = _READREL_LOCALFILES.nested_types_by_name['FileOrFiles']
_READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS = _READREL_LOCALFILES_FILEORFILES.nested_types_by_name['ParquetReadOptions']
_READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS = _READREL_LOCALFILES_FILEORFILES.nested_types_by_name['ArrowReadOptions']
_READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS = _READREL_LOCALFILES_FILEORFILES.nested_types_by_name['OrcReadOptions']
_READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS = _READREL_LOCALFILES_FILEORFILES.nested_types_by_name['DwrfReadOptions']
_READREL_LOCALFILES_FILEORFILES_VASTREADOPTIONS = _READREL_LOCALFILES_FILEORFILES.nested_types_by_name['VastReadOptions']
_PROJECTREL = DESCRIPTOR.message_types_by_name['ProjectRel']
_JOINREL = DESCRIPTOR.message_types_by_name['JoinRel']
_CROSSREL = DESCRIPTOR.message_types_by_name['CrossRel']
_FETCHREL = DESCRIPTOR.message_types_by_name['FetchRel']
_AGGREGATEREL = DESCRIPTOR.message_types_by_name['AggregateRel']
_AGGREGATEREL_GROUPING = _AGGREGATEREL.nested_types_by_name['Grouping']
_AGGREGATEREL_MEASURE = _AGGREGATEREL.nested_types_by_name['Measure']
_SORTREL = DESCRIPTOR.message_types_by_name['SortRel']
_WINDOWREL = DESCRIPTOR.message_types_by_name['WindowRel']
_WINDOWREL_MEASURE = _WINDOWREL.nested_types_by_name['Measure']
_FILTERREL = DESCRIPTOR.message_types_by_name['FilterRel']
_SETREL = DESCRIPTOR.message_types_by_name['SetRel']
_EXTENSIONSINGLEREL = DESCRIPTOR.message_types_by_name['ExtensionSingleRel']
_EXTENSIONLEAFREL = DESCRIPTOR.message_types_by_name['ExtensionLeafRel']
_EXTENSIONMULTIREL = DESCRIPTOR.message_types_by_name['ExtensionMultiRel']
_EXCHANGEREL = DESCRIPTOR.message_types_by_name['ExchangeRel']
_EXCHANGEREL_SCATTERFIELDS = _EXCHANGEREL.nested_types_by_name['ScatterFields']
_EXCHANGEREL_SINGLEBUCKETEXPRESSION = _EXCHANGEREL.nested_types_by_name['SingleBucketExpression']
_EXCHANGEREL_MULTIBUCKETEXPRESSION = _EXCHANGEREL.nested_types_by_name['MultiBucketExpression']
_EXCHANGEREL_BROADCAST = _EXCHANGEREL.nested_types_by_name['Broadcast']
_EXCHANGEREL_ROUNDROBIN = _EXCHANGEREL.nested_types_by_name['RoundRobin']
_EXCHANGEREL_EXCHANGETARGET = _EXCHANGEREL.nested_types_by_name['ExchangeTarget']
_EXPANDREL = DESCRIPTOR.message_types_by_name['ExpandRel']
_EXPANDREL_EXPANDFIELD = _EXPANDREL.nested_types_by_name['ExpandField']
_EXPANDREL_SWITCHINGFIELD = _EXPANDREL.nested_types_by_name['SwitchingField']
_RELROOT = DESCRIPTOR.message_types_by_name['RelRoot']
_REL = DESCRIPTOR.message_types_by_name['Rel']
_NAMEDOBJECTWRITE = DESCRIPTOR.message_types_by_name['NamedObjectWrite']
_EXTENSIONOBJECT = DESCRIPTOR.message_types_by_name['ExtensionObject']
_DDLREL = DESCRIPTOR.message_types_by_name['DdlRel']
_WRITEREL = DESCRIPTOR.message_types_by_name['WriteRel']
_HASHJOINREL = DESCRIPTOR.message_types_by_name['HashJoinRel']
_MERGEJOINREL = DESCRIPTOR.message_types_by_name['MergeJoinRel']
_FUNCTIONARGUMENT = DESCRIPTOR.message_types_by_name['FunctionArgument']
_FUNCTIONOPTION = DESCRIPTOR.message_types_by_name['FunctionOption']
_EXPRESSION = DESCRIPTOR.message_types_by_name['Expression']
_EXPRESSION_ENUM = _EXPRESSION.nested_types_by_name['Enum']
_EXPRESSION_ENUM_EMPTY = _EXPRESSION_ENUM.nested_types_by_name['Empty']
_EXPRESSION_LITERAL = _EXPRESSION.nested_types_by_name['Literal']
_EXPRESSION_LITERAL_VARCHAR = _EXPRESSION_LITERAL.nested_types_by_name['VarChar']
_EXPRESSION_LITERAL_DECIMAL = _EXPRESSION_LITERAL.nested_types_by_name['Decimal']
_EXPRESSION_LITERAL_MAP = _EXPRESSION_LITERAL.nested_types_by_name['Map']
_EXPRESSION_LITERAL_MAP_KEYVALUE = _EXPRESSION_LITERAL_MAP.nested_types_by_name['KeyValue']
_EXPRESSION_LITERAL_INTERVALYEARTOMONTH = _EXPRESSION_LITERAL.nested_types_by_name['IntervalYearToMonth']
_EXPRESSION_LITERAL_INTERVALDAYTOSECOND = _EXPRESSION_LITERAL.nested_types_by_name['IntervalDayToSecond']
_EXPRESSION_LITERAL_STRUCT = _EXPRESSION_LITERAL.nested_types_by_name['Struct']
_EXPRESSION_LITERAL_LIST = _EXPRESSION_LITERAL.nested_types_by_name['List']
_EXPRESSION_LITERAL_USERDEFINED = _EXPRESSION_LITERAL.nested_types_by_name['UserDefined']
_EXPRESSION_NESTED = _EXPRESSION.nested_types_by_name['Nested']
_EXPRESSION_NESTED_MAP = _EXPRESSION_NESTED.nested_types_by_name['Map']
_EXPRESSION_NESTED_MAP_KEYVALUE = _EXPRESSION_NESTED_MAP.nested_types_by_name['KeyValue']
_EXPRESSION_NESTED_STRUCT = _EXPRESSION_NESTED.nested_types_by_name['Struct']
_EXPRESSION_NESTED_LIST = _EXPRESSION_NESTED.nested_types_by_name['List']
_EXPRESSION_SCALARFUNCTION = _EXPRESSION.nested_types_by_name['ScalarFunction']
_EXPRESSION_WINDOWFUNCTION = _EXPRESSION.nested_types_by_name['WindowFunction']
_EXPRESSION_WINDOWFUNCTION_BOUND = _EXPRESSION_WINDOWFUNCTION.nested_types_by_name['Bound']
_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING = _EXPRESSION_WINDOWFUNCTION_BOUND.nested_types_by_name['Preceding']
_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING = _EXPRESSION_WINDOWFUNCTION_BOUND.nested_types_by_name['Following']
_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW = _EXPRESSION_WINDOWFUNCTION_BOUND.nested_types_by_name['CurrentRow']
_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED_PRECEDING = _EXPRESSION_WINDOWFUNCTION_BOUND.nested_types_by_name['Unbounded_Preceding']
_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED_FOLLOWING = _EXPRESSION_WINDOWFUNCTION_BOUND.nested_types_by_name['Unbounded_Following']
_EXPRESSION_IFTHEN = _EXPRESSION.nested_types_by_name['IfThen']
_EXPRESSION_IFTHEN_IFCLAUSE = _EXPRESSION_IFTHEN.nested_types_by_name['IfClause']
_EXPRESSION_CAST = _EXPRESSION.nested_types_by_name['Cast']
_EXPRESSION_SWITCHEXPRESSION = _EXPRESSION.nested_types_by_name['SwitchExpression']
_EXPRESSION_SWITCHEXPRESSION_IFVALUE = _EXPRESSION_SWITCHEXPRESSION.nested_types_by_name['IfValue']
_EXPRESSION_SINGULARORLIST = _EXPRESSION.nested_types_by_name['SingularOrList']
_EXPRESSION_MULTIORLIST = _EXPRESSION.nested_types_by_name['MultiOrList']
_EXPRESSION_MULTIORLIST_RECORD = _EXPRESSION_MULTIORLIST.nested_types_by_name['Record']
_EXPRESSION_EMBEDDEDFUNCTION = _EXPRESSION.nested_types_by_name['EmbeddedFunction']
_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION = _EXPRESSION_EMBEDDEDFUNCTION.nested_types_by_name['PythonPickleFunction']
_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION = _EXPRESSION_EMBEDDEDFUNCTION.nested_types_by_name['WebAssemblyFunction']
_EXPRESSION_REFERENCESEGMENT = _EXPRESSION.nested_types_by_name['ReferenceSegment']
_EXPRESSION_REFERENCESEGMENT_MAPKEY = _EXPRESSION_REFERENCESEGMENT.nested_types_by_name['MapKey']
_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD = _EXPRESSION_REFERENCESEGMENT.nested_types_by_name['StructField']
_EXPRESSION_REFERENCESEGMENT_LISTELEMENT = _EXPRESSION_REFERENCESEGMENT.nested_types_by_name['ListElement']
_EXPRESSION_MASKEXPRESSION = _EXPRESSION.nested_types_by_name['MaskExpression']
_EXPRESSION_MASKEXPRESSION_SELECT = _EXPRESSION_MASKEXPRESSION.nested_types_by_name['Select']
_EXPRESSION_MASKEXPRESSION_STRUCTSELECT = _EXPRESSION_MASKEXPRESSION.nested_types_by_name['StructSelect']
_EXPRESSION_MASKEXPRESSION_STRUCTITEM = _EXPRESSION_MASKEXPRESSION.nested_types_by_name['StructItem']
_EXPRESSION_MASKEXPRESSION_LISTSELECT = _EXPRESSION_MASKEXPRESSION.nested_types_by_name['ListSelect']
_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM = _EXPRESSION_MASKEXPRESSION_LISTSELECT.nested_types_by_name['ListSelectItem']
_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT = _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM.nested_types_by_name['ListElement']
_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE = _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM.nested_types_by_name['ListSlice']
_EXPRESSION_MASKEXPRESSION_MAPSELECT = _EXPRESSION_MASKEXPRESSION.nested_types_by_name['MapSelect']
_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY = _EXPRESSION_MASKEXPRESSION_MAPSELECT.nested_types_by_name['MapKey']
_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION = _EXPRESSION_MASKEXPRESSION_MAPSELECT.nested_types_by_name['MapKeyExpression']
_EXPRESSION_FIELDREFERENCE = _EXPRESSION.nested_types_by_name['FieldReference']
_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE = _EXPRESSION_FIELDREFERENCE.nested_types_by_name['RootReference']
_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE = _EXPRESSION_FIELDREFERENCE.nested_types_by_name['OuterReference']
_EXPRESSION_SUBQUERY = _EXPRESSION.nested_types_by_name['Subquery']
_EXPRESSION_SUBQUERY_SCALAR = _EXPRESSION_SUBQUERY.nested_types_by_name['Scalar']
_EXPRESSION_SUBQUERY_INPREDICATE = _EXPRESSION_SUBQUERY.nested_types_by_name['InPredicate']
_EXPRESSION_SUBQUERY_SETPREDICATE = _EXPRESSION_SUBQUERY.nested_types_by_name['SetPredicate']
_EXPRESSION_SUBQUERY_SETCOMPARISON = _EXPRESSION_SUBQUERY.nested_types_by_name['SetComparison']
_GENERATEREL = DESCRIPTOR.message_types_by_name['GenerateRel']
_SORTFIELD = DESCRIPTOR.message_types_by_name['SortField']
_AGGREGATEFUNCTION = DESCRIPTOR.message_types_by_name['AggregateFunction']
_AGGREGATEFUNCTION_REFERENCEREL = _AGGREGATEFUNCTION.nested_types_by_name['ReferenceRel']
_JOINREL_JOINTYPE = _JOINREL.enum_types_by_name['JoinType']
_SETREL_SETOP = _SETREL.enum_types_by_name['SetOp']
_DDLREL_DDLOBJECT = _DDLREL.enum_types_by_name['DdlObject']
_DDLREL_DDLOP = _DDLREL.enum_types_by_name['DdlOp']
_WRITEREL_WRITEOP = _WRITEREL.enum_types_by_name['WriteOp']
_WRITEREL_OUTPUTMODE = _WRITEREL.enum_types_by_name['OutputMode']
_HASHJOINREL_JOINTYPE = _HASHJOINREL.enum_types_by_name['JoinType']
_MERGEJOINREL_JOINTYPE = _MERGEJOINREL.enum_types_by_name['JoinType']
_EXPRESSION_CAST_FAILUREBEHAVIOR = _EXPRESSION_CAST.enum_types_by_name['FailureBehavior']
_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP = _EXPRESSION_SUBQUERY_SETPREDICATE.enum_types_by_name['PredicateOp']
_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP = _EXPRESSION_SUBQUERY_SETCOMPARISON.enum_types_by_name['ComparisonOp']
_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP = _EXPRESSION_SUBQUERY_SETCOMPARISON.enum_types_by_name['ReductionOp']
_SORTFIELD_SORTDIRECTION = _SORTFIELD.enum_types_by_name['SortDirection']
_AGGREGATEFUNCTION_AGGREGATIONINVOCATION = _AGGREGATEFUNCTION.enum_types_by_name['AggregationInvocation']
RelCommon = _reflection.GeneratedProtocolMessageType('RelCommon', (_message.Message,), {

  'Direct' : _reflection.GeneratedProtocolMessageType('Direct', (_message.Message,), {
    'DESCRIPTOR' : _RELCOMMON_DIRECT,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.RelCommon.Direct)
    })
  ,

  'Emit' : _reflection.GeneratedProtocolMessageType('Emit', (_message.Message,), {
    'DESCRIPTOR' : _RELCOMMON_EMIT,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.RelCommon.Emit)
    })
  ,

  'Hint' : _reflection.GeneratedProtocolMessageType('Hint', (_message.Message,), {

    'Stats' : _reflection.GeneratedProtocolMessageType('Stats', (_message.Message,), {
      'DESCRIPTOR' : _RELCOMMON_HINT_STATS,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.RelCommon.Hint.Stats)
      })
    ,

    'RuntimeConstraint' : _reflection.GeneratedProtocolMessageType('RuntimeConstraint', (_message.Message,), {
      'DESCRIPTOR' : _RELCOMMON_HINT_RUNTIMECONSTRAINT,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.RelCommon.Hint.RuntimeConstraint)
      })
    ,
    'DESCRIPTOR' : _RELCOMMON_HINT,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.RelCommon.Hint)
    })
  ,
  'DESCRIPTOR' : _RELCOMMON,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.RelCommon)
  })
_sym_db.RegisterMessage(RelCommon)
_sym_db.RegisterMessage(RelCommon.Direct)
_sym_db.RegisterMessage(RelCommon.Emit)
_sym_db.RegisterMessage(RelCommon.Hint)
_sym_db.RegisterMessage(RelCommon.Hint.Stats)
_sym_db.RegisterMessage(RelCommon.Hint.RuntimeConstraint)

ReadRel = _reflection.GeneratedProtocolMessageType('ReadRel', (_message.Message,), {

  'NamedTable' : _reflection.GeneratedProtocolMessageType('NamedTable', (_message.Message,), {
    'DESCRIPTOR' : _READREL_NAMEDTABLE,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ReadRel.NamedTable)
    })
  ,

  'VirtualTable' : _reflection.GeneratedProtocolMessageType('VirtualTable', (_message.Message,), {
    'DESCRIPTOR' : _READREL_VIRTUALTABLE,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ReadRel.VirtualTable)
    })
  ,

  'ExtensionTable' : _reflection.GeneratedProtocolMessageType('ExtensionTable', (_message.Message,), {
    'DESCRIPTOR' : _READREL_EXTENSIONTABLE,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ReadRel.ExtensionTable)
    })
  ,

  'LocalFiles' : _reflection.GeneratedProtocolMessageType('LocalFiles', (_message.Message,), {

    'FileOrFiles' : _reflection.GeneratedProtocolMessageType('FileOrFiles', (_message.Message,), {

      'ParquetReadOptions' : _reflection.GeneratedProtocolMessageType('ParquetReadOptions', (_message.Message,), {
        'DESCRIPTOR' : _READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions)
        })
      ,

      'ArrowReadOptions' : _reflection.GeneratedProtocolMessageType('ArrowReadOptions', (_message.Message,), {
        'DESCRIPTOR' : _READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions)
        })
      ,

      'OrcReadOptions' : _reflection.GeneratedProtocolMessageType('OrcReadOptions', (_message.Message,), {
        'DESCRIPTOR' : _READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.ReadRel.LocalFiles.FileOrFiles.OrcReadOptions)
        })
      ,

      'DwrfReadOptions' : _reflection.GeneratedProtocolMessageType('DwrfReadOptions', (_message.Message,), {
        'DESCRIPTOR' : _READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions)
        })
      ,

      'VastReadOptions' : _reflection.GeneratedProtocolMessageType('VastReadOptions', (_message.Message,), {
        'DESCRIPTOR' : _READREL_LOCALFILES_FILEORFILES_VASTREADOPTIONS,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.ReadRel.LocalFiles.FileOrFiles.VastReadOptions)
        })
      ,
      'DESCRIPTOR' : _READREL_LOCALFILES_FILEORFILES,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.ReadRel.LocalFiles.FileOrFiles)
      })
    ,
    'DESCRIPTOR' : _READREL_LOCALFILES,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ReadRel.LocalFiles)
    })
  ,
  'DESCRIPTOR' : _READREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.ReadRel)
  })
_sym_db.RegisterMessage(ReadRel)
_sym_db.RegisterMessage(ReadRel.NamedTable)
_sym_db.RegisterMessage(ReadRel.VirtualTable)
_sym_db.RegisterMessage(ReadRel.ExtensionTable)
_sym_db.RegisterMessage(ReadRel.LocalFiles)
_sym_db.RegisterMessage(ReadRel.LocalFiles.FileOrFiles)
_sym_db.RegisterMessage(ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions)
_sym_db.RegisterMessage(ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions)
_sym_db.RegisterMessage(ReadRel.LocalFiles.FileOrFiles.OrcReadOptions)
_sym_db.RegisterMessage(ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions)
_sym_db.RegisterMessage(ReadRel.LocalFiles.FileOrFiles.VastReadOptions)

ProjectRel = _reflection.GeneratedProtocolMessageType('ProjectRel', (_message.Message,), {
  'DESCRIPTOR' : _PROJECTREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.ProjectRel)
  })
_sym_db.RegisterMessage(ProjectRel)

JoinRel = _reflection.GeneratedProtocolMessageType('JoinRel', (_message.Message,), {
  'DESCRIPTOR' : _JOINREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.JoinRel)
  })
_sym_db.RegisterMessage(JoinRel)

CrossRel = _reflection.GeneratedProtocolMessageType('CrossRel', (_message.Message,), {
  'DESCRIPTOR' : _CROSSREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.CrossRel)
  })
_sym_db.RegisterMessage(CrossRel)

FetchRel = _reflection.GeneratedProtocolMessageType('FetchRel', (_message.Message,), {
  'DESCRIPTOR' : _FETCHREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.FetchRel)
  })
_sym_db.RegisterMessage(FetchRel)

AggregateRel = _reflection.GeneratedProtocolMessageType('AggregateRel', (_message.Message,), {

  'Grouping' : _reflection.GeneratedProtocolMessageType('Grouping', (_message.Message,), {
    'DESCRIPTOR' : _AGGREGATEREL_GROUPING,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.AggregateRel.Grouping)
    })
  ,

  'Measure' : _reflection.GeneratedProtocolMessageType('Measure', (_message.Message,), {
    'DESCRIPTOR' : _AGGREGATEREL_MEASURE,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.AggregateRel.Measure)
    })
  ,
  'DESCRIPTOR' : _AGGREGATEREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.AggregateRel)
  })
_sym_db.RegisterMessage(AggregateRel)
_sym_db.RegisterMessage(AggregateRel.Grouping)
_sym_db.RegisterMessage(AggregateRel.Measure)

SortRel = _reflection.GeneratedProtocolMessageType('SortRel', (_message.Message,), {
  'DESCRIPTOR' : _SORTREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.SortRel)
  })
_sym_db.RegisterMessage(SortRel)

WindowRel = _reflection.GeneratedProtocolMessageType('WindowRel', (_message.Message,), {

  'Measure' : _reflection.GeneratedProtocolMessageType('Measure', (_message.Message,), {
    'DESCRIPTOR' : _WINDOWREL_MEASURE,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.WindowRel.Measure)
    })
  ,
  'DESCRIPTOR' : _WINDOWREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.WindowRel)
  })
_sym_db.RegisterMessage(WindowRel)
_sym_db.RegisterMessage(WindowRel.Measure)

FilterRel = _reflection.GeneratedProtocolMessageType('FilterRel', (_message.Message,), {
  'DESCRIPTOR' : _FILTERREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.FilterRel)
  })
_sym_db.RegisterMessage(FilterRel)

SetRel = _reflection.GeneratedProtocolMessageType('SetRel', (_message.Message,), {
  'DESCRIPTOR' : _SETREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.SetRel)
  })
_sym_db.RegisterMessage(SetRel)

ExtensionSingleRel = _reflection.GeneratedProtocolMessageType('ExtensionSingleRel', (_message.Message,), {
  'DESCRIPTOR' : _EXTENSIONSINGLEREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.ExtensionSingleRel)
  })
_sym_db.RegisterMessage(ExtensionSingleRel)

ExtensionLeafRel = _reflection.GeneratedProtocolMessageType('ExtensionLeafRel', (_message.Message,), {
  'DESCRIPTOR' : _EXTENSIONLEAFREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.ExtensionLeafRel)
  })
_sym_db.RegisterMessage(ExtensionLeafRel)

ExtensionMultiRel = _reflection.GeneratedProtocolMessageType('ExtensionMultiRel', (_message.Message,), {
  'DESCRIPTOR' : _EXTENSIONMULTIREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.ExtensionMultiRel)
  })
_sym_db.RegisterMessage(ExtensionMultiRel)

ExchangeRel = _reflection.GeneratedProtocolMessageType('ExchangeRel', (_message.Message,), {

  'ScatterFields' : _reflection.GeneratedProtocolMessageType('ScatterFields', (_message.Message,), {
    'DESCRIPTOR' : _EXCHANGEREL_SCATTERFIELDS,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ExchangeRel.ScatterFields)
    })
  ,

  'SingleBucketExpression' : _reflection.GeneratedProtocolMessageType('SingleBucketExpression', (_message.Message,), {
    'DESCRIPTOR' : _EXCHANGEREL_SINGLEBUCKETEXPRESSION,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ExchangeRel.SingleBucketExpression)
    })
  ,

  'MultiBucketExpression' : _reflection.GeneratedProtocolMessageType('MultiBucketExpression', (_message.Message,), {
    'DESCRIPTOR' : _EXCHANGEREL_MULTIBUCKETEXPRESSION,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ExchangeRel.MultiBucketExpression)
    })
  ,

  'Broadcast' : _reflection.GeneratedProtocolMessageType('Broadcast', (_message.Message,), {
    'DESCRIPTOR' : _EXCHANGEREL_BROADCAST,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ExchangeRel.Broadcast)
    })
  ,

  'RoundRobin' : _reflection.GeneratedProtocolMessageType('RoundRobin', (_message.Message,), {
    'DESCRIPTOR' : _EXCHANGEREL_ROUNDROBIN,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ExchangeRel.RoundRobin)
    })
  ,

  'ExchangeTarget' : _reflection.GeneratedProtocolMessageType('ExchangeTarget', (_message.Message,), {
    'DESCRIPTOR' : _EXCHANGEREL_EXCHANGETARGET,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ExchangeRel.ExchangeTarget)
    })
  ,
  'DESCRIPTOR' : _EXCHANGEREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.ExchangeRel)
  })
_sym_db.RegisterMessage(ExchangeRel)
_sym_db.RegisterMessage(ExchangeRel.ScatterFields)
_sym_db.RegisterMessage(ExchangeRel.SingleBucketExpression)
_sym_db.RegisterMessage(ExchangeRel.MultiBucketExpression)
_sym_db.RegisterMessage(ExchangeRel.Broadcast)
_sym_db.RegisterMessage(ExchangeRel.RoundRobin)
_sym_db.RegisterMessage(ExchangeRel.ExchangeTarget)

ExpandRel = _reflection.GeneratedProtocolMessageType('ExpandRel', (_message.Message,), {

  'ExpandField' : _reflection.GeneratedProtocolMessageType('ExpandField', (_message.Message,), {
    'DESCRIPTOR' : _EXPANDREL_EXPANDFIELD,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ExpandRel.ExpandField)
    })
  ,

  'SwitchingField' : _reflection.GeneratedProtocolMessageType('SwitchingField', (_message.Message,), {
    'DESCRIPTOR' : _EXPANDREL_SWITCHINGFIELD,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.ExpandRel.SwitchingField)
    })
  ,
  'DESCRIPTOR' : _EXPANDREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.ExpandRel)
  })
_sym_db.RegisterMessage(ExpandRel)
_sym_db.RegisterMessage(ExpandRel.ExpandField)
_sym_db.RegisterMessage(ExpandRel.SwitchingField)

RelRoot = _reflection.GeneratedProtocolMessageType('RelRoot', (_message.Message,), {
  'DESCRIPTOR' : _RELROOT,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.RelRoot)
  })
_sym_db.RegisterMessage(RelRoot)

Rel = _reflection.GeneratedProtocolMessageType('Rel', (_message.Message,), {
  'DESCRIPTOR' : _REL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.Rel)
  })
_sym_db.RegisterMessage(Rel)

NamedObjectWrite = _reflection.GeneratedProtocolMessageType('NamedObjectWrite', (_message.Message,), {
  'DESCRIPTOR' : _NAMEDOBJECTWRITE,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.NamedObjectWrite)
  })
_sym_db.RegisterMessage(NamedObjectWrite)

ExtensionObject = _reflection.GeneratedProtocolMessageType('ExtensionObject', (_message.Message,), {
  'DESCRIPTOR' : _EXTENSIONOBJECT,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.ExtensionObject)
  })
_sym_db.RegisterMessage(ExtensionObject)

DdlRel = _reflection.GeneratedProtocolMessageType('DdlRel', (_message.Message,), {
  'DESCRIPTOR' : _DDLREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.DdlRel)
  })
_sym_db.RegisterMessage(DdlRel)

WriteRel = _reflection.GeneratedProtocolMessageType('WriteRel', (_message.Message,), {
  'DESCRIPTOR' : _WRITEREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.WriteRel)
  })
_sym_db.RegisterMessage(WriteRel)

HashJoinRel = _reflection.GeneratedProtocolMessageType('HashJoinRel', (_message.Message,), {
  'DESCRIPTOR' : _HASHJOINREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.HashJoinRel)
  })
_sym_db.RegisterMessage(HashJoinRel)

MergeJoinRel = _reflection.GeneratedProtocolMessageType('MergeJoinRel', (_message.Message,), {
  'DESCRIPTOR' : _MERGEJOINREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.MergeJoinRel)
  })
_sym_db.RegisterMessage(MergeJoinRel)

FunctionArgument = _reflection.GeneratedProtocolMessageType('FunctionArgument', (_message.Message,), {
  'DESCRIPTOR' : _FUNCTIONARGUMENT,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.FunctionArgument)
  })
_sym_db.RegisterMessage(FunctionArgument)

FunctionOption = _reflection.GeneratedProtocolMessageType('FunctionOption', (_message.Message,), {
  'DESCRIPTOR' : _FUNCTIONOPTION,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.FunctionOption)
  })
_sym_db.RegisterMessage(FunctionOption)

Expression = _reflection.GeneratedProtocolMessageType('Expression', (_message.Message,), {

  'Enum' : _reflection.GeneratedProtocolMessageType('Enum', (_message.Message,), {

    'Empty' : _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_ENUM_EMPTY,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Enum.Empty)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_ENUM,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.Enum)
    })
  ,

  'Literal' : _reflection.GeneratedProtocolMessageType('Literal', (_message.Message,), {

    'VarChar' : _reflection.GeneratedProtocolMessageType('VarChar', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_LITERAL_VARCHAR,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Literal.VarChar)
      })
    ,

    'Decimal' : _reflection.GeneratedProtocolMessageType('Decimal', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_LITERAL_DECIMAL,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Literal.Decimal)
      })
    ,

    'Map' : _reflection.GeneratedProtocolMessageType('Map', (_message.Message,), {

      'KeyValue' : _reflection.GeneratedProtocolMessageType('KeyValue', (_message.Message,), {
        'DESCRIPTOR' : _EXPRESSION_LITERAL_MAP_KEYVALUE,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.Expression.Literal.Map.KeyValue)
        })
      ,
      'DESCRIPTOR' : _EXPRESSION_LITERAL_MAP,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Literal.Map)
      })
    ,

    'IntervalYearToMonth' : _reflection.GeneratedProtocolMessageType('IntervalYearToMonth', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_LITERAL_INTERVALYEARTOMONTH,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Literal.IntervalYearToMonth)
      })
    ,

    'IntervalDayToSecond' : _reflection.GeneratedProtocolMessageType('IntervalDayToSecond', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_LITERAL_INTERVALDAYTOSECOND,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Literal.IntervalDayToSecond)
      })
    ,

    'Struct' : _reflection.GeneratedProtocolMessageType('Struct', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_LITERAL_STRUCT,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Literal.Struct)
      })
    ,

    'List' : _reflection.GeneratedProtocolMessageType('List', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_LITERAL_LIST,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Literal.List)
      })
    ,

    'UserDefined' : _reflection.GeneratedProtocolMessageType('UserDefined', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_LITERAL_USERDEFINED,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Literal.UserDefined)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_LITERAL,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.Literal)
    })
  ,

  'Nested' : _reflection.GeneratedProtocolMessageType('Nested', (_message.Message,), {

    'Map' : _reflection.GeneratedProtocolMessageType('Map', (_message.Message,), {

      'KeyValue' : _reflection.GeneratedProtocolMessageType('KeyValue', (_message.Message,), {
        'DESCRIPTOR' : _EXPRESSION_NESTED_MAP_KEYVALUE,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.Expression.Nested.Map.KeyValue)
        })
      ,
      'DESCRIPTOR' : _EXPRESSION_NESTED_MAP,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Nested.Map)
      })
    ,

    'Struct' : _reflection.GeneratedProtocolMessageType('Struct', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_NESTED_STRUCT,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Nested.Struct)
      })
    ,

    'List' : _reflection.GeneratedProtocolMessageType('List', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_NESTED_LIST,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Nested.List)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_NESTED,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.Nested)
    })
  ,

  'ScalarFunction' : _reflection.GeneratedProtocolMessageType('ScalarFunction', (_message.Message,), {
    'DESCRIPTOR' : _EXPRESSION_SCALARFUNCTION,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.ScalarFunction)
    })
  ,

  'WindowFunction' : _reflection.GeneratedProtocolMessageType('WindowFunction', (_message.Message,), {

    'Bound' : _reflection.GeneratedProtocolMessageType('Bound', (_message.Message,), {

      'Preceding' : _reflection.GeneratedProtocolMessageType('Preceding', (_message.Message,), {
        'DESCRIPTOR' : _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.Expression.WindowFunction.Bound.Preceding)
        })
      ,

      'Following' : _reflection.GeneratedProtocolMessageType('Following', (_message.Message,), {
        'DESCRIPTOR' : _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.Expression.WindowFunction.Bound.Following)
        })
      ,

      'CurrentRow' : _reflection.GeneratedProtocolMessageType('CurrentRow', (_message.Message,), {
        'DESCRIPTOR' : _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.Expression.WindowFunction.Bound.CurrentRow)
        })
      ,

      'Unbounded_Preceding' : _reflection.GeneratedProtocolMessageType('Unbounded_Preceding', (_message.Message,), {
        'DESCRIPTOR' : _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED_PRECEDING,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.Expression.WindowFunction.Bound.Unbounded_Preceding)
        })
      ,

      'Unbounded_Following' : _reflection.GeneratedProtocolMessageType('Unbounded_Following', (_message.Message,), {
        'DESCRIPTOR' : _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED_FOLLOWING,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.Expression.WindowFunction.Bound.Unbounded_Following)
        })
      ,
      'DESCRIPTOR' : _EXPRESSION_WINDOWFUNCTION_BOUND,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.WindowFunction.Bound)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_WINDOWFUNCTION,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.WindowFunction)
    })
  ,

  'IfThen' : _reflection.GeneratedProtocolMessageType('IfThen', (_message.Message,), {

    'IfClause' : _reflection.GeneratedProtocolMessageType('IfClause', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_IFTHEN_IFCLAUSE,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.IfThen.IfClause)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_IFTHEN,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.IfThen)
    })
  ,

  'Cast' : _reflection.GeneratedProtocolMessageType('Cast', (_message.Message,), {
    'DESCRIPTOR' : _EXPRESSION_CAST,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.Cast)
    })
  ,

  'SwitchExpression' : _reflection.GeneratedProtocolMessageType('SwitchExpression', (_message.Message,), {

    'IfValue' : _reflection.GeneratedProtocolMessageType('IfValue', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_SWITCHEXPRESSION_IFVALUE,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.SwitchExpression.IfValue)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_SWITCHEXPRESSION,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.SwitchExpression)
    })
  ,

  'SingularOrList' : _reflection.GeneratedProtocolMessageType('SingularOrList', (_message.Message,), {
    'DESCRIPTOR' : _EXPRESSION_SINGULARORLIST,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.SingularOrList)
    })
  ,

  'MultiOrList' : _reflection.GeneratedProtocolMessageType('MultiOrList', (_message.Message,), {

    'Record' : _reflection.GeneratedProtocolMessageType('Record', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_MULTIORLIST_RECORD,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.MultiOrList.Record)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_MULTIORLIST,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.MultiOrList)
    })
  ,

  'EmbeddedFunction' : _reflection.GeneratedProtocolMessageType('EmbeddedFunction', (_message.Message,), {

    'PythonPickleFunction' : _reflection.GeneratedProtocolMessageType('PythonPickleFunction', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.EmbeddedFunction.PythonPickleFunction)
      })
    ,

    'WebAssemblyFunction' : _reflection.GeneratedProtocolMessageType('WebAssemblyFunction', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.EmbeddedFunction.WebAssemblyFunction)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_EMBEDDEDFUNCTION,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.EmbeddedFunction)
    })
  ,

  'ReferenceSegment' : _reflection.GeneratedProtocolMessageType('ReferenceSegment', (_message.Message,), {

    'MapKey' : _reflection.GeneratedProtocolMessageType('MapKey', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_REFERENCESEGMENT_MAPKEY,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.ReferenceSegment.MapKey)
      })
    ,

    'StructField' : _reflection.GeneratedProtocolMessageType('StructField', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.ReferenceSegment.StructField)
      })
    ,

    'ListElement' : _reflection.GeneratedProtocolMessageType('ListElement', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_REFERENCESEGMENT_LISTELEMENT,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.ReferenceSegment.ListElement)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_REFERENCESEGMENT,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.ReferenceSegment)
    })
  ,

  'MaskExpression' : _reflection.GeneratedProtocolMessageType('MaskExpression', (_message.Message,), {

    'Select' : _reflection.GeneratedProtocolMessageType('Select', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_MASKEXPRESSION_SELECT,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.MaskExpression.Select)
      })
    ,

    'StructSelect' : _reflection.GeneratedProtocolMessageType('StructSelect', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_MASKEXPRESSION_STRUCTSELECT,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.MaskExpression.StructSelect)
      })
    ,

    'StructItem' : _reflection.GeneratedProtocolMessageType('StructItem', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_MASKEXPRESSION_STRUCTITEM,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.MaskExpression.StructItem)
      })
    ,

    'ListSelect' : _reflection.GeneratedProtocolMessageType('ListSelect', (_message.Message,), {

      'ListSelectItem' : _reflection.GeneratedProtocolMessageType('ListSelectItem', (_message.Message,), {

        'ListElement' : _reflection.GeneratedProtocolMessageType('ListElement', (_message.Message,), {
          'DESCRIPTOR' : _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT,
          '__module__' : 'vast_protobuf.substrait.algebra_pb2'
          # @@protoc_insertion_point(class_scope:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElement)
          })
        ,

        'ListSlice' : _reflection.GeneratedProtocolMessageType('ListSlice', (_message.Message,), {
          'DESCRIPTOR' : _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE,
          '__module__' : 'vast_protobuf.substrait.algebra_pb2'
          # @@protoc_insertion_point(class_scope:substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice)
          })
        ,
        'DESCRIPTOR' : _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.Expression.MaskExpression.ListSelect.ListSelectItem)
        })
      ,
      'DESCRIPTOR' : _EXPRESSION_MASKEXPRESSION_LISTSELECT,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.MaskExpression.ListSelect)
      })
    ,

    'MapSelect' : _reflection.GeneratedProtocolMessageType('MapSelect', (_message.Message,), {

      'MapKey' : _reflection.GeneratedProtocolMessageType('MapKey', (_message.Message,), {
        'DESCRIPTOR' : _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.Expression.MaskExpression.MapSelect.MapKey)
        })
      ,

      'MapKeyExpression' : _reflection.GeneratedProtocolMessageType('MapKeyExpression', (_message.Message,), {
        'DESCRIPTOR' : _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION,
        '__module__' : 'vast_protobuf.substrait.algebra_pb2'
        # @@protoc_insertion_point(class_scope:substrait.Expression.MaskExpression.MapSelect.MapKeyExpression)
        })
      ,
      'DESCRIPTOR' : _EXPRESSION_MASKEXPRESSION_MAPSELECT,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.MaskExpression.MapSelect)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_MASKEXPRESSION,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.MaskExpression)
    })
  ,

  'FieldReference' : _reflection.GeneratedProtocolMessageType('FieldReference', (_message.Message,), {

    'RootReference' : _reflection.GeneratedProtocolMessageType('RootReference', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.FieldReference.RootReference)
      })
    ,

    'OuterReference' : _reflection.GeneratedProtocolMessageType('OuterReference', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.FieldReference.OuterReference)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_FIELDREFERENCE,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.FieldReference)
    })
  ,

  'Subquery' : _reflection.GeneratedProtocolMessageType('Subquery', (_message.Message,), {

    'Scalar' : _reflection.GeneratedProtocolMessageType('Scalar', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_SUBQUERY_SCALAR,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Subquery.Scalar)
      })
    ,

    'InPredicate' : _reflection.GeneratedProtocolMessageType('InPredicate', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_SUBQUERY_INPREDICATE,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Subquery.InPredicate)
      })
    ,

    'SetPredicate' : _reflection.GeneratedProtocolMessageType('SetPredicate', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_SUBQUERY_SETPREDICATE,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Subquery.SetPredicate)
      })
    ,

    'SetComparison' : _reflection.GeneratedProtocolMessageType('SetComparison', (_message.Message,), {
      'DESCRIPTOR' : _EXPRESSION_SUBQUERY_SETCOMPARISON,
      '__module__' : 'vast_protobuf.substrait.algebra_pb2'
      # @@protoc_insertion_point(class_scope:substrait.Expression.Subquery.SetComparison)
      })
    ,
    'DESCRIPTOR' : _EXPRESSION_SUBQUERY,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.Expression.Subquery)
    })
  ,
  'DESCRIPTOR' : _EXPRESSION,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.Expression)
  })
_sym_db.RegisterMessage(Expression)
_sym_db.RegisterMessage(Expression.Enum)
_sym_db.RegisterMessage(Expression.Enum.Empty)
_sym_db.RegisterMessage(Expression.Literal)
_sym_db.RegisterMessage(Expression.Literal.VarChar)
_sym_db.RegisterMessage(Expression.Literal.Decimal)
_sym_db.RegisterMessage(Expression.Literal.Map)
_sym_db.RegisterMessage(Expression.Literal.Map.KeyValue)
_sym_db.RegisterMessage(Expression.Literal.IntervalYearToMonth)
_sym_db.RegisterMessage(Expression.Literal.IntervalDayToSecond)
_sym_db.RegisterMessage(Expression.Literal.Struct)
_sym_db.RegisterMessage(Expression.Literal.List)
_sym_db.RegisterMessage(Expression.Literal.UserDefined)
_sym_db.RegisterMessage(Expression.Nested)
_sym_db.RegisterMessage(Expression.Nested.Map)
_sym_db.RegisterMessage(Expression.Nested.Map.KeyValue)
_sym_db.RegisterMessage(Expression.Nested.Struct)
_sym_db.RegisterMessage(Expression.Nested.List)
_sym_db.RegisterMessage(Expression.ScalarFunction)
_sym_db.RegisterMessage(Expression.WindowFunction)
_sym_db.RegisterMessage(Expression.WindowFunction.Bound)
_sym_db.RegisterMessage(Expression.WindowFunction.Bound.Preceding)
_sym_db.RegisterMessage(Expression.WindowFunction.Bound.Following)
_sym_db.RegisterMessage(Expression.WindowFunction.Bound.CurrentRow)
_sym_db.RegisterMessage(Expression.WindowFunction.Bound.Unbounded_Preceding)
_sym_db.RegisterMessage(Expression.WindowFunction.Bound.Unbounded_Following)
_sym_db.RegisterMessage(Expression.IfThen)
_sym_db.RegisterMessage(Expression.IfThen.IfClause)
_sym_db.RegisterMessage(Expression.Cast)
_sym_db.RegisterMessage(Expression.SwitchExpression)
_sym_db.RegisterMessage(Expression.SwitchExpression.IfValue)
_sym_db.RegisterMessage(Expression.SingularOrList)
_sym_db.RegisterMessage(Expression.MultiOrList)
_sym_db.RegisterMessage(Expression.MultiOrList.Record)
_sym_db.RegisterMessage(Expression.EmbeddedFunction)
_sym_db.RegisterMessage(Expression.EmbeddedFunction.PythonPickleFunction)
_sym_db.RegisterMessage(Expression.EmbeddedFunction.WebAssemblyFunction)
_sym_db.RegisterMessage(Expression.ReferenceSegment)
_sym_db.RegisterMessage(Expression.ReferenceSegment.MapKey)
_sym_db.RegisterMessage(Expression.ReferenceSegment.StructField)
_sym_db.RegisterMessage(Expression.ReferenceSegment.ListElement)
_sym_db.RegisterMessage(Expression.MaskExpression)
_sym_db.RegisterMessage(Expression.MaskExpression.Select)
_sym_db.RegisterMessage(Expression.MaskExpression.StructSelect)
_sym_db.RegisterMessage(Expression.MaskExpression.StructItem)
_sym_db.RegisterMessage(Expression.MaskExpression.ListSelect)
_sym_db.RegisterMessage(Expression.MaskExpression.ListSelect.ListSelectItem)
_sym_db.RegisterMessage(Expression.MaskExpression.ListSelect.ListSelectItem.ListElement)
_sym_db.RegisterMessage(Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice)
_sym_db.RegisterMessage(Expression.MaskExpression.MapSelect)
_sym_db.RegisterMessage(Expression.MaskExpression.MapSelect.MapKey)
_sym_db.RegisterMessage(Expression.MaskExpression.MapSelect.MapKeyExpression)
_sym_db.RegisterMessage(Expression.FieldReference)
_sym_db.RegisterMessage(Expression.FieldReference.RootReference)
_sym_db.RegisterMessage(Expression.FieldReference.OuterReference)
_sym_db.RegisterMessage(Expression.Subquery)
_sym_db.RegisterMessage(Expression.Subquery.Scalar)
_sym_db.RegisterMessage(Expression.Subquery.InPredicate)
_sym_db.RegisterMessage(Expression.Subquery.SetPredicate)
_sym_db.RegisterMessage(Expression.Subquery.SetComparison)

GenerateRel = _reflection.GeneratedProtocolMessageType('GenerateRel', (_message.Message,), {
  'DESCRIPTOR' : _GENERATEREL,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.GenerateRel)
  })
_sym_db.RegisterMessage(GenerateRel)

SortField = _reflection.GeneratedProtocolMessageType('SortField', (_message.Message,), {
  'DESCRIPTOR' : _SORTFIELD,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.SortField)
  })
_sym_db.RegisterMessage(SortField)

AggregateFunction = _reflection.GeneratedProtocolMessageType('AggregateFunction', (_message.Message,), {

  'ReferenceRel' : _reflection.GeneratedProtocolMessageType('ReferenceRel', (_message.Message,), {
    'DESCRIPTOR' : _AGGREGATEFUNCTION_REFERENCEREL,
    '__module__' : 'vast_protobuf.substrait.algebra_pb2'
    # @@protoc_insertion_point(class_scope:substrait.AggregateFunction.ReferenceRel)
    })
  ,
  'DESCRIPTOR' : _AGGREGATEFUNCTION,
  '__module__' : 'vast_protobuf.substrait.algebra_pb2'
  # @@protoc_insertion_point(class_scope:substrait.AggregateFunction)
  })
_sym_db.RegisterMessage(AggregateFunction)
_sym_db.RegisterMessage(AggregateFunction.ReferenceRel)

if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  DESCRIPTOR._serialized_options = b'\n\022io.substrait.protoP\001Z*github.com/substrait-io/substrait-go/proto\252\002\022Substrait.Protobuf'
  _EXPRESSION_ENUM_EMPTY._options = None
  _EXPRESSION_ENUM_EMPTY._serialized_options = b'\030\001'
  _EXPRESSION_ENUM._options = None
  _EXPRESSION_ENUM._serialized_options = b'\030\001'
  _EXPRESSION_SCALARFUNCTION.fields_by_name['args']._options = None
  _EXPRESSION_SCALARFUNCTION.fields_by_name['args']._serialized_options = b'\030\001'
  _EXPRESSION_WINDOWFUNCTION.fields_by_name['args']._options = None
  _EXPRESSION_WINDOWFUNCTION.fields_by_name['args']._serialized_options = b'\030\001'
  _EXPRESSION.fields_by_name['enum']._options = None
  _EXPRESSION.fields_by_name['enum']._serialized_options = b'\030\001'
  _AGGREGATEFUNCTION.fields_by_name['args']._options = None
  _AGGREGATEFUNCTION.fields_by_name['args']._serialized_options = b'\030\001'
  _AGGREGATIONPHASE._serialized_start=20669
  _AGGREGATIONPHASE._serialized_end=20908
  _WINDOWTYPE._serialized_start=20910
  _WINDOWTYPE._serialized_end=20943
  _RELCOMMON._serialized_start=169
  _RELCOMMON._serialized_end=834
  _RELCOMMON_DIRECT._serialized_start=382
  _RELCOMMON_DIRECT._serialized_end=390
  _RELCOMMON_EMIT._serialized_start=392
  _RELCOMMON_EMIT._serialized_end=422
  _RELCOMMON_HINT._serialized_start=425
  _RELCOMMON_HINT._serialized_end=821
  _RELCOMMON_HINT_STATS._serialized_start=615
  _RELCOMMON_HINT_STATS._serialized_end=731
  _RELCOMMON_HINT_RUNTIMECONSTRAINT._serialized_start=733
  _RELCOMMON_HINT_RUNTIMECONSTRAINT._serialized_end=821
  _READREL._serialized_start=837
  _READREL._serialized_end=2477
  _READREL_NAMEDTABLE._serialized_start=1376
  _READREL_NAMEDTABLE._serialized_end=1472
  _READREL_VIRTUALTABLE._serialized_start=1474
  _READREL_VIRTUALTABLE._serialized_end=1542
  _READREL_EXTENSIONTABLE._serialized_start=1544
  _READREL_EXTENSIONTABLE._serialized_end=1598
  _READREL_LOCALFILES._serialized_start=1601
  _READREL_LOCALFILES._serialized_end=2464
  _READREL_LOCALFILES_FILEORFILES._serialized_start=1743
  _READREL_LOCALFILES_FILEORFILES._serialized_end=2464
  _READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS._serialized_start=2326
  _READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS._serialized_end=2346
  _READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS._serialized_start=2348
  _READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS._serialized_end=2366
  _READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS._serialized_start=2368
  _READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS._serialized_end=2384
  _READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS._serialized_start=2386
  _READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS._serialized_end=2403
  _READREL_LOCALFILES_FILEORFILES_VASTREADOPTIONS._serialized_start=2405
  _READREL_LOCALFILES_FILEORFILES_VASTREADOPTIONS._serialized_end=2422
  _PROJECTREL._serialized_start=2480
  _PROJECTREL._serialized_end=2674
  _JOINREL._serialized_start=2677
  _JOINREL._serialized_end=3205
  _JOINREL_JOINTYPE._serialized_start=2992
  _JOINREL_JOINTYPE._serialized_end=3205
  _CROSSREL._serialized_start=3208
  _CROSSREL._serialized_end=3386
  _FETCHREL._serialized_start=3389
  _FETCHREL._serialized_end=3568
  _AGGREGATEREL._serialized_start=3571
  _AGGREGATEREL._serialized_end=3989
  _AGGREGATEREL_GROUPING._serialized_start=3829
  _AGGREGATEREL_GROUPING._serialized_end=3892
  _AGGREGATEREL_MEASURE._serialized_start=3894
  _AGGREGATEREL_MEASURE._serialized_end=3989
  _SORTREL._serialized_start=3992
  _SORTREL._serialized_end=4176
  _WINDOWREL._serialized_start=4179
  _WINDOWREL._serialized_end=4533
  _WINDOWREL_MEASURE._serialized_start=4469
  _WINDOWREL_MEASURE._serialized_end=4533
  _FILTERREL._serialized_start=4536
  _FILTERREL._serialized_end=4727
  _SETREL._serialized_start=4730
  _SETREL._serialized_end=5117
  _SETREL_SETOP._serialized_start=4917
  _SETREL_SETOP._serialized_end=5117
  _EXTENSIONSINGLEREL._serialized_start=5119
  _EXTENSIONSINGLEREL._serialized_end=5246
  _EXTENSIONLEAFREL._serialized_start=5248
  _EXTENSIONLEAFREL._serialized_end=5342
  _EXTENSIONMULTIREL._serialized_start=5344
  _EXTENSIONMULTIREL._serialized_end=5471
  _EXCHANGEREL._serialized_start=5474
  _EXCHANGEREL._serialized_end=6437
  _EXCHANGEREL_SCATTERFIELDS._serialized_start=6030
  _EXCHANGEREL_SCATTERFIELDS._serialized_end=6099
  _EXCHANGEREL_SINGLEBUCKETEXPRESSION._serialized_start=6101
  _EXCHANGEREL_SINGLEBUCKETEXPRESSION._serialized_end=6168
  _EXCHANGEREL_MULTIBUCKETEXPRESSION._serialized_start=6170
  _EXCHANGEREL_MULTIBUCKETEXPRESSION._serialized_end=6266
  _EXCHANGEREL_BROADCAST._serialized_start=6268
  _EXCHANGEREL_BROADCAST._serialized_end=6279
  _EXCHANGEREL_ROUNDROBIN._serialized_start=6281
  _EXCHANGEREL_ROUNDROBIN._serialized_end=6308
  _EXCHANGEREL_EXCHANGETARGET._serialized_start=6310
  _EXCHANGEREL_EXCHANGETARGET._serialized_end=6420
  _EXPANDREL._serialized_start=6440
  _EXPANDREL._serialized_end=6845
  _EXPANDREL_EXPANDFIELD._serialized_start=6642
  _EXPANDREL_EXPANDFIELD._serialized_end=6784
  _EXPANDREL_SWITCHINGFIELD._serialized_start=6786
  _EXPANDREL_SWITCHINGFIELD._serialized_end=6845
  _RELROOT._serialized_start=6847
  _RELROOT._serialized_end=6902
  _REL._serialized_start=6905
  _REL._serialized_end=7655
  _NAMEDOBJECTWRITE._serialized_start=7657
  _NAMEDOBJECTWRITE._serialized_end=7759
  _EXTENSIONOBJECT._serialized_start=7761
  _EXTENSIONOBJECT._serialized_end=7816
  _DDLREL._serialized_start=7819
  _DDLREL._serialized_end=8409
  _DDLREL_DDLOBJECT._serialized_start=8169
  _DDLREL_DDLOBJECT._serialized_end=8251
  _DDLREL_DDLOP._serialized_start=8254
  _DDLREL_DDLOP._serialized_end=8395
  _WRITEREL._serialized_start=8412
  _WRITEREL._serialized_end=8931
  _WRITEREL_WRITEOP._serialized_start=8697
  _WRITEREL_WRITEOP._serialized_end=8814
  _WRITEREL_OUTPUTMODE._serialized_start=8816
  _WRITEREL_OUTPUTMODE._serialized_end=8917
  _HASHJOINREL._serialized_start=8934
  _HASHJOINREL._serialized_end=9551
  _HASHJOINREL_JOINTYPE._serialized_start=9329
  _HASHJOINREL_JOINTYPE._serialized_end=9551
  _MERGEJOINREL._serialized_start=9554
  _MERGEJOINREL._serialized_end=10173
  _MERGEJOINREL_JOINTYPE._serialized_start=9329
  _MERGEJOINREL_JOINTYPE._serialized_end=9551
  _FUNCTIONARGUMENT._serialized_start=10175
  _FUNCTIONARGUMENT._serialized_end=10294
  _FUNCTIONOPTION._serialized_start=10296
  _FUNCTIONOPTION._serialized_end=10346
  _EXPRESSION._serialized_start=10349
  _EXPRESSION._serialized_end=19474
  _EXPRESSION_ENUM._serialized_start=11038
  _EXPRESSION_ENUM._serialized_end=11152
  _EXPRESSION_ENUM_EMPTY._serialized_start=11124
  _EXPRESSION_ENUM_EMPTY._serialized_end=11135
  _EXPRESSION_LITERAL._serialized_start=11155
  _EXPRESSION_LITERAL._serialized_end=12794
  _EXPRESSION_LITERAL_VARCHAR._serialized_start=12134
  _EXPRESSION_LITERAL_VARCHAR._serialized_end=12174
  _EXPRESSION_LITERAL_DECIMAL._serialized_start=12176
  _EXPRESSION_LITERAL_DECIMAL._serialized_end=12234
  _EXPRESSION_LITERAL_MAP._serialized_start=12237
  _EXPRESSION_LITERAL_MAP._serialized_end=12408
  _EXPRESSION_LITERAL_MAP_KEYVALUE._serialized_start=12308
  _EXPRESSION_LITERAL_MAP_KEYVALUE._serialized_end=12408
  _EXPRESSION_LITERAL_INTERVALYEARTOMONTH._serialized_start=12410
  _EXPRESSION_LITERAL_INTERVALYEARTOMONTH._serialized_end=12462
  _EXPRESSION_LITERAL_INTERVALDAYTOSECOND._serialized_start=12464
  _EXPRESSION_LITERAL_INTERVALDAYTOSECOND._serialized_end=12538
  _EXPRESSION_LITERAL_STRUCT._serialized_start=12540
  _EXPRESSION_LITERAL_STRUCT._serialized_end=12595
  _EXPRESSION_LITERAL_LIST._serialized_start=12597
  _EXPRESSION_LITERAL_LIST._serialized_end=12650
  _EXPRESSION_LITERAL_USERDEFINED._serialized_start=12652
  _EXPRESSION_LITERAL_USERDEFINED._serialized_end=12778
  _EXPRESSION_NESTED._serialized_start=12797
  _EXPRESSION_NESTED._serialized_end=13280
  _EXPRESSION_NESTED_MAP._serialized_start=13015
  _EXPRESSION_NESTED_MAP._serialized_end=13169
  _EXPRESSION_NESTED_MAP_KEYVALUE._serialized_start=13085
  _EXPRESSION_NESTED_MAP_KEYVALUE._serialized_end=13169
  _EXPRESSION_NESTED_STRUCT._serialized_start=13171
  _EXPRESSION_NESTED_STRUCT._serialized_end=13218
  _EXPRESSION_NESTED_LIST._serialized_start=13220
  _EXPRESSION_NESTED_LIST._serialized_end=13265
  _EXPRESSION_SCALARFUNCTION._serialized_start=13283
  _EXPRESSION_SCALARFUNCTION._serialized_end=13498
  _EXPRESSION_WINDOWFUNCTION._serialized_start=13501
  _EXPRESSION_WINDOWFUNCTION._serialized_end=14661
  _EXPRESSION_WINDOWFUNCTION_BOUND._serialized_start=14110
  _EXPRESSION_WINDOWFUNCTION_BOUND._serialized_end=14661
  _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING._serialized_start=14537
  _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING._serialized_end=14564
  _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING._serialized_start=14566
  _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING._serialized_end=14593
  _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW._serialized_start=14595
  _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW._serialized_end=14607
  _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED_PRECEDING._serialized_start=14609
  _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED_PRECEDING._serialized_end=14630
  _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED_FOLLOWING._serialized_start=14632
  _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED_FOLLOWING._serialized_end=14653
  _EXPRESSION_IFTHEN._serialized_start=14664
  _EXPRESSION_IFTHEN._serialized_end=14845
  _EXPRESSION_IFTHEN_IFCLAUSE._serialized_start=14763
  _EXPRESSION_IFTHEN_IFCLAUSE._serialized_end=14845
  _EXPRESSION_CAST._serialized_start=14848
  _EXPRESSION_CAST._serialized_end=15118
  _EXPRESSION_CAST_FAILUREBEHAVIOR._serialized_start=14995
  _EXPRESSION_CAST_FAILUREBEHAVIOR._serialized_end=15118
  _EXPRESSION_SWITCHEXPRESSION._serialized_start=15121
  _EXPRESSION_SWITCHEXPRESSION._serialized_end=15366
  _EXPRESSION_SWITCHEXPRESSION_IFVALUE._serialized_start=15277
  _EXPRESSION_SWITCHEXPRESSION_IFVALUE._serialized_end=15366
  _EXPRESSION_SINGULARORLIST._serialized_start=15368
  _EXPRESSION_SINGULARORLIST._serialized_end=15462
  _EXPRESSION_MULTIORLIST._serialized_start=15465
  _EXPRESSION_MULTIORLIST._serialized_end=15624
  _EXPRESSION_MULTIORLIST_RECORD._serialized_start=15577
  _EXPRESSION_MULTIORLIST_RECORD._serialized_end=15624
  _EXPRESSION_EMBEDDEDFUNCTION._serialized_start=15627
  _EXPRESSION_EMBEDDEDFUNCTION._serialized_end=16046
  _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION._serialized_start=15915
  _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION._serialized_end=15977
  _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION._serialized_start=15979
  _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION._serialized_end=16038
  _EXPRESSION_REFERENCESEGMENT._serialized_start=16049
  _EXPRESSION_REFERENCESEGMENT._serialized_end=16587
  _EXPRESSION_REFERENCESEGMENT_MAPKEY._serialized_start=16287
  _EXPRESSION_REFERENCESEGMENT_MAPKEY._serialized_end=16398
  _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD._serialized_start=16400
  _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD._serialized_end=16483
  _EXPRESSION_REFERENCESEGMENT_LISTELEMENT._serialized_start=16485
  _EXPRESSION_REFERENCESEGMENT_LISTELEMENT._serialized_end=16569
  _EXPRESSION_MASKEXPRESSION._serialized_start=16590
  _EXPRESSION_MASKEXPRESSION._serialized_end=17854
  _EXPRESSION_MASKEXPRESSION_SELECT._serialized_start=16710
  _EXPRESSION_MASKEXPRESSION_SELECT._serialized_end=16923
  _EXPRESSION_MASKEXPRESSION_STRUCTSELECT._serialized_start=16925
  _EXPRESSION_MASKEXPRESSION_STRUCTSELECT._serialized_end=17010
  _EXPRESSION_MASKEXPRESSION_STRUCTITEM._serialized_start=17012
  _EXPRESSION_MASKEXPRESSION_STRUCTITEM._serialized_end=17099
  _EXPRESSION_MASKEXPRESSION_LISTSELECT._serialized_start=17102
  _EXPRESSION_MASKEXPRESSION_LISTSELECT._serialized_end=17538
  _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM._serialized_start=17260
  _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM._serialized_end=17538
  _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT._serialized_start=17461
  _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT._serialized_end=17489
  _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE._serialized_start=17491
  _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE._serialized_end=17530
  _EXPRESSION_MASKEXPRESSION_MAPSELECT._serialized_start=17541
  _EXPRESSION_MASKEXPRESSION_MAPSELECT._serialized_end=17854
  _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY._serialized_start=17771
  _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY._serialized_end=17796
  _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION._serialized_start=17798
  _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION._serialized_end=17844
  _EXPRESSION_FIELDREFERENCE._serialized_start=17857
  _EXPRESSION_FIELDREFERENCE._serialized_end=18295
  _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE._serialized_start=18212
  _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE._serialized_end=18227
  _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE._serialized_start=18229
  _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE._serialized_end=18264
  _EXPRESSION_SUBQUERY._serialized_start=18298
  _EXPRESSION_SUBQUERY._serialized_end=19462
  _EXPRESSION_SUBQUERY_SCALAR._serialized_start=18577
  _EXPRESSION_SUBQUERY_SCALAR._serialized_end=18616
  _EXPRESSION_SUBQUERY_INPREDICATE._serialized_start=18618
  _EXPRESSION_SUBQUERY_INPREDICATE._serialized_end=18705
  _EXPRESSION_SUBQUERY_SETPREDICATE._serialized_start=18708
  _EXPRESSION_SUBQUERY_SETPREDICATE._serialized_end=18928
  _EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP._serialized_start=18835
  _EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP._serialized_end=18928
  _EXPRESSION_SUBQUERY_SETCOMPARISON._serialized_start=18931
  _EXPRESSION_SUBQUERY_SETCOMPARISON._serialized_end=19445
  _EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP._serialized_start=19179
  _EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP._serialized_end=19356
  _EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP._serialized_start=19358
  _EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP._serialized_end=19445
  _GENERATEREL._serialized_start=19477
  _GENERATEREL._serialized_end=19730
  _SORTFIELD._serialized_start=19733
  _SORTFIELD._serialized_end=20116
  _SORTFIELD_SORTDIRECTION._serialized_start=19882
  _SORTFIELD_SORTDIRECTION._serialized_end=20103
  _AGGREGATEFUNCTION._serialized_start=20119
  _AGGREGATEFUNCTION._serialized_end=20666
  _AGGREGATEFUNCTION_REFERENCEREL._serialized_start=20492
  _AGGREGATEFUNCTION_REFERENCEREL._serialized_end=20531
  _AGGREGATEFUNCTION_AGGREGATIONINVOCATION._serialized_start=20534
  _AGGREGATEFUNCTION_AGGREGATIONINVOCATION._serialized_end=20666
# @@protoc_insertion_point(module_scope)
