diff --git a/ibis_substrait/proto/substrait/__init__.pyi b/ibis_substrait/proto/substrait/__init__.pyi index c97e102f..b96c56f6 100644 --- a/ibis_substrait/proto/substrait/__init__.pyi +++ b/ibis_substrait/proto/substrait/__init__.pyi @@ -1,8 +1,8 @@ -from . import parameterized_types_pb2 -from . import capabilities_pb2 +from . import extensions from . import function_pb2 from . import plan_pb2 +from . import capabilities_pb2 from . import type_pb2 +from . import parameterized_types_pb2 from . import algebra_pb2 from . import type_expressions_pb2 -from . import extensions diff --git a/ibis_substrait/proto/substrait/algebra_pb2.py b/ibis_substrait/proto/substrait/algebra_pb2.py index 3b4a1a03..8518b97f 100644 --- a/ibis_substrait/proto/substrait/algebra_pb2.py +++ b/ibis_substrait/proto/substrait/algebra_pb2.py @@ -6,10 +6,11 @@ from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database _sym_db = _symbol_database.Default() -from ..substrait import type_pb2 as substrait_dot_type__pb2 -from ..substrait.extensions import extensions_pb2 as substrait_dot_extensions_dot_extensions__pb2 from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17substrait/algebra.proto\x12\tsubstrait\x1a\x14substrait/type.proto\x1a%substrait/extensions/extensions.proto\x1a\x19google/protobuf/any.proto"\xb2\x06\n\tRelCommon\x125\n\x06direct\x18\x01 \x01(\x0b2\x1b.substrait.RelCommon.DirectH\x00R\x06direct\x12/\n\x04emit\x18\x02 \x01(\x0b2\x19.substrait.RelCommon.EmitH\x00R\x04emit\x12-\n\x04hint\x18\x03 \x01(\x0b2\x19.substrait.RelCommon.HintR\x04hint\x12V\n\x12advanced_extension\x18\x04 \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x08\n\x06Direct\x1a-\n\x04Emit\x12%\n\x0eoutput_mapping\x18\x01 \x03(\x05R\routputMapping\x1a\xef\x03\n\x04Hint\x125\n\x05stats\x18\x01 \x01(\x0b2\x1f.substrait.RelCommon.Hint.StatsR\x05stats\x12K\n\nconstraint\x18\x02 \x01(\x0b2+.substrait.RelCommon.Hint.RuntimeConstraintR\nconstraint\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x9d\x01\n\x05Stats\x12\x1b\n\trow_count\x18\x01 \x01(\x01R\x08rowCount\x12\x1f\n\x0brecord_size\x18\x02 \x01(\x01R\nrecordSize\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1ak\n\x11RuntimeConstraint\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtensionB\x0b\n\temit_kind"\x9d\x0b\n\x07ReadRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x127\n\x0bbase_schema\x18\x02 \x01(\x0b2\x16.substrait.NamedStructR\nbaseSchema\x12-\n\x06filter\x18\x03 \x01(\x0b2\x15.substrait.ExpressionR\x06filter\x12D\n\nprojection\x18\x04 \x01(\x0b2$.substrait.Expression.MaskExpressionR\nprojection\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x12F\n\rvirtual_table\x18\x05 \x01(\x0b2\x1f.substrait.ReadRel.VirtualTableH\x00R\x0cvirtualTable\x12@\n\x0blocal_files\x18\x06 \x01(\x0b2\x1d.substrait.ReadRel.LocalFilesH\x00R\nlocalFiles\x12@\n\x0bnamed_table\x18\x07 \x01(\x0b2\x1d.substrait.ReadRel.NamedTableH\x00R\nnamedTable\x12L\n\x0fextension_table\x18\x08 \x01(\x0b2!.substrait.ReadRel.ExtensionTableH\x00R\x0eextensionTable\x1az\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1aL\n\x0cVirtualTable\x12<\n\x06values\x18\x01 \x03(\x0b2$.substrait.Expression.Literal.StructR\x06values\x1a>\n\x0eExtensionTable\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail\x1a\xac\x04\n\nLocalFiles\x12?\n\x05items\x18\x01 \x03(\x0b2).substrait.ReadRel.LocalFiles.FileOrFilesR\x05items\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x84\x03\n\x0bFileOrFiles\x12\x1b\n\x08uri_path\x18\x01 \x01(\tH\x00R\x07uriPath\x12$\n\ruri_path_glob\x18\x02 \x01(\tH\x00R\x0buriPathGlob\x12\x1b\n\x08uri_file\x18\x03 \x01(\tH\x00R\x07uriFile\x12\x1f\n\nuri_folder\x18\x04 \x01(\tH\x00R\turiFolder\x12L\n\x06format\x18\x05 \x01(\x0e24.substrait.ReadRel.LocalFiles.FileOrFiles.FileFormatR\x06format\x12\'\n\x0fpartition_index\x18\x06 \x01(\x04R\x0epartitionIndex\x12\x14\n\x05start\x18\x07 \x01(\x04R\x05start\x12\x16\n\x06length\x18\x08 \x01(\x04R\x06length"B\n\nFileFormat\x12\x1b\n\x17FILE_FORMAT_UNSPECIFIED\x10\x00\x12\x17\n\x13FILE_FORMAT_PARQUET\x10\x01B\x0b\n\tpath_typeB\x0b\n\tread_type"\xf1\x01\n\nProjectRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x127\n\x0bexpressions\x18\x03 \x03(\x0b2\x15.substrait.ExpressionR\x0bexpressions\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xbb\x04\n\x07JoinRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12"\n\x04left\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x04left\x12$\n\x05right\x18\x03 \x01(\x0b2\x0e.substrait.RelR\x05right\x125\n\nexpression\x18\x04 \x01(\x0b2\x15.substrait.ExpressionR\nexpression\x12?\n\x10post_join_filter\x18\x05 \x01(\x0b2\x15.substrait.ExpressionR\x0epostJoinFilter\x12/\n\x04type\x18\x06 \x01(\x0e2\x1b.substrait.JoinRel.JoinTypeR\x04type\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xb6\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\x12\n\x0eJOIN_TYPE_SEMI\x10\x05\x12\x12\n\x0eJOIN_TYPE_ANTI\x10\x06\x12\x14\n\x10JOIN_TYPE_SINGLE\x10\x07"\xda\x01\n\x08CrossRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12"\n\x04left\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x04left\x12$\n\x05right\x18\x03 \x01(\x0b2\x0e.substrait.RelR\x05right\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xe4\x01\n\x08FetchRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x12\x16\n\x06offset\x18\x03 \x01(\x03R\x06offset\x12\x14\n\x05count\x18\x04 \x01(\x03R\x05count\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xff\x03\n\x0cAggregateRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x12>\n\tgroupings\x18\x03 \x03(\x0b2 .substrait.AggregateRel.GroupingR\tgroupings\x12;\n\x08measures\x18\x04 \x03(\x0b2\x1f.substrait.AggregateRel.MeasureR\x08measures\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1aT\n\x08Grouping\x12H\n\x14grouping_expressions\x18\x01 \x03(\x0b2\x15.substrait.ExpressionR\x13groupingExpressions\x1ap\n\x07Measure\x126\n\x07measure\x18\x01 \x01(\x0b2\x1c.substrait.AggregateFunctionR\x07measure\x12-\n\x06filter\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x06filter"\xe1\x01\n\x07SortRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x12*\n\x05sorts\x18\x03 \x03(\x0b2\x14.substrait.SortFieldR\x05sorts\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xec\x01\n\tFilterRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x123\n\tcondition\x18\x03 \x01(\x0b2\x15.substrait.ExpressionR\tcondition\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xaa\x03\n\x06SetRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12&\n\x06inputs\x18\x02 \x03(\x0b2\x0e.substrait.RelR\x06inputs\x12\'\n\x02op\x18\x03 \x01(\x0e2\x17.substrait.SetRel.SetOpR\x02op\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\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"\x96\x01\n\x12ExtensionSingleRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"n\n\x10ExtensionLeafRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12,\n\x06detail\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x97\x01\n\x11ExtensionMultiRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12&\n\x06inputs\x18\x02 \x03(\x0b2\x0e.substrait.RelR\x06inputs\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"E\n\x07RelRoot\x12$\n\x05input\x18\x01 \x01(\x0b2\x0e.substrait.RelR\x05input\x12\x14\n\x05names\x18\x02 \x03(\tR\x05names"\x87\x05\n\x03Rel\x12(\n\x04read\x18\x01 \x01(\x0b2\x12.substrait.ReadRelH\x00R\x04read\x12.\n\x06filter\x18\x02 \x01(\x0b2\x14.substrait.FilterRelH\x00R\x06filter\x12+\n\x05fetch\x18\x03 \x01(\x0b2\x13.substrait.FetchRelH\x00R\x05fetch\x127\n\taggregate\x18\x04 \x01(\x0b2\x17.substrait.AggregateRelH\x00R\taggregate\x12(\n\x04sort\x18\x05 \x01(\x0b2\x12.substrait.SortRelH\x00R\x04sort\x12(\n\x04join\x18\x06 \x01(\x0b2\x12.substrait.JoinRelH\x00R\x04join\x121\n\x07project\x18\x07 \x01(\x0b2\x15.substrait.ProjectRelH\x00R\x07project\x12%\n\x03set\x18\x08 \x01(\x0b2\x11.substrait.SetRelH\x00R\x03set\x12J\n\x10extension_single\x18\t \x01(\x0b2\x1d.substrait.ExtensionSingleRelH\x00R\x0fextensionSingle\x12G\n\x0fextension_multi\x18\n \x01(\x0b2\x1c.substrait.ExtensionMultiRelH\x00R\x0eextensionMulti\x12D\n\x0eextension_leaf\x18\x0b \x01(\x0b2\x1b.substrait.ExtensionLeafRelH\x00R\rextensionLeaf\x12+\n\x05cross\x18\x0c \x01(\x0b2\x13.substrait.CrossRelH\x00R\x05crossB\n\n\x08rel_type"\x9eF\n\nExpression\x129\n\x07literal\x18\x01 \x01(\x0b2\x1d.substrait.Expression.LiteralH\x00R\x07literal\x12D\n\tselection\x18\x02 \x01(\x0b2$.substrait.Expression.FieldReferenceH\x00R\tselection\x12O\n\x0fscalar_function\x18\x03 \x01(\x0b2$.substrait.Expression.ScalarFunctionH\x00R\x0escalarFunction\x12O\n\x0fwindow_function\x18\x05 \x01(\x0b2$.substrait.Expression.WindowFunctionH\x00R\x0ewindowFunction\x127\n\x07if_then\x18\x06 \x01(\x0b2\x1c.substrait.Expression.IfThenH\x00R\x06ifThen\x12U\n\x11switch_expression\x18\x07 \x01(\x0b2&.substrait.Expression.SwitchExpressionH\x00R\x10switchExpression\x12P\n\x10singular_or_list\x18\x08 \x01(\x0b2$.substrait.Expression.SingularOrListH\x00R\x0esingularOrList\x12G\n\rmulti_or_list\x18\t \x01(\x0b2!.substrait.Expression.MultiOrListH\x00R\x0bmultiOrList\x120\n\x04enum\x18\n \x01(\x0b2\x1a.substrait.Expression.EnumH\x00R\x04enum\x120\n\x04cast\x18\x0b \x01(\x0b2\x1a.substrait.Expression.CastH\x00R\x04cast\x12<\n\x08subquery\x18\x0c \x01(\x0b2\x1e.substrait.Expression.SubqueryH\x00R\x08subquery\x1a\x82\x01\n\x04Enum\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12D\n\x0bunspecified\x18\x02 \x01(\x0b2 .substrait.Expression.Enum.EmptyH\x00R\x0bunspecified\x1a\x07\n\x05EmptyB\x0b\n\tenum_kind\x1a\xc7\r\n\x07Literal\x12\x1a\n\x07boolean\x18\x01 \x01(\x08H\x00R\x07boolean\x12\x10\n\x02i8\x18\x02 \x01(\x05H\x00R\x02i8\x12\x12\n\x03i16\x18\x03 \x01(\x05H\x00R\x03i16\x12\x12\n\x03i32\x18\x05 \x01(\x05H\x00R\x03i32\x12\x12\n\x03i64\x18\x07 \x01(\x03H\x00R\x03i64\x12\x14\n\x04fp32\x18\n \x01(\x02H\x00R\x04fp32\x12\x14\n\x04fp64\x18\x0b \x01(\x01H\x00R\x04fp64\x12\x18\n\x06string\x18\x0c \x01(\tH\x00R\x06string\x12\x18\n\x06binary\x18\r \x01(\x0cH\x00R\x06binary\x12\x1e\n\ttimestamp\x18\x0e \x01(\x03H\x00R\ttimestamp\x12\x14\n\x04date\x18\x10 \x01(\x05H\x00R\x04date\x12\x14\n\x04time\x18\x11 \x01(\x03H\x00R\x04time\x12h\n\x16interval_year_to_month\x18\x13 \x01(\x0b21.substrait.Expression.Literal.IntervalYearToMonthH\x00R\x13intervalYearToMonth\x12h\n\x16interval_day_to_second\x18\x14 \x01(\x0b21.substrait.Expression.Literal.IntervalDayToSecondH\x00R\x13intervalDayToSecond\x12\x1f\n\nfixed_char\x18\x15 \x01(\tH\x00R\tfixedChar\x12B\n\x08var_char\x18\x16 \x01(\x0b2%.substrait.Expression.Literal.VarCharH\x00R\x07varChar\x12#\n\x0cfixed_binary\x18\x17 \x01(\x0cH\x00R\x0bfixedBinary\x12A\n\x07decimal\x18\x18 \x01(\x0b2%.substrait.Expression.Literal.DecimalH\x00R\x07decimal\x12>\n\x06struct\x18\x19 \x01(\x0b2$.substrait.Expression.Literal.StructH\x00R\x06struct\x125\n\x03map\x18\x1a \x01(\x0b2!.substrait.Expression.Literal.MapH\x00R\x03map\x12#\n\x0ctimestamp_tz\x18\x1b \x01(\x03H\x00R\x0btimestampTz\x12\x14\n\x04uuid\x18\x1c \x01(\x0cH\x00R\x04uuid\x12%\n\x04null\x18\x1d \x01(\x0b2\x0f.substrait.TypeH\x00R\x04null\x128\n\x04list\x18\x1e \x01(\x0b2".substrait.Expression.Literal.ListH\x00R\x04list\x125\n\nempty_list\x18\x1f \x01(\x0b2\x14.substrait.Type.ListH\x00R\temptyList\x122\n\tempty_map\x18 \x01(\x0b2\x13.substrait.Type.MapH\x00R\x08emptyMap\x12\x1a\n\x08nullable\x182 \x01(\x08R\x08nullable\x1a7\n\x07VarChar\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x12\x16\n\x06length\x18\x02 \x01(\rR\x06length\x1aS\n\x07Decimal\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x14\n\x05scale\x18\x03 \x01(\x05R\x05scale\x1a\xc2\x01\n\x03Map\x12I\n\nkey_values\x18\x01 \x03(\x0b2*.substrait.Expression.Literal.Map.KeyValueR\tkeyValues\x1ap\n\x08KeyValue\x12/\n\x03key\x18\x01 \x01(\x0b2\x1d.substrait.Expression.LiteralR\x03key\x123\n\x05value\x18\x02 \x01(\x0b2\x1d.substrait.Expression.LiteralR\x05value\x1aC\n\x13IntervalYearToMonth\x12\x14\n\x05years\x18\x01 \x01(\x05R\x05years\x12\x16\n\x06months\x18\x02 \x01(\x05R\x06months\x1aC\n\x13IntervalDayToSecond\x12\x12\n\x04days\x18\x01 \x01(\x05R\x04days\x12\x18\n\x07seconds\x18\x02 \x01(\x05R\x07seconds\x1a?\n\x06Struct\x125\n\x06fields\x18\x01 \x03(\x0b2\x1d.substrait.Expression.LiteralR\x06fields\x1a=\n\x04List\x125\n\x06values\x18\x01 \x03(\x0b2\x1d.substrait.Expression.LiteralR\x06valuesB\x0e\n\x0cliteral_type\x1a\x9c\x01\n\x0eScalarFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x12)\n\x04args\x18\x02 \x03(\x0b2\x15.substrait.ExpressionR\x04args\x120\n\x0boutput_type\x18\x03 \x01(\x0b2\x0f.substrait.TypeR\noutputType\x1a\x9f\x07\n\x0eWindowFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\npartitions\x18\x02 \x03(\x0b2\x15.substrait.ExpressionR\npartitions\x12*\n\x05sorts\x18\x03 \x03(\x0b2\x14.substrait.SortFieldR\x05sorts\x12K\n\x0bupper_bound\x18\x04 \x01(\x0b2*.substrait.Expression.WindowFunction.BoundR\nupperBound\x12K\n\x0blower_bound\x18\x05 \x01(\x0b2*.substrait.Expression.WindowFunction.BoundR\nlowerBound\x121\n\x05phase\x18\x06 \x01(\x0e2\x1b.substrait.AggregationPhaseR\x05phase\x120\n\x0boutput_type\x18\x07 \x01(\x0b2\x0f.substrait.TypeR\noutputType\x12)\n\x04args\x18\x08 \x03(\x0b2\x15.substrait.ExpressionR\x04args\x1a\xd0\x03\n\x05Bound\x12T\n\tpreceding\x18\x01 \x01(\x0b24.substrait.Expression.WindowFunction.Bound.PrecedingH\x00R\tpreceding\x12T\n\tfollowing\x18\x02 \x01(\x0b24.substrait.Expression.WindowFunction.Bound.FollowingH\x00R\tfollowing\x12X\n\x0bcurrent_row\x18\x03 \x01(\x0b25.substrait.Expression.WindowFunction.Bound.CurrentRowH\x00R\ncurrentRow\x12T\n\tunbounded\x18\x04 \x01(\x0b24.substrait.Expression.WindowFunction.Bound.UnboundedH\x00R\tunbounded\x1a#\n\tPreceding\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a#\n\tFollowing\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a\x0c\n\nCurrentRow\x1a\x0b\n\tUnboundedB\x06\n\x04kind\x1a\xca\x01\n\x06IfThen\x127\n\x03ifs\x18\x01 \x03(\x0b2%.substrait.Expression.IfThen.IfClauseR\x03ifs\x12)\n\x04else\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x04else\x1a\\\n\x08IfClause\x12%\n\x02if\x18\x01 \x01(\x0b2\x15.substrait.ExpressionR\x02if\x12)\n\x04then\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x04then\x1aX\n\x04Cast\x12#\n\x04type\x18\x01 \x01(\x0b2\x0f.substrait.TypeR\x04type\x12+\n\x05input\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x05input\x1a\xe4\x01\n\x10SwitchExpression\x12@\n\x03ifs\x18\x01 \x03(\x0b2..substrait.Expression.SwitchExpression.IfValueR\x03ifs\x12)\n\x04else\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x04else\x1ac\n\x07IfValue\x12-\n\x02if\x18\x01 \x01(\x0b2\x1d.substrait.Expression.LiteralR\x02if\x12)\n\x04then\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x04then\x1an\n\x0eSingularOrList\x12+\n\x05value\x18\x01 \x01(\x0b2\x15.substrait.ExpressionR\x05value\x12/\n\x07options\x18\x02 \x03(\x0b2\x15.substrait.ExpressionR\x07options\x1a\xb7\x01\n\x0bMultiOrList\x12+\n\x05value\x18\x01 \x03(\x0b2\x15.substrait.ExpressionR\x05value\x12B\n\x07options\x18\x02 \x03(\x0b2(.substrait.Expression.MultiOrList.RecordR\x07options\x1a7\n\x06Record\x12-\n\x06fields\x18\x01 \x03(\x0b2\x15.substrait.ExpressionR\x06fields\x1a\x93\x04\n\x10EmbeddedFunction\x123\n\targuments\x18\x01 \x03(\x0b2\x15.substrait.ExpressionR\targuments\x120\n\x0boutput_type\x18\x02 \x01(\x0b2\x0f.substrait.TypeR\noutputType\x12s\n\x16python_pickle_function\x18\x03 \x01(\x0b2;.substrait.Expression.EmbeddedFunction.PythonPickleFunctionH\x00R\x14pythonPickleFunction\x12p\n\x15web_assembly_function\x18\x04 \x01(\x0b2:.substrait.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00R\x13webAssemblyFunction\x1aV\n\x14PythonPickleFunction\x12\x1a\n\x08function\x18\x01 \x01(\x0cR\x08function\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisite\x1aQ\n\x13WebAssemblyFunction\x12\x16\n\x06script\x18\x01 \x01(\x0cR\x06script\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisiteB\x06\n\x04kind\x1a\xe8\x04\n\x10ReferenceSegment\x12H\n\x07map_key\x18\x01 \x01(\x0b2-.substrait.Expression.ReferenceSegment.MapKeyH\x00R\x06mapKey\x12W\n\x0cstruct_field\x18\x02 \x01(\x0b22.substrait.Expression.ReferenceSegment.StructFieldH\x00R\x0bstructField\x12W\n\x0clist_element\x18\x03 \x01(\x0b22.substrait.Expression.ReferenceSegment.ListElementH\x00R\x0blistElement\x1a~\n\x06MapKey\x126\n\x07map_key\x18\x01 \x01(\x0b2\x1d.substrait.Expression.LiteralR\x06mapKey\x12<\n\x05child\x18\x02 \x01(\x0b2&.substrait.Expression.ReferenceSegmentR\x05child\x1aa\n\x0bStructField\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x12<\n\x05child\x18\x02 \x01(\x0b2&.substrait.Expression.ReferenceSegmentR\x05child\x1ac\n\x0bListElement\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x12<\n\x05child\x18\x02 \x01(\x0b2&.substrait.Expression.ReferenceSegmentR\x05childB\x10\n\x0ereference_type\x1a\xa2\x0b\n\x0eMaskExpression\x12I\n\x06select\x18\x01 \x01(\x0b21.substrait.Expression.MaskExpression.StructSelectR\x06select\x128\n\x18maintain_singular_struct\x18\x02 \x01(\x08R\x16maintainSingularStruct\x1a\xe8\x01\n\x06Select\x12K\n\x06struct\x18\x01 \x01(\x0b21.substrait.Expression.MaskExpression.StructSelectH\x00R\x06struct\x12E\n\x04list\x18\x02 \x01(\x0b2/.substrait.Expression.MaskExpression.ListSelectH\x00R\x04list\x12B\n\x03map\x18\x03 \x01(\x0b2..substrait.Expression.MaskExpression.MapSelectH\x00R\x03mapB\x06\n\x04type\x1ab\n\x0cStructSelect\x12R\n\x0cstruct_items\x18\x01 \x03(\x0b2/.substrait.Expression.MaskExpression.StructItemR\x0bstructItems\x1ae\n\nStructItem\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x12A\n\x05child\x18\x02 \x01(\x0b2+.substrait.Expression.MaskExpression.SelectR\x05child\x1a\xe6\x03\n\nListSelect\x12\\\n\tselection\x18\x01 \x03(\x0b2>.substrait.Expression.MaskExpression.ListSelect.ListSelectItemR\tselection\x12A\n\x05child\x18\x02 \x01(\x0b2+.substrait.Expression.MaskExpression.SelectR\x05child\x1a\xb6\x02\n\x0eListSelectItem\x12`\n\x04item\x18\x01 \x01(\x0b2J.substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00R\x04item\x12`\n\x05slice\x18\x02 \x01(\x0b2H.substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00R\x05slice\x1a#\n\x0bListElement\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x1a3\n\tListSlice\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03endB\x06\n\x04type\x1a\xeb\x02\n\tMapSelect\x12I\n\x03key\x18\x01 \x01(\x0b25.substrait.Expression.MaskExpression.MapSelect.MapKeyH\x00R\x03key\x12a\n\nexpression\x18\x02 \x01(\x0b2?.substrait.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00R\nexpression\x12A\n\x05child\x18\x03 \x01(\x0b2+.substrait.Expression.MaskExpression.SelectR\x05child\x1a!\n\x06MapKey\x12\x17\n\x07map_key\x18\x01 \x01(\tR\x06mapKey\x1a@\n\x10MapKeyExpression\x12,\n\x12map_key_expression\x18\x01 \x01(\tR\x10mapKeyExpressionB\x08\n\x06select\x1a\x8d\x04\n\x0eFieldReference\x12S\n\x10direct_reference\x18\x01 \x01(\x0b2&.substrait.Expression.ReferenceSegmentH\x00R\x0fdirectReference\x12Q\n\x10masked_reference\x18\x02 \x01(\x0b2$.substrait.Expression.MaskExpressionH\x00R\x0fmaskedReference\x127\n\nexpression\x18\x03 \x01(\x0b2\x15.substrait.ExpressionH\x01R\nexpression\x12[\n\x0eroot_reference\x18\x04 \x01(\x0b22.substrait.Expression.FieldReference.RootReferenceH\x01R\rrootReference\x12^\n\x0fouter_reference\x18\x05 \x01(\x0b23.substrait.Expression.FieldReference.OuterReferenceH\x01R\x0eouterReference\x1a\x0f\n\rRootReference\x1a-\n\x0eOuterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOutB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\x95\n\n\x08Subquery\x12?\n\x06scalar\x18\x01 \x01(\x0b2%.substrait.Expression.Subquery.ScalarH\x00R\x06scalar\x12O\n\x0cin_predicate\x18\x02 \x01(\x0b2*.substrait.Expression.Subquery.InPredicateH\x00R\x0binPredicate\x12R\n\rset_predicate\x18\x03 \x01(\x0b2+.substrait.Expression.Subquery.SetPredicateH\x00R\x0csetPredicate\x12U\n\x0eset_comparison\x18\x04 \x01(\x0b2,.substrait.Expression.Subquery.SetComparisonH\x00R\rsetComparison\x1a.\n\x06Scalar\x12$\n\x05input\x18\x01 \x01(\x0b2\x0e.substrait.RelR\x05input\x1aj\n\x0bInPredicate\x12/\n\x07needles\x18\x01 \x03(\x0b2\x15.substrait.ExpressionR\x07needles\x12*\n\x08haystack\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x08haystack\x1a\xf1\x01\n\x0cSetPredicate\x12Z\n\x0cpredicate_op\x18\x01 \x01(\x0e27.substrait.Expression.Subquery.SetPredicate.PredicateOpR\x0bpredicateOp\x12&\n\x06tuples\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x06tuples"]\n\x0bPredicateOp\x12\x1c\n\x18PREDICATE_OP_UNSPECIFIED\x10\x00\x12\x17\n\x13PREDICATE_OP_EXISTS\x10\x01\x12\x17\n\x13PREDICATE_OP_UNIQUE\x10\x02\x1a\xaa\x04\n\rSetComparison\x12[\n\x0creduction_op\x18\x01 \x01(\x0e28.substrait.Expression.Subquery.SetComparison.ReductionOpR\x0breductionOp\x12^\n\rcomparison_op\x18\x02 \x01(\x0e29.substrait.Expression.Subquery.SetComparison.ComparisonOpR\x0ccomparisonOp\x12)\n\x04left\x18\x03 \x01(\x0b2\x15.substrait.ExpressionR\x04left\x12$\n\x05right\x18\x04 \x01(\x0b2\x0e.substrait.RelR\x05right"\xb1\x01\n\x0cComparisonOp\x12\x1d\n\x19COMPARISON_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10COMPARISON_OP_EQ\x10\x01\x12\x14\n\x10COMPARISON_OP_NE\x10\x02\x12\x14\n\x10COMPARISON_OP_LT\x10\x03\x12\x14\n\x10COMPARISON_OP_GT\x10\x04\x12\x14\n\x10COMPARISON_OP_LE\x10\x05\x12\x14\n\x10COMPARISON_OP_GE\x10\x06"W\n\x0bReductionOp\x12\x1c\n\x18REDUCTION_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10REDUCTION_OP_ANY\x10\x01\x12\x14\n\x10REDUCTION_OP_ALL\x10\x02B\x0f\n\rsubquery_typeB\n\n\x08rex_type"\xad\x03\n\tSortField\x12)\n\x04expr\x18\x01 \x01(\x0b2\x15.substrait.ExpressionR\x04expr\x12B\n\tdirection\x18\x02 \x01(\x0e2".substrait.SortField.SortDirectionH\x00R\tdirection\x12D\n\x1dcomparison_function_reference\x18\x03 \x01(\rH\x00R\x1bcomparisonFunctionReference"\xdd\x01\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12"\n\x1eSORT_DIRECTION_ASC_NULLS_FIRST\x10\x01\x12!\n\x1dSORT_DIRECTION_ASC_NULLS_LAST\x10\x02\x12#\n\x1fSORT_DIRECTION_DESC_NULLS_FIRST\x10\x03\x12"\n\x1eSORT_DIRECTION_DESC_NULLS_LAST\x10\x04\x12\x1c\n\x18SORT_DIRECTION_CLUSTERED\x10\x05B\x0b\n\tsort_kind"\xfe\x01\n\x11AggregateFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x12)\n\x04args\x18\x02 \x03(\x0b2\x15.substrait.ExpressionR\x04args\x12*\n\x05sorts\x18\x03 \x03(\x0b2\x14.substrait.SortFieldR\x05sorts\x121\n\x05phase\x18\x04 \x01(\x0e2\x1b.substrait.AggregationPhaseR\x05phase\x120\n\x0boutput_type\x18\x05 \x01(\x0b2\x0f.substrait.TypeR\noutputType*\xef\x01\n\x10AggregationPhase\x12!\n\x1dAGGREGATION_PHASE_UNSPECIFIED\x10\x00\x12-\n)AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE\x10\x01\x122\n.AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE\x10\x02\x12\'\n#AGGREGATION_PHASE_INITIAL_TO_RESULT\x10\x03\x12,\n(AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT\x10\x04B+\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobufb\x06proto3') +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +from ..substrait.extensions import extensions_pb2 as substrait_dot_extensions_dot_extensions__pb2 +from ..substrait import type_pb2 as substrait_dot_type__pb2 +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17substrait/algebra.proto\x12\tsubstrait\x1a\x19google/protobuf/any.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a%substrait/extensions/extensions.proto\x1a\x14substrait/type.proto"\xb2\x06\n\tRelCommon\x125\n\x06direct\x18\x01 \x01(\x0b2\x1b.substrait.RelCommon.DirectH\x00R\x06direct\x12/\n\x04emit\x18\x02 \x01(\x0b2\x19.substrait.RelCommon.EmitH\x00R\x04emit\x12-\n\x04hint\x18\x03 \x01(\x0b2\x19.substrait.RelCommon.HintR\x04hint\x12V\n\x12advanced_extension\x18\x04 \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x08\n\x06Direct\x1a-\n\x04Emit\x12%\n\x0eoutput_mapping\x18\x01 \x03(\x05R\routputMapping\x1a\xef\x03\n\x04Hint\x125\n\x05stats\x18\x01 \x01(\x0b2\x1f.substrait.RelCommon.Hint.StatsR\x05stats\x12K\n\nconstraint\x18\x02 \x01(\x0b2+.substrait.RelCommon.Hint.RuntimeConstraintR\nconstraint\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x9d\x01\n\x05Stats\x12\x1b\n\trow_count\x18\x01 \x01(\x01R\x08rowCount\x12\x1f\n\x0brecord_size\x18\x02 \x01(\x01R\nrecordSize\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1ak\n\x11RuntimeConstraint\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtensionB\x0b\n\temit_kind"\x96\r\n\x07ReadRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x127\n\x0bbase_schema\x18\x02 \x01(\x0b2\x16.substrait.NamedStructR\nbaseSchema\x12-\n\x06filter\x18\x03 \x01(\x0b2\x15.substrait.ExpressionR\x06filter\x12D\n\nprojection\x18\x04 \x01(\x0b2$.substrait.Expression.MaskExpressionR\nprojection\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x12F\n\rvirtual_table\x18\x05 \x01(\x0b2\x1f.substrait.ReadRel.VirtualTableH\x00R\x0cvirtualTable\x12@\n\x0blocal_files\x18\x06 \x01(\x0b2\x1d.substrait.ReadRel.LocalFilesH\x00R\nlocalFiles\x12@\n\x0bnamed_table\x18\x07 \x01(\x0b2\x1d.substrait.ReadRel.NamedTableH\x00R\nnamedTable\x12L\n\x0fextension_table\x18\x08 \x01(\x0b2!.substrait.ReadRel.ExtensionTableH\x00R\x0eextensionTable\x1az\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1aL\n\x0cVirtualTable\x12<\n\x06values\x18\x01 \x03(\x0b2$.substrait.Expression.Literal.StructR\x06values\x1a>\n\x0eExtensionTable\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail\x1a\xa5\x06\n\nLocalFiles\x12?\n\x05items\x18\x01 \x03(\x0b2).substrait.ReadRel.LocalFiles.FileOrFilesR\x05items\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xfd\x04\n\x0bFileOrFiles\x12\x1b\n\x08uri_path\x18\x01 \x01(\tH\x00R\x07uriPath\x12$\n\ruri_path_glob\x18\x02 \x01(\tH\x00R\x0buriPathGlob\x12\x1b\n\x08uri_file\x18\x03 \x01(\tH\x00R\x07uriFile\x12\x1f\n\nuri_folder\x18\x04 \x01(\tH\x00R\turiFolder\x12\'\n\x0fpartition_index\x18\x06 \x01(\x04R\x0epartitionIndex\x12\x14\n\x05start\x18\x07 \x01(\x04R\x05start\x12\x16\n\x06length\x18\x08 \x01(\x04R\x06length\x12X\n\x07parquet\x18\t \x01(\x0b2<.substrait.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptionsH\x01R\x07parquet\x12R\n\x05arrow\x18\n \x01(\x0b2:.substrait.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptionsH\x01R\x05arrow\x12L\n\x03orc\x18\x0b \x01(\x0b28.substrait.ReadRel.LocalFiles.FileOrFiles.OrcReadOptionsH\x01R\x03orc\x124\n\textension\x18\x0c \x01(\x0b2\x14.google.protobuf.AnyH\x01R\textension\x1a\x14\n\x12ParquetReadOptions\x1a\x12\n\x10ArrowReadOptions\x1a\x10\n\x0eOrcReadOptionsB\x0b\n\tpath_typeB\r\n\x0bfile_formatJ\x04\x08\x05\x10\x06R\x06formatB\x0b\n\tread_type"\xf1\x01\n\nProjectRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x127\n\x0bexpressions\x18\x03 \x03(\x0b2\x15.substrait.ExpressionR\x0bexpressions\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xbb\x04\n\x07JoinRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12"\n\x04left\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x04left\x12$\n\x05right\x18\x03 \x01(\x0b2\x0e.substrait.RelR\x05right\x125\n\nexpression\x18\x04 \x01(\x0b2\x15.substrait.ExpressionR\nexpression\x12?\n\x10post_join_filter\x18\x05 \x01(\x0b2\x15.substrait.ExpressionR\x0epostJoinFilter\x12/\n\x04type\x18\x06 \x01(\x0e2\x1b.substrait.JoinRel.JoinTypeR\x04type\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xb6\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\x12\n\x0eJOIN_TYPE_SEMI\x10\x05\x12\x12\n\x0eJOIN_TYPE_ANTI\x10\x06\x12\x14\n\x10JOIN_TYPE_SINGLE\x10\x07"\xda\x01\n\x08CrossRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12"\n\x04left\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x04left\x12$\n\x05right\x18\x03 \x01(\x0b2\x0e.substrait.RelR\x05right\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xe4\x01\n\x08FetchRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x12\x16\n\x06offset\x18\x03 \x01(\x03R\x06offset\x12\x14\n\x05count\x18\x04 \x01(\x03R\x05count\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xff\x03\n\x0cAggregateRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x12>\n\tgroupings\x18\x03 \x03(\x0b2 .substrait.AggregateRel.GroupingR\tgroupings\x12;\n\x08measures\x18\x04 \x03(\x0b2\x1f.substrait.AggregateRel.MeasureR\x08measures\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1aT\n\x08Grouping\x12H\n\x14grouping_expressions\x18\x01 \x03(\x0b2\x15.substrait.ExpressionR\x13groupingExpressions\x1ap\n\x07Measure\x126\n\x07measure\x18\x01 \x01(\x0b2\x1c.substrait.AggregateFunctionR\x07measure\x12-\n\x06filter\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x06filter"\xe1\x01\n\x07SortRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x12*\n\x05sorts\x18\x03 \x03(\x0b2\x14.substrait.SortFieldR\x05sorts\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xec\x01\n\tFilterRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x123\n\tcondition\x18\x03 \x01(\x0b2\x15.substrait.ExpressionR\tcondition\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\xaa\x03\n\x06SetRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12&\n\x06inputs\x18\x02 \x03(\x0b2\x0e.substrait.RelR\x06inputs\x12\'\n\x02op\x18\x03 \x01(\x0e2\x17.substrait.SetRel.SetOpR\x02op\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension"\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"\x96\x01\n\x12ExtensionSingleRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"n\n\x10ExtensionLeafRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12,\n\x06detail\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x97\x01\n\x11ExtensionMultiRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12&\n\x06inputs\x18\x02 \x03(\x0b2\x0e.substrait.RelR\x06inputs\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x9a\t\n\x0bExchangeRel\x12,\n\x06common\x18\x01 \x01(\x0b2\x14.substrait.RelCommonR\x06common\x12$\n\x05input\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x05input\x12\'\n\x0fpartition_count\x18\x03 \x01(\x05R\x0epartitionCount\x12?\n\x07targets\x18\x04 \x03(\x0b2%.substrait.ExchangeRel.ExchangeTargetR\x07targets\x12R\n\x11scatter_by_fields\x18\x05 \x01(\x0b2$.substrait.ExchangeRel.ScatterFieldsH\x00R\x0fscatterByFields\x12T\n\rsingle_target\x18\x06 \x01(\x0b2-.substrait.ExchangeRel.SingleBucketExpressionH\x00R\x0csingleTarget\x12Q\n\x0cmulti_target\x18\x07 \x01(\x0b2,.substrait.ExchangeRel.MultiBucketExpressionH\x00R\x0bmultiTarget\x12D\n\x0bround_robin\x18\x08 \x01(\x0b2!.substrait.ExchangeRel.RoundRobinH\x00R\nroundRobin\x12@\n\tbroadcast\x18\t \x01(\x0b2 .substrait.ExchangeRel.BroadcastH\x00R\tbroadcast\x12V\n\x12advanced_extension\x18\n \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x11advancedExtension\x1aM\n\rScatterFields\x12<\n\x06fields\x18\x01 \x03(\x0b2$.substrait.Expression.FieldReferenceR\x06fields\x1aO\n\x16SingleBucketExpression\x125\n\nexpression\x18\x01 \x01(\x0b2\x15.substrait.ExpressionR\nexpression\x1a\x80\x01\n\x15MultiBucketExpression\x125\n\nexpression\x18\x01 \x01(\x0b2\x15.substrait.ExpressionR\nexpression\x120\n\x14constrained_to_count\x18\x02 \x01(\x08R\x12constrainedToCount\x1a\x0b\n\tBroadcast\x1a"\n\nRoundRobin\x12\x14\n\x05exact\x18\x01 \x01(\x08R\x05exact\x1a\x8a\x01\n\x0eExchangeTarget\x12!\n\x0cpartition_id\x18\x01 \x03(\x05R\x0bpartitionId\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x122\n\x08extended\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x08extendedB\r\n\x0btarget_typeB\x0f\n\rexchange_kind"E\n\x07RelRoot\x12$\n\x05input\x18\x01 \x01(\x0b2\x0e.substrait.RelR\x05input\x12\x14\n\x05names\x18\x02 \x03(\tR\x05names"\x87\x05\n\x03Rel\x12(\n\x04read\x18\x01 \x01(\x0b2\x12.substrait.ReadRelH\x00R\x04read\x12.\n\x06filter\x18\x02 \x01(\x0b2\x14.substrait.FilterRelH\x00R\x06filter\x12+\n\x05fetch\x18\x03 \x01(\x0b2\x13.substrait.FetchRelH\x00R\x05fetch\x127\n\taggregate\x18\x04 \x01(\x0b2\x17.substrait.AggregateRelH\x00R\taggregate\x12(\n\x04sort\x18\x05 \x01(\x0b2\x12.substrait.SortRelH\x00R\x04sort\x12(\n\x04join\x18\x06 \x01(\x0b2\x12.substrait.JoinRelH\x00R\x04join\x121\n\x07project\x18\x07 \x01(\x0b2\x15.substrait.ProjectRelH\x00R\x07project\x12%\n\x03set\x18\x08 \x01(\x0b2\x11.substrait.SetRelH\x00R\x03set\x12J\n\x10extension_single\x18\t \x01(\x0b2\x1d.substrait.ExtensionSingleRelH\x00R\x0fextensionSingle\x12G\n\x0fextension_multi\x18\n \x01(\x0b2\x1c.substrait.ExtensionMultiRelH\x00R\x0eextensionMulti\x12D\n\x0eextension_leaf\x18\x0b \x01(\x0b2\x1b.substrait.ExtensionLeafRelH\x00R\rextensionLeaf\x12+\n\x05cross\x18\x0c \x01(\x0b2\x13.substrait.CrossRelH\x00R\x05crossB\n\n\x08rel_type"\x9d\x02\n\x10FunctionArgument\x126\n\x04enum\x18\x01 \x01(\x0b2 .substrait.FunctionArgument.EnumH\x00R\x04enum\x12%\n\x04type\x18\x02 \x01(\x0b2\x0f.substrait.TypeH\x00R\x04type\x12-\n\x05value\x18\x03 \x01(\x0b2\x15.substrait.ExpressionH\x00R\x05value\x1ao\n\x04Enum\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12:\n\x0bunspecified\x18\x02 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x0bunspecifiedB\x0b\n\tenum_kindB\n\n\x08arg_type"\xffK\n\nExpression\x129\n\x07literal\x18\x01 \x01(\x0b2\x1d.substrait.Expression.LiteralH\x00R\x07literal\x12D\n\tselection\x18\x02 \x01(\x0b2$.substrait.Expression.FieldReferenceH\x00R\tselection\x12O\n\x0fscalar_function\x18\x03 \x01(\x0b2$.substrait.Expression.ScalarFunctionH\x00R\x0escalarFunction\x12O\n\x0fwindow_function\x18\x05 \x01(\x0b2$.substrait.Expression.WindowFunctionH\x00R\x0ewindowFunction\x127\n\x07if_then\x18\x06 \x01(\x0b2\x1c.substrait.Expression.IfThenH\x00R\x06ifThen\x12U\n\x11switch_expression\x18\x07 \x01(\x0b2&.substrait.Expression.SwitchExpressionH\x00R\x10switchExpression\x12P\n\x10singular_or_list\x18\x08 \x01(\x0b2$.substrait.Expression.SingularOrListH\x00R\x0esingularOrList\x12G\n\rmulti_or_list\x18\t \x01(\x0b2!.substrait.Expression.MultiOrListH\x00R\x0bmultiOrList\x120\n\x04cast\x18\x0b \x01(\x0b2\x1a.substrait.Expression.CastH\x00R\x04cast\x12<\n\x08subquery\x18\x0c \x01(\x0b2\x1e.substrait.Expression.SubqueryH\x00R\x08subquery\x124\n\x04enum\x18\n \x01(\x0b2\x1a.substrait.Expression.EnumB\x02\x18\x01H\x00R\x04enum\x1a\x8a\x01\n\x04Enum\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12D\n\x0bunspecified\x18\x02 \x01(\x0b2 .substrait.Expression.Enum.EmptyH\x00R\x0bunspecified\x1a\x0b\n\x05Empty:\x02\x18\x01:\x02\x18\x01B\x0b\n\tenum_kind\x1a\x9c\x10\n\x07Literal\x12\x1a\n\x07boolean\x18\x01 \x01(\x08H\x00R\x07boolean\x12\x10\n\x02i8\x18\x02 \x01(\x05H\x00R\x02i8\x12\x12\n\x03i16\x18\x03 \x01(\x05H\x00R\x03i16\x12\x12\n\x03i32\x18\x05 \x01(\x05H\x00R\x03i32\x12\x12\n\x03i64\x18\x07 \x01(\x03H\x00R\x03i64\x12\x14\n\x04fp32\x18\n \x01(\x02H\x00R\x04fp32\x12\x14\n\x04fp64\x18\x0b \x01(\x01H\x00R\x04fp64\x12\x18\n\x06string\x18\x0c \x01(\tH\x00R\x06string\x12\x18\n\x06binary\x18\r \x01(\x0cH\x00R\x06binary\x12\x1e\n\ttimestamp\x18\x0e \x01(\x03H\x00R\ttimestamp\x12\x14\n\x04date\x18\x10 \x01(\x05H\x00R\x04date\x12\x14\n\x04time\x18\x11 \x01(\x03H\x00R\x04time\x12h\n\x16interval_year_to_month\x18\x13 \x01(\x0b21.substrait.Expression.Literal.IntervalYearToMonthH\x00R\x13intervalYearToMonth\x12h\n\x16interval_day_to_second\x18\x14 \x01(\x0b21.substrait.Expression.Literal.IntervalDayToSecondH\x00R\x13intervalDayToSecond\x12\x1f\n\nfixed_char\x18\x15 \x01(\tH\x00R\tfixedChar\x12B\n\x08var_char\x18\x16 \x01(\x0b2%.substrait.Expression.Literal.VarCharH\x00R\x07varChar\x12#\n\x0cfixed_binary\x18\x17 \x01(\x0cH\x00R\x0bfixedBinary\x12A\n\x07decimal\x18\x18 \x01(\x0b2%.substrait.Expression.Literal.DecimalH\x00R\x07decimal\x12>\n\x06struct\x18\x19 \x01(\x0b2$.substrait.Expression.Literal.StructH\x00R\x06struct\x125\n\x03map\x18\x1a \x01(\x0b2!.substrait.Expression.Literal.MapH\x00R\x03map\x12#\n\x0ctimestamp_tz\x18\x1b \x01(\x03H\x00R\x0btimestampTz\x12\x14\n\x04uuid\x18\x1c \x01(\x0cH\x00R\x04uuid\x12%\n\x04null\x18\x1d \x01(\x0b2\x0f.substrait.TypeH\x00R\x04null\x128\n\x04list\x18\x1e \x01(\x0b2".substrait.Expression.Literal.ListH\x00R\x04list\x125\n\nempty_list\x18\x1f \x01(\x0b2\x14.substrait.Type.ListH\x00R\temptyList\x122\n\tempty_map\x18 \x01(\x0b2\x13.substrait.Type.MapH\x00R\x08emptyMap\x12N\n\x0cuser_defined\x18! \x01(\x0b2).substrait.Expression.Literal.UserDefinedH\x00R\x0buserDefined\x12\x1a\n\x08nullable\x182 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x183 \x01(\rR\x16typeVariationReference\x1a7\n\x07VarChar\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x12\x16\n\x06length\x18\x02 \x01(\rR\x06length\x1aS\n\x07Decimal\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x14\n\x05scale\x18\x03 \x01(\x05R\x05scale\x1a\xc2\x01\n\x03Map\x12I\n\nkey_values\x18\x01 \x03(\x0b2*.substrait.Expression.Literal.Map.KeyValueR\tkeyValues\x1ap\n\x08KeyValue\x12/\n\x03key\x18\x01 \x01(\x0b2\x1d.substrait.Expression.LiteralR\x03key\x123\n\x05value\x18\x02 \x01(\x0b2\x1d.substrait.Expression.LiteralR\x05value\x1aC\n\x13IntervalYearToMonth\x12\x14\n\x05years\x18\x01 \x01(\x05R\x05years\x12\x16\n\x06months\x18\x02 \x01(\x05R\x06months\x1ag\n\x13IntervalDayToSecond\x12\x12\n\x04days\x18\x01 \x01(\x05R\x04days\x12\x18\n\x07seconds\x18\x02 \x01(\x05R\x07seconds\x12"\n\x0cmicroseconds\x18\x03 \x01(\x05R\x0cmicroseconds\x1a?\n\x06Struct\x125\n\x06fields\x18\x01 \x03(\x0b2\x1d.substrait.Expression.LiteralR\x06fields\x1a=\n\x04List\x125\n\x06values\x18\x01 \x03(\x0b2\x1d.substrait.Expression.LiteralR\x06values\x1a\xa4\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x12B\n\x0ftype_parameters\x18\x03 \x03(\x0b2\x19.substrait.Type.ParameterR\x0etypeParameters\x12*\n\x05value\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x05valueB\x0e\n\x0cliteral_type\x1a\xdb\x01\n\x0eScalarFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x129\n\targuments\x18\x04 \x03(\x0b2\x1b.substrait.FunctionArgumentR\targuments\x120\n\x0boutput_type\x18\x03 \x01(\x0b2\x0f.substrait.TypeR\noutputType\x12-\n\x04args\x18\x02 \x03(\x0b2\x15.substrait.ExpressionB\x02\x18\x01R\x04args\x1a\xde\x07\n\x0eWindowFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\npartitions\x18\x02 \x03(\x0b2\x15.substrait.ExpressionR\npartitions\x12*\n\x05sorts\x18\x03 \x03(\x0b2\x14.substrait.SortFieldR\x05sorts\x12K\n\x0bupper_bound\x18\x04 \x01(\x0b2*.substrait.Expression.WindowFunction.BoundR\nupperBound\x12K\n\x0blower_bound\x18\x05 \x01(\x0b2*.substrait.Expression.WindowFunction.BoundR\nlowerBound\x121\n\x05phase\x18\x06 \x01(\x0e2\x1b.substrait.AggregationPhaseR\x05phase\x120\n\x0boutput_type\x18\x07 \x01(\x0b2\x0f.substrait.TypeR\noutputType\x129\n\targuments\x18\t \x03(\x0b2\x1b.substrait.FunctionArgumentR\targuments\x12-\n\x04args\x18\x08 \x03(\x0b2\x15.substrait.ExpressionB\x02\x18\x01R\x04args\x1a\xd0\x03\n\x05Bound\x12T\n\tpreceding\x18\x01 \x01(\x0b24.substrait.Expression.WindowFunction.Bound.PrecedingH\x00R\tpreceding\x12T\n\tfollowing\x18\x02 \x01(\x0b24.substrait.Expression.WindowFunction.Bound.FollowingH\x00R\tfollowing\x12X\n\x0bcurrent_row\x18\x03 \x01(\x0b25.substrait.Expression.WindowFunction.Bound.CurrentRowH\x00R\ncurrentRow\x12T\n\tunbounded\x18\x04 \x01(\x0b24.substrait.Expression.WindowFunction.Bound.UnboundedH\x00R\tunbounded\x1a#\n\tPreceding\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a#\n\tFollowing\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a\x0c\n\nCurrentRow\x1a\x0b\n\tUnboundedB\x06\n\x04kind\x1a\xca\x01\n\x06IfThen\x127\n\x03ifs\x18\x01 \x03(\x0b2%.substrait.Expression.IfThen.IfClauseR\x03ifs\x12)\n\x04else\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x04else\x1a\\\n\x08IfClause\x12%\n\x02if\x18\x01 \x01(\x0b2\x15.substrait.ExpressionR\x02if\x12)\n\x04then\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x04then\x1a\xac\x02\n\x04Cast\x12#\n\x04type\x18\x01 \x01(\x0b2\x0f.substrait.TypeR\x04type\x12+\n\x05input\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x05input\x12U\n\x10failure_behavior\x18\x03 \x01(\x0e2*.substrait.Expression.Cast.FailureBehaviorR\x0ffailureBehavior"{\n\x0fFailureBehavior\x12 \n\x1cFAILURE_BEHAVIOR_UNSPECIFIED\x10\x00\x12 \n\x1cFAILURE_BEHAVIOR_RETURN_NULL\x10\x01\x12$\n FAILURE_BEHAVIOR_THROW_EXCEPTION\x10\x02\x1a\x91\x02\n\x10SwitchExpression\x12+\n\x05match\x18\x03 \x01(\x0b2\x15.substrait.ExpressionR\x05match\x12@\n\x03ifs\x18\x01 \x03(\x0b2..substrait.Expression.SwitchExpression.IfValueR\x03ifs\x12)\n\x04else\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x04else\x1ac\n\x07IfValue\x12-\n\x02if\x18\x01 \x01(\x0b2\x1d.substrait.Expression.LiteralR\x02if\x12)\n\x04then\x18\x02 \x01(\x0b2\x15.substrait.ExpressionR\x04then\x1an\n\x0eSingularOrList\x12+\n\x05value\x18\x01 \x01(\x0b2\x15.substrait.ExpressionR\x05value\x12/\n\x07options\x18\x02 \x03(\x0b2\x15.substrait.ExpressionR\x07options\x1a\xb7\x01\n\x0bMultiOrList\x12+\n\x05value\x18\x01 \x03(\x0b2\x15.substrait.ExpressionR\x05value\x12B\n\x07options\x18\x02 \x03(\x0b2(.substrait.Expression.MultiOrList.RecordR\x07options\x1a7\n\x06Record\x12-\n\x06fields\x18\x01 \x03(\x0b2\x15.substrait.ExpressionR\x06fields\x1a\x93\x04\n\x10EmbeddedFunction\x123\n\targuments\x18\x01 \x03(\x0b2\x15.substrait.ExpressionR\targuments\x120\n\x0boutput_type\x18\x02 \x01(\x0b2\x0f.substrait.TypeR\noutputType\x12s\n\x16python_pickle_function\x18\x03 \x01(\x0b2;.substrait.Expression.EmbeddedFunction.PythonPickleFunctionH\x00R\x14pythonPickleFunction\x12p\n\x15web_assembly_function\x18\x04 \x01(\x0b2:.substrait.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00R\x13webAssemblyFunction\x1aV\n\x14PythonPickleFunction\x12\x1a\n\x08function\x18\x01 \x01(\x0cR\x08function\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisite\x1aQ\n\x13WebAssemblyFunction\x12\x16\n\x06script\x18\x01 \x01(\x0cR\x06script\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisiteB\x06\n\x04kind\x1a\xe8\x04\n\x10ReferenceSegment\x12H\n\x07map_key\x18\x01 \x01(\x0b2-.substrait.Expression.ReferenceSegment.MapKeyH\x00R\x06mapKey\x12W\n\x0cstruct_field\x18\x02 \x01(\x0b22.substrait.Expression.ReferenceSegment.StructFieldH\x00R\x0bstructField\x12W\n\x0clist_element\x18\x03 \x01(\x0b22.substrait.Expression.ReferenceSegment.ListElementH\x00R\x0blistElement\x1a~\n\x06MapKey\x126\n\x07map_key\x18\x01 \x01(\x0b2\x1d.substrait.Expression.LiteralR\x06mapKey\x12<\n\x05child\x18\x02 \x01(\x0b2&.substrait.Expression.ReferenceSegmentR\x05child\x1aa\n\x0bStructField\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x12<\n\x05child\x18\x02 \x01(\x0b2&.substrait.Expression.ReferenceSegmentR\x05child\x1ac\n\x0bListElement\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x12<\n\x05child\x18\x02 \x01(\x0b2&.substrait.Expression.ReferenceSegmentR\x05childB\x10\n\x0ereference_type\x1a\xa2\x0b\n\x0eMaskExpression\x12I\n\x06select\x18\x01 \x01(\x0b21.substrait.Expression.MaskExpression.StructSelectR\x06select\x128\n\x18maintain_singular_struct\x18\x02 \x01(\x08R\x16maintainSingularStruct\x1a\xe8\x01\n\x06Select\x12K\n\x06struct\x18\x01 \x01(\x0b21.substrait.Expression.MaskExpression.StructSelectH\x00R\x06struct\x12E\n\x04list\x18\x02 \x01(\x0b2/.substrait.Expression.MaskExpression.ListSelectH\x00R\x04list\x12B\n\x03map\x18\x03 \x01(\x0b2..substrait.Expression.MaskExpression.MapSelectH\x00R\x03mapB\x06\n\x04type\x1ab\n\x0cStructSelect\x12R\n\x0cstruct_items\x18\x01 \x03(\x0b2/.substrait.Expression.MaskExpression.StructItemR\x0bstructItems\x1ae\n\nStructItem\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x12A\n\x05child\x18\x02 \x01(\x0b2+.substrait.Expression.MaskExpression.SelectR\x05child\x1a\xe6\x03\n\nListSelect\x12\\\n\tselection\x18\x01 \x03(\x0b2>.substrait.Expression.MaskExpression.ListSelect.ListSelectItemR\tselection\x12A\n\x05child\x18\x02 \x01(\x0b2+.substrait.Expression.MaskExpression.SelectR\x05child\x1a\xb6\x02\n\x0eListSelectItem\x12`\n\x04item\x18\x01 \x01(\x0b2J.substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00R\x04item\x12`\n\x05slice\x18\x02 \x01(\x0b2H.substrait.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00R\x05slice\x1a#\n\x0bListElement\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x1a3\n\tListSlice\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03endB\x06\n\x04type\x1a\xeb\x02\n\tMapSelect\x12I\n\x03key\x18\x01 \x01(\x0b25.substrait.Expression.MaskExpression.MapSelect.MapKeyH\x00R\x03key\x12a\n\nexpression\x18\x02 \x01(\x0b2?.substrait.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00R\nexpression\x12A\n\x05child\x18\x03 \x01(\x0b2+.substrait.Expression.MaskExpression.SelectR\x05child\x1a!\n\x06MapKey\x12\x17\n\x07map_key\x18\x01 \x01(\tR\x06mapKey\x1a@\n\x10MapKeyExpression\x12,\n\x12map_key_expression\x18\x01 \x01(\tR\x10mapKeyExpressionB\x08\n\x06select\x1a\x8d\x04\n\x0eFieldReference\x12S\n\x10direct_reference\x18\x01 \x01(\x0b2&.substrait.Expression.ReferenceSegmentH\x00R\x0fdirectReference\x12Q\n\x10masked_reference\x18\x02 \x01(\x0b2$.substrait.Expression.MaskExpressionH\x00R\x0fmaskedReference\x127\n\nexpression\x18\x03 \x01(\x0b2\x15.substrait.ExpressionH\x01R\nexpression\x12[\n\x0eroot_reference\x18\x04 \x01(\x0b22.substrait.Expression.FieldReference.RootReferenceH\x01R\rrootReference\x12^\n\x0fouter_reference\x18\x05 \x01(\x0b23.substrait.Expression.FieldReference.OuterReferenceH\x01R\x0eouterReference\x1a\x0f\n\rRootReference\x1a-\n\x0eOuterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOutB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\x95\n\n\x08Subquery\x12?\n\x06scalar\x18\x01 \x01(\x0b2%.substrait.Expression.Subquery.ScalarH\x00R\x06scalar\x12O\n\x0cin_predicate\x18\x02 \x01(\x0b2*.substrait.Expression.Subquery.InPredicateH\x00R\x0binPredicate\x12R\n\rset_predicate\x18\x03 \x01(\x0b2+.substrait.Expression.Subquery.SetPredicateH\x00R\x0csetPredicate\x12U\n\x0eset_comparison\x18\x04 \x01(\x0b2,.substrait.Expression.Subquery.SetComparisonH\x00R\rsetComparison\x1a.\n\x06Scalar\x12$\n\x05input\x18\x01 \x01(\x0b2\x0e.substrait.RelR\x05input\x1aj\n\x0bInPredicate\x12/\n\x07needles\x18\x01 \x03(\x0b2\x15.substrait.ExpressionR\x07needles\x12*\n\x08haystack\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x08haystack\x1a\xf1\x01\n\x0cSetPredicate\x12Z\n\x0cpredicate_op\x18\x01 \x01(\x0e27.substrait.Expression.Subquery.SetPredicate.PredicateOpR\x0bpredicateOp\x12&\n\x06tuples\x18\x02 \x01(\x0b2\x0e.substrait.RelR\x06tuples"]\n\x0bPredicateOp\x12\x1c\n\x18PREDICATE_OP_UNSPECIFIED\x10\x00\x12\x17\n\x13PREDICATE_OP_EXISTS\x10\x01\x12\x17\n\x13PREDICATE_OP_UNIQUE\x10\x02\x1a\xaa\x04\n\rSetComparison\x12[\n\x0creduction_op\x18\x01 \x01(\x0e28.substrait.Expression.Subquery.SetComparison.ReductionOpR\x0breductionOp\x12^\n\rcomparison_op\x18\x02 \x01(\x0e29.substrait.Expression.Subquery.SetComparison.ComparisonOpR\x0ccomparisonOp\x12)\n\x04left\x18\x03 \x01(\x0b2\x15.substrait.ExpressionR\x04left\x12$\n\x05right\x18\x04 \x01(\x0b2\x0e.substrait.RelR\x05right"\xb1\x01\n\x0cComparisonOp\x12\x1d\n\x19COMPARISON_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10COMPARISON_OP_EQ\x10\x01\x12\x14\n\x10COMPARISON_OP_NE\x10\x02\x12\x14\n\x10COMPARISON_OP_LT\x10\x03\x12\x14\n\x10COMPARISON_OP_GT\x10\x04\x12\x14\n\x10COMPARISON_OP_LE\x10\x05\x12\x14\n\x10COMPARISON_OP_GE\x10\x06"W\n\x0bReductionOp\x12\x1c\n\x18REDUCTION_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10REDUCTION_OP_ANY\x10\x01\x12\x14\n\x10REDUCTION_OP_ALL\x10\x02B\x0f\n\rsubquery_typeB\n\n\x08rex_type"\xad\x03\n\tSortField\x12)\n\x04expr\x18\x01 \x01(\x0b2\x15.substrait.ExpressionR\x04expr\x12B\n\tdirection\x18\x02 \x01(\x0e2".substrait.SortField.SortDirectionH\x00R\tdirection\x12D\n\x1dcomparison_function_reference\x18\x03 \x01(\rH\x00R\x1bcomparisonFunctionReference"\xdd\x01\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12"\n\x1eSORT_DIRECTION_ASC_NULLS_FIRST\x10\x01\x12!\n\x1dSORT_DIRECTION_ASC_NULLS_LAST\x10\x02\x12#\n\x1fSORT_DIRECTION_DESC_NULLS_FIRST\x10\x03\x12"\n\x1eSORT_DIRECTION_DESC_NULLS_LAST\x10\x04\x12\x1c\n\x18SORT_DIRECTION_CLUSTERED\x10\x05B\x0b\n\tsort_kind"\x98\x04\n\x11AggregateFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x129\n\targuments\x18\x07 \x03(\x0b2\x1b.substrait.FunctionArgumentR\targuments\x12*\n\x05sorts\x18\x03 \x03(\x0b2\x14.substrait.SortFieldR\x05sorts\x121\n\x05phase\x18\x04 \x01(\x0e2\x1b.substrait.AggregationPhaseR\x05phase\x120\n\x0boutput_type\x18\x05 \x01(\x0b2\x0f.substrait.TypeR\noutputType\x12R\n\ninvocation\x18\x06 \x01(\x0e22.substrait.AggregateFunction.AggregationInvocationR\ninvocation\x12-\n\x04args\x18\x02 \x03(\x0b2\x15.substrait.ExpressionB\x02\x18\x01R\x04args"\x84\x01\n\x15AggregationInvocation\x12&\n"AGGREGATION_INVOCATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1aAGGREGATION_INVOCATION_ALL\x10\x01\x12#\n\x1fAGGREGATION_INVOCATION_DISTINCT\x10\x02*\xef\x01\n\x10AggregationPhase\x12!\n\x1dAGGREGATION_PHASE_UNSPECIFIED\x10\x00\x12-\n)AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE\x10\x01\x122\n.AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE\x10\x02\x12\'\n#AGGREGATION_PHASE_INITIAL_TO_RESULT\x10\x03\x12,\n(AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT\x10\x04BW\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) AGGREGATION_PHASE_UNSPECIFIED = 0 @@ -29,6 +30,9 @@ _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'] _PROJECTREL = DESCRIPTOR.message_types_by_name['ProjectRel'] _JOINREL = DESCRIPTOR.message_types_by_name['JoinRel'] _CROSSREL = DESCRIPTOR.message_types_by_name['CrossRel'] @@ -42,8 +46,17 @@ _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'] _RELROOT = DESCRIPTOR.message_types_by_name['RelRoot'] _REL = DESCRIPTOR.message_types_by_name['Rel'] +_FUNCTIONARGUMENT = DESCRIPTOR.message_types_by_name['FunctionArgument'] +_FUNCTIONARGUMENT_ENUM = _FUNCTIONARGUMENT.nested_types_by_name['Enum'] _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'] @@ -56,6 +69,7 @@ _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_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'] @@ -99,13 +113,14 @@ _EXPRESSION_SUBQUERY_SETCOMPARISON = _EXPRESSION_SUBQUERY.nested_types_by_name['SetComparison'] _SORTFIELD = DESCRIPTOR.message_types_by_name['SortField'] _AGGREGATEFUNCTION = DESCRIPTOR.message_types_by_name['AggregateFunction'] -_READREL_LOCALFILES_FILEORFILES_FILEFORMAT = _READREL_LOCALFILES_FILEORFILES.enum_types_by_name['FileFormat'] _JOINREL_JOINTYPE = _JOINREL.enum_types_by_name['JoinType'] _SETREL_SETOP = _SETREL.enum_types_by_name['SetOp'] +_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__': 'substrait.algebra_pb2'}), 'Emit': _reflection.GeneratedProtocolMessageType('Emit', (_message.Message,), {'DESCRIPTOR': _RELCOMMON_EMIT, '__module__': 'substrait.algebra_pb2'}), 'Hint': _reflection.GeneratedProtocolMessageType('Hint', (_message.Message,), {'Stats': _reflection.GeneratedProtocolMessageType('Stats', (_message.Message,), {'DESCRIPTOR': _RELCOMMON_HINT_STATS, '__module__': 'substrait.algebra_pb2'}), 'RuntimeConstraint': _reflection.GeneratedProtocolMessageType('RuntimeConstraint', (_message.Message,), {'DESCRIPTOR': _RELCOMMON_HINT_RUNTIMECONSTRAINT, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _RELCOMMON_HINT, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _RELCOMMON, '__module__': 'substrait.algebra_pb2'}) _sym_db.RegisterMessage(RelCommon) _sym_db.RegisterMessage(RelCommon.Direct) @@ -113,13 +128,16 @@ _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__': 'substrait.algebra_pb2'}), 'VirtualTable': _reflection.GeneratedProtocolMessageType('VirtualTable', (_message.Message,), {'DESCRIPTOR': _READREL_VIRTUALTABLE, '__module__': 'substrait.algebra_pb2'}), 'ExtensionTable': _reflection.GeneratedProtocolMessageType('ExtensionTable', (_message.Message,), {'DESCRIPTOR': _READREL_EXTENSIONTABLE, '__module__': 'substrait.algebra_pb2'}), 'LocalFiles': _reflection.GeneratedProtocolMessageType('LocalFiles', (_message.Message,), {'FileOrFiles': _reflection.GeneratedProtocolMessageType('FileOrFiles', (_message.Message,), {'DESCRIPTOR': _READREL_LOCALFILES_FILEORFILES, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _READREL_LOCALFILES, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _READREL, '__module__': 'substrait.algebra_pb2'}) +ReadRel = _reflection.GeneratedProtocolMessageType('ReadRel', (_message.Message,), {'NamedTable': _reflection.GeneratedProtocolMessageType('NamedTable', (_message.Message,), {'DESCRIPTOR': _READREL_NAMEDTABLE, '__module__': 'substrait.algebra_pb2'}), 'VirtualTable': _reflection.GeneratedProtocolMessageType('VirtualTable', (_message.Message,), {'DESCRIPTOR': _READREL_VIRTUALTABLE, '__module__': 'substrait.algebra_pb2'}), 'ExtensionTable': _reflection.GeneratedProtocolMessageType('ExtensionTable', (_message.Message,), {'DESCRIPTOR': _READREL_EXTENSIONTABLE, '__module__': 'substrait.algebra_pb2'}), 'LocalFiles': _reflection.GeneratedProtocolMessageType('LocalFiles', (_message.Message,), {'FileOrFiles': _reflection.GeneratedProtocolMessageType('FileOrFiles', (_message.Message,), {'ParquetReadOptions': _reflection.GeneratedProtocolMessageType('ParquetReadOptions', (_message.Message,), {'DESCRIPTOR': _READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS, '__module__': 'substrait.algebra_pb2'}), 'ArrowReadOptions': _reflection.GeneratedProtocolMessageType('ArrowReadOptions', (_message.Message,), {'DESCRIPTOR': _READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS, '__module__': 'substrait.algebra_pb2'}), 'OrcReadOptions': _reflection.GeneratedProtocolMessageType('OrcReadOptions', (_message.Message,), {'DESCRIPTOR': _READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _READREL_LOCALFILES_FILEORFILES, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _READREL_LOCALFILES, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _READREL, '__module__': 'substrait.algebra_pb2'}) _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) ProjectRel = _reflection.GeneratedProtocolMessageType('ProjectRel', (_message.Message,), {'DESCRIPTOR': _PROJECTREL, '__module__': 'substrait.algebra_pb2'}) _sym_db.RegisterMessage(ProjectRel) JoinRel = _reflection.GeneratedProtocolMessageType('JoinRel', (_message.Message,), {'DESCRIPTOR': _JOINREL, '__module__': 'substrait.algebra_pb2'}) @@ -144,11 +162,22 @@ _sym_db.RegisterMessage(ExtensionLeafRel) ExtensionMultiRel = _reflection.GeneratedProtocolMessageType('ExtensionMultiRel', (_message.Message,), {'DESCRIPTOR': _EXTENSIONMULTIREL, '__module__': 'substrait.algebra_pb2'}) _sym_db.RegisterMessage(ExtensionMultiRel) +ExchangeRel = _reflection.GeneratedProtocolMessageType('ExchangeRel', (_message.Message,), {'ScatterFields': _reflection.GeneratedProtocolMessageType('ScatterFields', (_message.Message,), {'DESCRIPTOR': _EXCHANGEREL_SCATTERFIELDS, '__module__': 'substrait.algebra_pb2'}), 'SingleBucketExpression': _reflection.GeneratedProtocolMessageType('SingleBucketExpression', (_message.Message,), {'DESCRIPTOR': _EXCHANGEREL_SINGLEBUCKETEXPRESSION, '__module__': 'substrait.algebra_pb2'}), 'MultiBucketExpression': _reflection.GeneratedProtocolMessageType('MultiBucketExpression', (_message.Message,), {'DESCRIPTOR': _EXCHANGEREL_MULTIBUCKETEXPRESSION, '__module__': 'substrait.algebra_pb2'}), 'Broadcast': _reflection.GeneratedProtocolMessageType('Broadcast', (_message.Message,), {'DESCRIPTOR': _EXCHANGEREL_BROADCAST, '__module__': 'substrait.algebra_pb2'}), 'RoundRobin': _reflection.GeneratedProtocolMessageType('RoundRobin', (_message.Message,), {'DESCRIPTOR': _EXCHANGEREL_ROUNDROBIN, '__module__': 'substrait.algebra_pb2'}), 'ExchangeTarget': _reflection.GeneratedProtocolMessageType('ExchangeTarget', (_message.Message,), {'DESCRIPTOR': _EXCHANGEREL_EXCHANGETARGET, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXCHANGEREL, '__module__': 'substrait.algebra_pb2'}) +_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) RelRoot = _reflection.GeneratedProtocolMessageType('RelRoot', (_message.Message,), {'DESCRIPTOR': _RELROOT, '__module__': 'substrait.algebra_pb2'}) _sym_db.RegisterMessage(RelRoot) Rel = _reflection.GeneratedProtocolMessageType('Rel', (_message.Message,), {'DESCRIPTOR': _REL, '__module__': 'substrait.algebra_pb2'}) _sym_db.RegisterMessage(Rel) -Expression = _reflection.GeneratedProtocolMessageType('Expression', (_message.Message,), {'Enum': _reflection.GeneratedProtocolMessageType('Enum', (_message.Message,), {'Empty': _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_ENUM_EMPTY, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_ENUM, '__module__': 'substrait.algebra_pb2'}), 'Literal': _reflection.GeneratedProtocolMessageType('Literal', (_message.Message,), {'VarChar': _reflection.GeneratedProtocolMessageType('VarChar', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_VARCHAR, '__module__': 'substrait.algebra_pb2'}), 'Decimal': _reflection.GeneratedProtocolMessageType('Decimal', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_DECIMAL, '__module__': 'substrait.algebra_pb2'}), 'Map': _reflection.GeneratedProtocolMessageType('Map', (_message.Message,), {'KeyValue': _reflection.GeneratedProtocolMessageType('KeyValue', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_MAP_KEYVALUE, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_LITERAL_MAP, '__module__': 'substrait.algebra_pb2'}), 'IntervalYearToMonth': _reflection.GeneratedProtocolMessageType('IntervalYearToMonth', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_INTERVALYEARTOMONTH, '__module__': 'substrait.algebra_pb2'}), 'IntervalDayToSecond': _reflection.GeneratedProtocolMessageType('IntervalDayToSecond', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_INTERVALDAYTOSECOND, '__module__': 'substrait.algebra_pb2'}), 'Struct': _reflection.GeneratedProtocolMessageType('Struct', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_STRUCT, '__module__': 'substrait.algebra_pb2'}), 'List': _reflection.GeneratedProtocolMessageType('List', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_LIST, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_LITERAL, '__module__': 'substrait.algebra_pb2'}), 'ScalarFunction': _reflection.GeneratedProtocolMessageType('ScalarFunction', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SCALARFUNCTION, '__module__': 'substrait.algebra_pb2'}), 'WindowFunction': _reflection.GeneratedProtocolMessageType('WindowFunction', (_message.Message,), {'Bound': _reflection.GeneratedProtocolMessageType('Bound', (_message.Message,), {'Preceding': _reflection.GeneratedProtocolMessageType('Preceding', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING, '__module__': 'substrait.algebra_pb2'}), 'Following': _reflection.GeneratedProtocolMessageType('Following', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING, '__module__': 'substrait.algebra_pb2'}), 'CurrentRow': _reflection.GeneratedProtocolMessageType('CurrentRow', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW, '__module__': 'substrait.algebra_pb2'}), 'Unbounded': _reflection.GeneratedProtocolMessageType('Unbounded', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION_BOUND, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION, '__module__': 'substrait.algebra_pb2'}), 'IfThen': _reflection.GeneratedProtocolMessageType('IfThen', (_message.Message,), {'IfClause': _reflection.GeneratedProtocolMessageType('IfClause', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_IFTHEN_IFCLAUSE, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_IFTHEN, '__module__': 'substrait.algebra_pb2'}), 'Cast': _reflection.GeneratedProtocolMessageType('Cast', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_CAST, '__module__': 'substrait.algebra_pb2'}), 'SwitchExpression': _reflection.GeneratedProtocolMessageType('SwitchExpression', (_message.Message,), {'IfValue': _reflection.GeneratedProtocolMessageType('IfValue', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SWITCHEXPRESSION_IFVALUE, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_SWITCHEXPRESSION, '__module__': 'substrait.algebra_pb2'}), 'SingularOrList': _reflection.GeneratedProtocolMessageType('SingularOrList', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SINGULARORLIST, '__module__': 'substrait.algebra_pb2'}), 'MultiOrList': _reflection.GeneratedProtocolMessageType('MultiOrList', (_message.Message,), {'Record': _reflection.GeneratedProtocolMessageType('Record', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MULTIORLIST_RECORD, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_MULTIORLIST, '__module__': 'substrait.algebra_pb2'}), 'EmbeddedFunction': _reflection.GeneratedProtocolMessageType('EmbeddedFunction', (_message.Message,), {'PythonPickleFunction': _reflection.GeneratedProtocolMessageType('PythonPickleFunction', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION, '__module__': 'substrait.algebra_pb2'}), 'WebAssemblyFunction': _reflection.GeneratedProtocolMessageType('WebAssemblyFunction', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_EMBEDDEDFUNCTION, '__module__': 'substrait.algebra_pb2'}), 'ReferenceSegment': _reflection.GeneratedProtocolMessageType('ReferenceSegment', (_message.Message,), {'MapKey': _reflection.GeneratedProtocolMessageType('MapKey', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_REFERENCESEGMENT_MAPKEY, '__module__': 'substrait.algebra_pb2'}), 'StructField': _reflection.GeneratedProtocolMessageType('StructField', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD, '__module__': 'substrait.algebra_pb2'}), 'ListElement': _reflection.GeneratedProtocolMessageType('ListElement', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_REFERENCESEGMENT_LISTELEMENT, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_REFERENCESEGMENT, '__module__': 'substrait.algebra_pb2'}), 'MaskExpression': _reflection.GeneratedProtocolMessageType('MaskExpression', (_message.Message,), {'Select': _reflection.GeneratedProtocolMessageType('Select', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_SELECT, '__module__': 'substrait.algebra_pb2'}), 'StructSelect': _reflection.GeneratedProtocolMessageType('StructSelect', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_STRUCTSELECT, '__module__': 'substrait.algebra_pb2'}), 'StructItem': _reflection.GeneratedProtocolMessageType('StructItem', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_STRUCTITEM, '__module__': 'substrait.algebra_pb2'}), '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__': 'substrait.algebra_pb2'}), 'ListSlice': _reflection.GeneratedProtocolMessageType('ListSlice', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_LISTSELECT, '__module__': 'substrait.algebra_pb2'}), 'MapSelect': _reflection.GeneratedProtocolMessageType('MapSelect', (_message.Message,), {'MapKey': _reflection.GeneratedProtocolMessageType('MapKey', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY, '__module__': 'substrait.algebra_pb2'}), 'MapKeyExpression': _reflection.GeneratedProtocolMessageType('MapKeyExpression', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_MAPSELECT, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION, '__module__': 'substrait.algebra_pb2'}), 'FieldReference': _reflection.GeneratedProtocolMessageType('FieldReference', (_message.Message,), {'RootReference': _reflection.GeneratedProtocolMessageType('RootReference', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE, '__module__': 'substrait.algebra_pb2'}), 'OuterReference': _reflection.GeneratedProtocolMessageType('OuterReference', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_FIELDREFERENCE, '__module__': 'substrait.algebra_pb2'}), 'Subquery': _reflection.GeneratedProtocolMessageType('Subquery', (_message.Message,), {'Scalar': _reflection.GeneratedProtocolMessageType('Scalar', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SUBQUERY_SCALAR, '__module__': 'substrait.algebra_pb2'}), 'InPredicate': _reflection.GeneratedProtocolMessageType('InPredicate', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SUBQUERY_INPREDICATE, '__module__': 'substrait.algebra_pb2'}), 'SetPredicate': _reflection.GeneratedProtocolMessageType('SetPredicate', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SUBQUERY_SETPREDICATE, '__module__': 'substrait.algebra_pb2'}), 'SetComparison': _reflection.GeneratedProtocolMessageType('SetComparison', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SUBQUERY_SETCOMPARISON, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_SUBQUERY, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION, '__module__': 'substrait.algebra_pb2'}) +FunctionArgument = _reflection.GeneratedProtocolMessageType('FunctionArgument', (_message.Message,), {'Enum': _reflection.GeneratedProtocolMessageType('Enum', (_message.Message,), {'DESCRIPTOR': _FUNCTIONARGUMENT_ENUM, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _FUNCTIONARGUMENT, '__module__': 'substrait.algebra_pb2'}) +_sym_db.RegisterMessage(FunctionArgument) +_sym_db.RegisterMessage(FunctionArgument.Enum) +Expression = _reflection.GeneratedProtocolMessageType('Expression', (_message.Message,), {'Enum': _reflection.GeneratedProtocolMessageType('Enum', (_message.Message,), {'Empty': _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_ENUM_EMPTY, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_ENUM, '__module__': 'substrait.algebra_pb2'}), 'Literal': _reflection.GeneratedProtocolMessageType('Literal', (_message.Message,), {'VarChar': _reflection.GeneratedProtocolMessageType('VarChar', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_VARCHAR, '__module__': 'substrait.algebra_pb2'}), 'Decimal': _reflection.GeneratedProtocolMessageType('Decimal', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_DECIMAL, '__module__': 'substrait.algebra_pb2'}), 'Map': _reflection.GeneratedProtocolMessageType('Map', (_message.Message,), {'KeyValue': _reflection.GeneratedProtocolMessageType('KeyValue', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_MAP_KEYVALUE, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_LITERAL_MAP, '__module__': 'substrait.algebra_pb2'}), 'IntervalYearToMonth': _reflection.GeneratedProtocolMessageType('IntervalYearToMonth', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_INTERVALYEARTOMONTH, '__module__': 'substrait.algebra_pb2'}), 'IntervalDayToSecond': _reflection.GeneratedProtocolMessageType('IntervalDayToSecond', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_INTERVALDAYTOSECOND, '__module__': 'substrait.algebra_pb2'}), 'Struct': _reflection.GeneratedProtocolMessageType('Struct', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_STRUCT, '__module__': 'substrait.algebra_pb2'}), 'List': _reflection.GeneratedProtocolMessageType('List', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_LIST, '__module__': 'substrait.algebra_pb2'}), 'UserDefined': _reflection.GeneratedProtocolMessageType('UserDefined', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_LITERAL_USERDEFINED, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_LITERAL, '__module__': 'substrait.algebra_pb2'}), 'ScalarFunction': _reflection.GeneratedProtocolMessageType('ScalarFunction', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SCALARFUNCTION, '__module__': 'substrait.algebra_pb2'}), 'WindowFunction': _reflection.GeneratedProtocolMessageType('WindowFunction', (_message.Message,), {'Bound': _reflection.GeneratedProtocolMessageType('Bound', (_message.Message,), {'Preceding': _reflection.GeneratedProtocolMessageType('Preceding', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING, '__module__': 'substrait.algebra_pb2'}), 'Following': _reflection.GeneratedProtocolMessageType('Following', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING, '__module__': 'substrait.algebra_pb2'}), 'CurrentRow': _reflection.GeneratedProtocolMessageType('CurrentRow', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW, '__module__': 'substrait.algebra_pb2'}), 'Unbounded': _reflection.GeneratedProtocolMessageType('Unbounded', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION_BOUND, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_WINDOWFUNCTION, '__module__': 'substrait.algebra_pb2'}), 'IfThen': _reflection.GeneratedProtocolMessageType('IfThen', (_message.Message,), {'IfClause': _reflection.GeneratedProtocolMessageType('IfClause', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_IFTHEN_IFCLAUSE, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_IFTHEN, '__module__': 'substrait.algebra_pb2'}), 'Cast': _reflection.GeneratedProtocolMessageType('Cast', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_CAST, '__module__': 'substrait.algebra_pb2'}), 'SwitchExpression': _reflection.GeneratedProtocolMessageType('SwitchExpression', (_message.Message,), {'IfValue': _reflection.GeneratedProtocolMessageType('IfValue', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SWITCHEXPRESSION_IFVALUE, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_SWITCHEXPRESSION, '__module__': 'substrait.algebra_pb2'}), 'SingularOrList': _reflection.GeneratedProtocolMessageType('SingularOrList', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SINGULARORLIST, '__module__': 'substrait.algebra_pb2'}), 'MultiOrList': _reflection.GeneratedProtocolMessageType('MultiOrList', (_message.Message,), {'Record': _reflection.GeneratedProtocolMessageType('Record', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MULTIORLIST_RECORD, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_MULTIORLIST, '__module__': 'substrait.algebra_pb2'}), 'EmbeddedFunction': _reflection.GeneratedProtocolMessageType('EmbeddedFunction', (_message.Message,), {'PythonPickleFunction': _reflection.GeneratedProtocolMessageType('PythonPickleFunction', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION, '__module__': 'substrait.algebra_pb2'}), 'WebAssemblyFunction': _reflection.GeneratedProtocolMessageType('WebAssemblyFunction', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_EMBEDDEDFUNCTION, '__module__': 'substrait.algebra_pb2'}), 'ReferenceSegment': _reflection.GeneratedProtocolMessageType('ReferenceSegment', (_message.Message,), {'MapKey': _reflection.GeneratedProtocolMessageType('MapKey', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_REFERENCESEGMENT_MAPKEY, '__module__': 'substrait.algebra_pb2'}), 'StructField': _reflection.GeneratedProtocolMessageType('StructField', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD, '__module__': 'substrait.algebra_pb2'}), 'ListElement': _reflection.GeneratedProtocolMessageType('ListElement', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_REFERENCESEGMENT_LISTELEMENT, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_REFERENCESEGMENT, '__module__': 'substrait.algebra_pb2'}), 'MaskExpression': _reflection.GeneratedProtocolMessageType('MaskExpression', (_message.Message,), {'Select': _reflection.GeneratedProtocolMessageType('Select', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_SELECT, '__module__': 'substrait.algebra_pb2'}), 'StructSelect': _reflection.GeneratedProtocolMessageType('StructSelect', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_STRUCTSELECT, '__module__': 'substrait.algebra_pb2'}), 'StructItem': _reflection.GeneratedProtocolMessageType('StructItem', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_STRUCTITEM, '__module__': 'substrait.algebra_pb2'}), '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__': 'substrait.algebra_pb2'}), 'ListSlice': _reflection.GeneratedProtocolMessageType('ListSlice', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_LISTSELECT, '__module__': 'substrait.algebra_pb2'}), 'MapSelect': _reflection.GeneratedProtocolMessageType('MapSelect', (_message.Message,), {'MapKey': _reflection.GeneratedProtocolMessageType('MapKey', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY, '__module__': 'substrait.algebra_pb2'}), 'MapKeyExpression': _reflection.GeneratedProtocolMessageType('MapKeyExpression', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION_MAPSELECT, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_MASKEXPRESSION, '__module__': 'substrait.algebra_pb2'}), 'FieldReference': _reflection.GeneratedProtocolMessageType('FieldReference', (_message.Message,), {'RootReference': _reflection.GeneratedProtocolMessageType('RootReference', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE, '__module__': 'substrait.algebra_pb2'}), 'OuterReference': _reflection.GeneratedProtocolMessageType('OuterReference', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_FIELDREFERENCE, '__module__': 'substrait.algebra_pb2'}), 'Subquery': _reflection.GeneratedProtocolMessageType('Subquery', (_message.Message,), {'Scalar': _reflection.GeneratedProtocolMessageType('Scalar', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SUBQUERY_SCALAR, '__module__': 'substrait.algebra_pb2'}), 'InPredicate': _reflection.GeneratedProtocolMessageType('InPredicate', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SUBQUERY_INPREDICATE, '__module__': 'substrait.algebra_pb2'}), 'SetPredicate': _reflection.GeneratedProtocolMessageType('SetPredicate', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SUBQUERY_SETPREDICATE, '__module__': 'substrait.algebra_pb2'}), 'SetComparison': _reflection.GeneratedProtocolMessageType('SetComparison', (_message.Message,), {'DESCRIPTOR': _EXPRESSION_SUBQUERY_SETCOMPARISON, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION_SUBQUERY, '__module__': 'substrait.algebra_pb2'}), 'DESCRIPTOR': _EXPRESSION, '__module__': 'substrait.algebra_pb2'}) _sym_db.RegisterMessage(Expression) _sym_db.RegisterMessage(Expression.Enum) _sym_db.RegisterMessage(Expression.Enum.Empty) @@ -161,6 +190,7 @@ _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.ScalarFunction) _sym_db.RegisterMessage(Expression.WindowFunction) _sym_db.RegisterMessage(Expression.WindowFunction.Bound) @@ -208,184 +238,224 @@ _sym_db.RegisterMessage(AggregateFunction) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobuf' - _AGGREGATIONPHASE._serialized_start = 15890 - _AGGREGATIONPHASE._serialized_end = 16129 - _RELCOMMON._serialized_start = 127 - _RELCOMMON._serialized_end = 945 - _RELCOMMON_DIRECT._serialized_start = 379 - _RELCOMMON_DIRECT._serialized_end = 387 - _RELCOMMON_EMIT._serialized_start = 389 - _RELCOMMON_EMIT._serialized_end = 434 - _RELCOMMON_HINT._serialized_start = 437 - _RELCOMMON_HINT._serialized_end = 932 - _RELCOMMON_HINT_STATS._serialized_start = 666 - _RELCOMMON_HINT_STATS._serialized_end = 823 - _RELCOMMON_HINT_RUNTIMECONSTRAINT._serialized_start = 825 - _RELCOMMON_HINT_RUNTIMECONSTRAINT._serialized_end = 932 - _READREL._serialized_start = 948 - _READREL._serialized_end = 2385 - _READREL_NAMEDTABLE._serialized_start = 1549 - _READREL_NAMEDTABLE._serialized_end = 1671 - _READREL_VIRTUALTABLE._serialized_start = 1673 - _READREL_VIRTUALTABLE._serialized_end = 1749 - _READREL_EXTENSIONTABLE._serialized_start = 1751 - _READREL_EXTENSIONTABLE._serialized_end = 1813 - _READREL_LOCALFILES._serialized_start = 1816 - _READREL_LOCALFILES._serialized_end = 2372 - _READREL_LOCALFILES_FILEORFILES._serialized_start = 1984 - _READREL_LOCALFILES_FILEORFILES._serialized_end = 2372 - _READREL_LOCALFILES_FILEORFILES_FILEFORMAT._serialized_start = 2293 - _READREL_LOCALFILES_FILEORFILES_FILEFORMAT._serialized_end = 2359 - _PROJECTREL._serialized_start = 2388 - _PROJECTREL._serialized_end = 2629 - _JOINREL._serialized_start = 2632 - _JOINREL._serialized_end = 3203 - _JOINREL_JOINTYPE._serialized_start = 3021 - _JOINREL_JOINTYPE._serialized_end = 3203 - _CROSSREL._serialized_start = 3206 - _CROSSREL._serialized_end = 3424 - _FETCHREL._serialized_start = 3427 - _FETCHREL._serialized_end = 3655 - _AGGREGATEREL._serialized_start = 3658 - _AGGREGATEREL._serialized_end = 4169 - _AGGREGATEREL_GROUPING._serialized_start = 3971 - _AGGREGATEREL_GROUPING._serialized_end = 4055 - _AGGREGATEREL_MEASURE._serialized_start = 4057 - _AGGREGATEREL_MEASURE._serialized_end = 4169 - _SORTREL._serialized_start = 4172 - _SORTREL._serialized_end = 4397 - _FILTERREL._serialized_start = 4400 - _FILTERREL._serialized_end = 4636 - _SETREL._serialized_start = 4639 - _SETREL._serialized_end = 5065 - _SETREL_SETOP._serialized_start = 4865 - _SETREL_SETOP._serialized_end = 5065 - _EXTENSIONSINGLEREL._serialized_start = 5068 - _EXTENSIONSINGLEREL._serialized_end = 5218 - _EXTENSIONLEAFREL._serialized_start = 5220 - _EXTENSIONLEAFREL._serialized_end = 5330 - _EXTENSIONMULTIREL._serialized_start = 5333 - _EXTENSIONMULTIREL._serialized_end = 5484 - _RELROOT._serialized_start = 5486 - _RELROOT._serialized_end = 5555 - _REL._serialized_start = 5558 - _REL._serialized_end = 6205 - _EXPRESSION._serialized_start = 6208 - _EXPRESSION._serialized_end = 15198 - _EXPRESSION_ENUM._serialized_start = 6975 - _EXPRESSION_ENUM._serialized_end = 7105 - _EXPRESSION_ENUM_EMPTY._serialized_start = 7085 - _EXPRESSION_ENUM_EMPTY._serialized_end = 7092 - _EXPRESSION_LITERAL._serialized_start = 7108 - _EXPRESSION_LITERAL._serialized_end = 8843 - _EXPRESSION_LITERAL_VARCHAR._serialized_start = 8224 - _EXPRESSION_LITERAL_VARCHAR._serialized_end = 8279 - _EXPRESSION_LITERAL_DECIMAL._serialized_start = 8281 - _EXPRESSION_LITERAL_DECIMAL._serialized_end = 8364 - _EXPRESSION_LITERAL_MAP._serialized_start = 8367 - _EXPRESSION_LITERAL_MAP._serialized_end = 8561 - _EXPRESSION_LITERAL_MAP_KEYVALUE._serialized_start = 8449 - _EXPRESSION_LITERAL_MAP_KEYVALUE._serialized_end = 8561 - _EXPRESSION_LITERAL_INTERVALYEARTOMONTH._serialized_start = 8563 - _EXPRESSION_LITERAL_INTERVALYEARTOMONTH._serialized_end = 8630 - _EXPRESSION_LITERAL_INTERVALDAYTOSECOND._serialized_start = 8632 - _EXPRESSION_LITERAL_INTERVALDAYTOSECOND._serialized_end = 8699 - _EXPRESSION_LITERAL_STRUCT._serialized_start = 8701 - _EXPRESSION_LITERAL_STRUCT._serialized_end = 8764 - _EXPRESSION_LITERAL_LIST._serialized_start = 8766 - _EXPRESSION_LITERAL_LIST._serialized_end = 8827 - _EXPRESSION_SCALARFUNCTION._serialized_start = 8846 - _EXPRESSION_SCALARFUNCTION._serialized_end = 9002 - _EXPRESSION_WINDOWFUNCTION._serialized_start = 9005 - _EXPRESSION_WINDOWFUNCTION._serialized_end = 9932 - _EXPRESSION_WINDOWFUNCTION_BOUND._serialized_start = 9468 - _EXPRESSION_WINDOWFUNCTION_BOUND._serialized_end = 9932 - _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING._serialized_start = 9825 - _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING._serialized_end = 9860 - _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING._serialized_start = 9862 - _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING._serialized_end = 9897 - _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW._serialized_start = 9899 - _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW._serialized_end = 9911 - _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED._serialized_start = 9913 - _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED._serialized_end = 9924 - _EXPRESSION_IFTHEN._serialized_start = 9935 - _EXPRESSION_IFTHEN._serialized_end = 10137 - _EXPRESSION_IFTHEN_IFCLAUSE._serialized_start = 10045 - _EXPRESSION_IFTHEN_IFCLAUSE._serialized_end = 10137 - _EXPRESSION_CAST._serialized_start = 10139 - _EXPRESSION_CAST._serialized_end = 10227 - _EXPRESSION_SWITCHEXPRESSION._serialized_start = 10230 - _EXPRESSION_SWITCHEXPRESSION._serialized_end = 10458 - _EXPRESSION_SWITCHEXPRESSION_IFVALUE._serialized_start = 10359 - _EXPRESSION_SWITCHEXPRESSION_IFVALUE._serialized_end = 10458 - _EXPRESSION_SINGULARORLIST._serialized_start = 10460 - _EXPRESSION_SINGULARORLIST._serialized_end = 10570 - _EXPRESSION_MULTIORLIST._serialized_start = 10573 - _EXPRESSION_MULTIORLIST._serialized_end = 10756 - _EXPRESSION_MULTIORLIST_RECORD._serialized_start = 10701 - _EXPRESSION_MULTIORLIST_RECORD._serialized_end = 10756 - _EXPRESSION_EMBEDDEDFUNCTION._serialized_start = 10759 - _EXPRESSION_EMBEDDEDFUNCTION._serialized_end = 11290 - _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION._serialized_start = 11113 - _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION._serialized_end = 11199 - _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION._serialized_start = 11201 - _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION._serialized_end = 11282 - _EXPRESSION_REFERENCESEGMENT._serialized_start = 11293 - _EXPRESSION_REFERENCESEGMENT._serialized_end = 11909 - _EXPRESSION_REFERENCESEGMENT_MAPKEY._serialized_start = 11565 - _EXPRESSION_REFERENCESEGMENT_MAPKEY._serialized_end = 11691 - _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD._serialized_start = 11693 - _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD._serialized_end = 11790 - _EXPRESSION_REFERENCESEGMENT_LISTELEMENT._serialized_start = 11792 - _EXPRESSION_REFERENCESEGMENT_LISTELEMENT._serialized_end = 11891 - _EXPRESSION_MASKEXPRESSION._serialized_start = 11912 - _EXPRESSION_MASKEXPRESSION._serialized_end = 13354 - _EXPRESSION_MASKEXPRESSION_SELECT._serialized_start = 12064 - _EXPRESSION_MASKEXPRESSION_SELECT._serialized_end = 12296 - _EXPRESSION_MASKEXPRESSION_STRUCTSELECT._serialized_start = 12298 - _EXPRESSION_MASKEXPRESSION_STRUCTSELECT._serialized_end = 12396 - _EXPRESSION_MASKEXPRESSION_STRUCTITEM._serialized_start = 12398 - _EXPRESSION_MASKEXPRESSION_STRUCTITEM._serialized_end = 12499 - _EXPRESSION_MASKEXPRESSION_LISTSELECT._serialized_start = 12502 - _EXPRESSION_MASKEXPRESSION_LISTSELECT._serialized_end = 12988 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM._serialized_start = 12678 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM._serialized_end = 12988 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT._serialized_start = 12892 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT._serialized_end = 12927 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE._serialized_start = 12929 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE._serialized_end = 12980 - _EXPRESSION_MASKEXPRESSION_MAPSELECT._serialized_start = 12991 - _EXPRESSION_MASKEXPRESSION_MAPSELECT._serialized_end = 13354 - _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY._serialized_start = 13245 - _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY._serialized_end = 13278 - _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION._serialized_start = 13280 - _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION._serialized_end = 13344 - _EXPRESSION_FIELDREFERENCE._serialized_start = 13357 - _EXPRESSION_FIELDREFERENCE._serialized_end = 13882 - _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE._serialized_start = 13789 - _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE._serialized_end = 13804 - _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE._serialized_start = 13806 - _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE._serialized_end = 13851 - _EXPRESSION_SUBQUERY._serialized_start = 13885 - _EXPRESSION_SUBQUERY._serialized_end = 15186 - _EXPRESSION_SUBQUERY_SCALAR._serialized_start = 14214 - _EXPRESSION_SUBQUERY_SCALAR._serialized_end = 14260 - _EXPRESSION_SUBQUERY_INPREDICATE._serialized_start = 14262 - _EXPRESSION_SUBQUERY_INPREDICATE._serialized_end = 14368 - _EXPRESSION_SUBQUERY_SETPREDICATE._serialized_start = 14371 - _EXPRESSION_SUBQUERY_SETPREDICATE._serialized_end = 14612 - _EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP._serialized_start = 14519 - _EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP._serialized_end = 14612 - _EXPRESSION_SUBQUERY_SETCOMPARISON._serialized_start = 14615 - _EXPRESSION_SUBQUERY_SETCOMPARISON._serialized_end = 15169 - _EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP._serialized_start = 14903 - _EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP._serialized_end = 15080 - _EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP._serialized_start = 15082 - _EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP._serialized_end = 15169 - _SORTFIELD._serialized_start = 15201 - _SORTFIELD._serialized_end = 15630 - _SORTFIELD_SORTDIRECTION._serialized_start = 15396 - _SORTFIELD_SORTDIRECTION._serialized_end = 15617 - _AGGREGATEFUNCTION._serialized_start = 15633 - _AGGREGATEFUNCTION._serialized_end = 15887 \ No newline at end of file + DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobuf' + _EXPRESSION_ENUM_EMPTY._options = None + _EXPRESSION_ENUM_EMPTY._serialized_options = b'\x18\x01' + _EXPRESSION_ENUM._options = None + _EXPRESSION_ENUM._serialized_options = b'\x18\x01' + _EXPRESSION_SCALARFUNCTION.fields_by_name['args']._options = None + _EXPRESSION_SCALARFUNCTION.fields_by_name['args']._serialized_options = b'\x18\x01' + _EXPRESSION_WINDOWFUNCTION.fields_by_name['args']._options = None + _EXPRESSION_WINDOWFUNCTION.fields_by_name['args']._serialized_options = b'\x18\x01' + _EXPRESSION.fields_by_name['enum']._options = None + _EXPRESSION.fields_by_name['enum']._serialized_options = b'\x18\x01' + _AGGREGATEFUNCTION.fields_by_name['args']._options = None + _AGGREGATEFUNCTION.fields_by_name['args']._serialized_options = b'\x18\x01' + _AGGREGATIONPHASE._serialized_start = 18656 + _AGGREGATIONPHASE._serialized_end = 18895 + _RELCOMMON._serialized_start = 156 + _RELCOMMON._serialized_end = 974 + _RELCOMMON_DIRECT._serialized_start = 408 + _RELCOMMON_DIRECT._serialized_end = 416 + _RELCOMMON_EMIT._serialized_start = 418 + _RELCOMMON_EMIT._serialized_end = 463 + _RELCOMMON_HINT._serialized_start = 466 + _RELCOMMON_HINT._serialized_end = 961 + _RELCOMMON_HINT_STATS._serialized_start = 695 + _RELCOMMON_HINT_STATS._serialized_end = 852 + _RELCOMMON_HINT_RUNTIMECONSTRAINT._serialized_start = 854 + _RELCOMMON_HINT_RUNTIMECONSTRAINT._serialized_end = 961 + _READREL._serialized_start = 977 + _READREL._serialized_end = 2663 + _READREL_NAMEDTABLE._serialized_start = 1578 + _READREL_NAMEDTABLE._serialized_end = 1700 + _READREL_VIRTUALTABLE._serialized_start = 1702 + _READREL_VIRTUALTABLE._serialized_end = 1778 + _READREL_EXTENSIONTABLE._serialized_start = 1780 + _READREL_EXTENSIONTABLE._serialized_end = 1842 + _READREL_LOCALFILES._serialized_start = 1845 + _READREL_LOCALFILES._serialized_end = 2650 + _READREL_LOCALFILES_FILEORFILES._serialized_start = 2013 + _READREL_LOCALFILES_FILEORFILES._serialized_end = 2650 + _READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS._serialized_start = 2550 + _READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS._serialized_end = 2570 + _READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS._serialized_start = 2572 + _READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS._serialized_end = 2590 + _READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS._serialized_start = 2592 + _READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS._serialized_end = 2608 + _PROJECTREL._serialized_start = 2666 + _PROJECTREL._serialized_end = 2907 + _JOINREL._serialized_start = 2910 + _JOINREL._serialized_end = 3481 + _JOINREL_JOINTYPE._serialized_start = 3299 + _JOINREL_JOINTYPE._serialized_end = 3481 + _CROSSREL._serialized_start = 3484 + _CROSSREL._serialized_end = 3702 + _FETCHREL._serialized_start = 3705 + _FETCHREL._serialized_end = 3933 + _AGGREGATEREL._serialized_start = 3936 + _AGGREGATEREL._serialized_end = 4447 + _AGGREGATEREL_GROUPING._serialized_start = 4249 + _AGGREGATEREL_GROUPING._serialized_end = 4333 + _AGGREGATEREL_MEASURE._serialized_start = 4335 + _AGGREGATEREL_MEASURE._serialized_end = 4447 + _SORTREL._serialized_start = 4450 + _SORTREL._serialized_end = 4675 + _FILTERREL._serialized_start = 4678 + _FILTERREL._serialized_end = 4914 + _SETREL._serialized_start = 4917 + _SETREL._serialized_end = 5343 + _SETREL_SETOP._serialized_start = 5143 + _SETREL_SETOP._serialized_end = 5343 + _EXTENSIONSINGLEREL._serialized_start = 5346 + _EXTENSIONSINGLEREL._serialized_end = 5496 + _EXTENSIONLEAFREL._serialized_start = 5498 + _EXTENSIONLEAFREL._serialized_end = 5608 + _EXTENSIONMULTIREL._serialized_start = 5611 + _EXTENSIONMULTIREL._serialized_end = 5762 + _EXCHANGEREL._serialized_start = 5765 + _EXCHANGEREL._serialized_end = 6943 + _EXCHANGEREL_SCATTERFIELDS._serialized_start = 6447 + _EXCHANGEREL_SCATTERFIELDS._serialized_end = 6524 + _EXCHANGEREL_SINGLEBUCKETEXPRESSION._serialized_start = 6526 + _EXCHANGEREL_SINGLEBUCKETEXPRESSION._serialized_end = 6605 + _EXCHANGEREL_MULTIBUCKETEXPRESSION._serialized_start = 6608 + _EXCHANGEREL_MULTIBUCKETEXPRESSION._serialized_end = 6736 + _EXCHANGEREL_BROADCAST._serialized_start = 6738 + _EXCHANGEREL_BROADCAST._serialized_end = 6749 + _EXCHANGEREL_ROUNDROBIN._serialized_start = 6751 + _EXCHANGEREL_ROUNDROBIN._serialized_end = 6785 + _EXCHANGEREL_EXCHANGETARGET._serialized_start = 6788 + _EXCHANGEREL_EXCHANGETARGET._serialized_end = 6926 + _RELROOT._serialized_start = 6945 + _RELROOT._serialized_end = 7014 + _REL._serialized_start = 7017 + _REL._serialized_end = 7664 + _FUNCTIONARGUMENT._serialized_start = 7667 + _FUNCTIONARGUMENT._serialized_end = 7952 + _FUNCTIONARGUMENT_ENUM._serialized_start = 7829 + _FUNCTIONARGUMENT_ENUM._serialized_end = 7940 + _EXPRESSION._serialized_start = 7955 + _EXPRESSION._serialized_end = 17682 + _EXPRESSION_ENUM._serialized_start = 8726 + _EXPRESSION_ENUM._serialized_end = 8864 + _EXPRESSION_ENUM_EMPTY._serialized_start = 8836 + _EXPRESSION_ENUM_EMPTY._serialized_end = 8847 + _EXPRESSION_LITERAL._serialized_start = 8867 + _EXPRESSION_LITERAL._serialized_end = 10943 + _EXPRESSION_LITERAL_VARCHAR._serialized_start = 10121 + _EXPRESSION_LITERAL_VARCHAR._serialized_end = 10176 + _EXPRESSION_LITERAL_DECIMAL._serialized_start = 10178 + _EXPRESSION_LITERAL_DECIMAL._serialized_end = 10261 + _EXPRESSION_LITERAL_MAP._serialized_start = 10264 + _EXPRESSION_LITERAL_MAP._serialized_end = 10458 + _EXPRESSION_LITERAL_MAP_KEYVALUE._serialized_start = 10346 + _EXPRESSION_LITERAL_MAP_KEYVALUE._serialized_end = 10458 + _EXPRESSION_LITERAL_INTERVALYEARTOMONTH._serialized_start = 10460 + _EXPRESSION_LITERAL_INTERVALYEARTOMONTH._serialized_end = 10527 + _EXPRESSION_LITERAL_INTERVALDAYTOSECOND._serialized_start = 10529 + _EXPRESSION_LITERAL_INTERVALDAYTOSECOND._serialized_end = 10632 + _EXPRESSION_LITERAL_STRUCT._serialized_start = 10634 + _EXPRESSION_LITERAL_STRUCT._serialized_end = 10697 + _EXPRESSION_LITERAL_LIST._serialized_start = 10699 + _EXPRESSION_LITERAL_LIST._serialized_end = 10760 + _EXPRESSION_LITERAL_USERDEFINED._serialized_start = 10763 + _EXPRESSION_LITERAL_USERDEFINED._serialized_end = 10927 + _EXPRESSION_SCALARFUNCTION._serialized_start = 10946 + _EXPRESSION_SCALARFUNCTION._serialized_end = 11165 + _EXPRESSION_WINDOWFUNCTION._serialized_start = 11168 + _EXPRESSION_WINDOWFUNCTION._serialized_end = 12158 + _EXPRESSION_WINDOWFUNCTION_BOUND._serialized_start = 11694 + _EXPRESSION_WINDOWFUNCTION_BOUND._serialized_end = 12158 + _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING._serialized_start = 12051 + _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING._serialized_end = 12086 + _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING._serialized_start = 12088 + _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING._serialized_end = 12123 + _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW._serialized_start = 12125 + _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW._serialized_end = 12137 + _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED._serialized_start = 12139 + _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED._serialized_end = 12150 + _EXPRESSION_IFTHEN._serialized_start = 12161 + _EXPRESSION_IFTHEN._serialized_end = 12363 + _EXPRESSION_IFTHEN_IFCLAUSE._serialized_start = 12271 + _EXPRESSION_IFTHEN_IFCLAUSE._serialized_end = 12363 + _EXPRESSION_CAST._serialized_start = 12366 + _EXPRESSION_CAST._serialized_end = 12666 + _EXPRESSION_CAST_FAILUREBEHAVIOR._serialized_start = 12543 + _EXPRESSION_CAST_FAILUREBEHAVIOR._serialized_end = 12666 + _EXPRESSION_SWITCHEXPRESSION._serialized_start = 12669 + _EXPRESSION_SWITCHEXPRESSION._serialized_end = 12942 + _EXPRESSION_SWITCHEXPRESSION_IFVALUE._serialized_start = 12843 + _EXPRESSION_SWITCHEXPRESSION_IFVALUE._serialized_end = 12942 + _EXPRESSION_SINGULARORLIST._serialized_start = 12944 + _EXPRESSION_SINGULARORLIST._serialized_end = 13054 + _EXPRESSION_MULTIORLIST._serialized_start = 13057 + _EXPRESSION_MULTIORLIST._serialized_end = 13240 + _EXPRESSION_MULTIORLIST_RECORD._serialized_start = 13185 + _EXPRESSION_MULTIORLIST_RECORD._serialized_end = 13240 + _EXPRESSION_EMBEDDEDFUNCTION._serialized_start = 13243 + _EXPRESSION_EMBEDDEDFUNCTION._serialized_end = 13774 + _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION._serialized_start = 13597 + _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION._serialized_end = 13683 + _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION._serialized_start = 13685 + _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION._serialized_end = 13766 + _EXPRESSION_REFERENCESEGMENT._serialized_start = 13777 + _EXPRESSION_REFERENCESEGMENT._serialized_end = 14393 + _EXPRESSION_REFERENCESEGMENT_MAPKEY._serialized_start = 14049 + _EXPRESSION_REFERENCESEGMENT_MAPKEY._serialized_end = 14175 + _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD._serialized_start = 14177 + _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD._serialized_end = 14274 + _EXPRESSION_REFERENCESEGMENT_LISTELEMENT._serialized_start = 14276 + _EXPRESSION_REFERENCESEGMENT_LISTELEMENT._serialized_end = 14375 + _EXPRESSION_MASKEXPRESSION._serialized_start = 14396 + _EXPRESSION_MASKEXPRESSION._serialized_end = 15838 + _EXPRESSION_MASKEXPRESSION_SELECT._serialized_start = 14548 + _EXPRESSION_MASKEXPRESSION_SELECT._serialized_end = 14780 + _EXPRESSION_MASKEXPRESSION_STRUCTSELECT._serialized_start = 14782 + _EXPRESSION_MASKEXPRESSION_STRUCTSELECT._serialized_end = 14880 + _EXPRESSION_MASKEXPRESSION_STRUCTITEM._serialized_start = 14882 + _EXPRESSION_MASKEXPRESSION_STRUCTITEM._serialized_end = 14983 + _EXPRESSION_MASKEXPRESSION_LISTSELECT._serialized_start = 14986 + _EXPRESSION_MASKEXPRESSION_LISTSELECT._serialized_end = 15472 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM._serialized_start = 15162 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM._serialized_end = 15472 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT._serialized_start = 15376 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT._serialized_end = 15411 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE._serialized_start = 15413 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE._serialized_end = 15464 + _EXPRESSION_MASKEXPRESSION_MAPSELECT._serialized_start = 15475 + _EXPRESSION_MASKEXPRESSION_MAPSELECT._serialized_end = 15838 + _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY._serialized_start = 15729 + _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY._serialized_end = 15762 + _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION._serialized_start = 15764 + _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION._serialized_end = 15828 + _EXPRESSION_FIELDREFERENCE._serialized_start = 15841 + _EXPRESSION_FIELDREFERENCE._serialized_end = 16366 + _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE._serialized_start = 16273 + _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE._serialized_end = 16288 + _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE._serialized_start = 16290 + _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE._serialized_end = 16335 + _EXPRESSION_SUBQUERY._serialized_start = 16369 + _EXPRESSION_SUBQUERY._serialized_end = 17670 + _EXPRESSION_SUBQUERY_SCALAR._serialized_start = 16698 + _EXPRESSION_SUBQUERY_SCALAR._serialized_end = 16744 + _EXPRESSION_SUBQUERY_INPREDICATE._serialized_start = 16746 + _EXPRESSION_SUBQUERY_INPREDICATE._serialized_end = 16852 + _EXPRESSION_SUBQUERY_SETPREDICATE._serialized_start = 16855 + _EXPRESSION_SUBQUERY_SETPREDICATE._serialized_end = 17096 + _EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP._serialized_start = 17003 + _EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP._serialized_end = 17096 + _EXPRESSION_SUBQUERY_SETCOMPARISON._serialized_start = 17099 + _EXPRESSION_SUBQUERY_SETCOMPARISON._serialized_end = 17653 + _EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP._serialized_start = 17387 + _EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP._serialized_end = 17564 + _EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP._serialized_start = 17566 + _EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP._serialized_end = 17653 + _SORTFIELD._serialized_start = 17685 + _SORTFIELD._serialized_end = 18114 + _SORTFIELD_SORTDIRECTION._serialized_start = 17880 + _SORTFIELD_SORTDIRECTION._serialized_end = 18101 + _AGGREGATEFUNCTION._serialized_start = 18117 + _AGGREGATEFUNCTION._serialized_end = 18653 + _AGGREGATEFUNCTION_AGGREGATIONINVOCATION._serialized_start = 18521 + _AGGREGATEFUNCTION_AGGREGATIONINVOCATION._serialized_end = 18653 \ No newline at end of file diff --git a/ibis_substrait/proto/substrait/algebra_pb2.pyi b/ibis_substrait/proto/substrait/algebra_pb2.pyi index 3164dc87..c950c812 100644 --- a/ibis_substrait/proto/substrait/algebra_pb2.pyi +++ b/ibis_substrait/proto/substrait/algebra_pb2.pyi @@ -5,11 +5,11 @@ isort:skip_file import builtins import google.protobuf.any_pb2 import google.protobuf.descriptor +import google.protobuf.empty_pb2 import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message from .. import substrait -from .. import substrait import typing import typing_extensions DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @@ -36,15 +36,18 @@ AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT: AggregationPhase.ValueType global___AggregationPhase = AggregationPhase class RelCommon(google.protobuf.message.Message): + """Common fields for all relational operators""" DESCRIPTOR: google.protobuf.descriptor.Descriptor class Direct(google.protobuf.message.Message): + """Direct indicates no change on presence and ordering of fields in the output""" DESCRIPTOR: google.protobuf.descriptor.Descriptor def __init__(self) -> None: ... class Emit(google.protobuf.message.Message): + """Remap which fields are output and in which order""" DESCRIPTOR: google.protobuf.descriptor.Descriptor OUTPUT_MAPPING_FIELD_NUMBER: builtins.int @@ -65,6 +68,7 @@ class RelCommon(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class Stats(google.protobuf.message.Message): + """The statistics related to a hint (physical properties of records)""" DESCRIPTOR: google.protobuf.descriptor.Descriptor ROW_COUNT_FIELD_NUMBER: builtins.int RECORD_SIZE_FIELD_NUMBER: builtins.int @@ -133,11 +137,13 @@ class RelCommon(google.protobuf.message.Message): @property def direct(self) -> global___RelCommon.Direct: - ... + """The underlying relation is output as is (no reordering or projection of columns)""" + pass @property def emit(self) -> global___RelCommon.Emit: - ... + """Allows to control for order and inclusion of fields""" + pass @property def hint(self) -> global___RelCommon.Hint: @@ -161,9 +167,13 @@ class RelCommon(google.protobuf.message.Message): global___RelCommon = RelCommon class ReadRel(google.protobuf.message.Message): + """The scan operator of base data (physical or virtual), including filtering and projection.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor class NamedTable(google.protobuf.message.Message): + """A base table. The list of string is used to represent namespacing (e.g., mydb.mytable). + This assumes shared catalog between systems exchanging a message. + """ DESCRIPTOR: google.protobuf.descriptor.Descriptor NAMES_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int @@ -186,7 +196,7 @@ class ReadRel(google.protobuf.message.Message): ... class VirtualTable(google.protobuf.message.Message): - """a table composed of literals.""" + """A table composed of literals.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor VALUES_FIELD_NUMBER: builtins.int @@ -201,7 +211,7 @@ class ReadRel(google.protobuf.message.Message): ... class ExtensionTable(google.protobuf.message.Message): - """a stub type that can be used to extend/introduce new table types outside + """A stub type that can be used to extend/introduce new table types outside the specification. """ DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -221,6 +231,7 @@ class ReadRel(google.protobuf.message.Message): ... class LocalFiles(google.protobuf.message.Message): + """Represents a list of files in input of a scan operation""" DESCRIPTOR: google.protobuf.descriptor.Descriptor class FileOrFiles(google.protobuf.message.Message): @@ -232,48 +243,79 @@ class ReadRel(google.protobuf.message.Message): """ DESCRIPTOR: google.protobuf.descriptor.Descriptor - class _FileFormat: - ValueType = typing.NewType('ValueType', builtins.int) - V: typing_extensions.TypeAlias = ValueType + class ParquetReadOptions(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor - class _FileFormatEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ReadRel.LocalFiles.FileOrFiles._FileFormat.ValueType], builtins.type): - DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - FILE_FORMAT_UNSPECIFIED: ReadRel.LocalFiles.FileOrFiles._FileFormat.ValueType - FILE_FORMAT_PARQUET: ReadRel.LocalFiles.FileOrFiles._FileFormat.ValueType + def __init__(self) -> None: + ... - class FileFormat(_FileFormat, metaclass=_FileFormatEnumTypeWrapper): - pass - FILE_FORMAT_UNSPECIFIED: ReadRel.LocalFiles.FileOrFiles.FileFormat.ValueType - FILE_FORMAT_PARQUET: ReadRel.LocalFiles.FileOrFiles.FileFormat.ValueType + class ArrowReadOptions(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__(self) -> None: + ... + + class OrcReadOptions(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__(self) -> None: + ... URI_PATH_FIELD_NUMBER: builtins.int URI_PATH_GLOB_FIELD_NUMBER: builtins.int URI_FILE_FIELD_NUMBER: builtins.int URI_FOLDER_FIELD_NUMBER: builtins.int - FORMAT_FIELD_NUMBER: builtins.int PARTITION_INDEX_FIELD_NUMBER: builtins.int START_FIELD_NUMBER: builtins.int LENGTH_FIELD_NUMBER: builtins.int + PARQUET_FIELD_NUMBER: builtins.int + ARROW_FIELD_NUMBER: builtins.int + ORC_FIELD_NUMBER: builtins.int + EXTENSION_FIELD_NUMBER: builtins.int uri_path: typing.Text + 'A URI that can refer to either a single folder or a single file' uri_path_glob: typing.Text + 'A URI where the path portion is a glob expression that can\n identify zero or more paths.\n Consumers should support the POSIX syntax. The recursive\n globstar (**) may not be supported.\n ' uri_file: typing.Text + 'A URI that refers to a single file' uri_folder: typing.Text - format: global___ReadRel.LocalFiles.FileOrFiles.FileFormat.ValueType + 'A URI that refers to a single folder' partition_index: builtins.int - 'the index of the partition this item belongs to' + 'The index of the partition this item belongs to' start: builtins.int - 'the start position in byte to read from this item' + 'The start position in byte to read from this item' length: builtins.int - 'the length in byte to read from this item' + 'The length in byte to read from this item' + + @property + def parquet(self) -> global___ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions: + ... + + @property + def arrow(self) -> global___ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions: + ... + + @property + def orc(self) -> global___ReadRel.LocalFiles.FileOrFiles.OrcReadOptions: + ... + + @property + def extension(self) -> google.protobuf.any_pb2.Any: + ... + + def __init__(self, *, uri_path: typing.Text=..., uri_path_glob: typing.Text=..., uri_file: typing.Text=..., uri_folder: typing.Text=..., partition_index: builtins.int=..., start: builtins.int=..., length: builtins.int=..., parquet: typing.Optional[global___ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions]=..., arrow: typing.Optional[global___ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions]=..., orc: typing.Optional[global___ReadRel.LocalFiles.FileOrFiles.OrcReadOptions]=..., extension: typing.Optional[google.protobuf.any_pb2.Any]=...) -> None: + ... - def __init__(self, *, uri_path: typing.Text=..., uri_path_glob: typing.Text=..., uri_file: typing.Text=..., uri_folder: typing.Text=..., format: global___ReadRel.LocalFiles.FileOrFiles.FileFormat.ValueType=..., partition_index: builtins.int=..., start: builtins.int=..., length: builtins.int=...) -> None: + def HasField(self, field_name: typing_extensions.Literal['arrow', b'arrow', 'extension', b'extension', 'file_format', b'file_format', 'orc', b'orc', 'parquet', b'parquet', 'path_type', b'path_type', 'uri_file', b'uri_file', 'uri_folder', b'uri_folder', 'uri_path', b'uri_path', 'uri_path_glob', b'uri_path_glob']) -> builtins.bool: ... - def HasField(self, field_name: typing_extensions.Literal['path_type', b'path_type', 'uri_file', b'uri_file', 'uri_folder', b'uri_folder', 'uri_path', b'uri_path', 'uri_path_glob', b'uri_path_glob']) -> builtins.bool: + def ClearField(self, field_name: typing_extensions.Literal['arrow', b'arrow', 'extension', b'extension', 'file_format', b'file_format', 'length', b'length', 'orc', b'orc', 'parquet', b'parquet', 'partition_index', b'partition_index', 'path_type', b'path_type', 'start', b'start', 'uri_file', b'uri_file', 'uri_folder', b'uri_folder', 'uri_path', b'uri_path', 'uri_path_glob', b'uri_path_glob']) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal['format', b'format', 'length', b'length', 'partition_index', b'partition_index', 'path_type', b'path_type', 'start', b'start', 'uri_file', b'uri_file', 'uri_folder', b'uri_folder', 'uri_path', b'uri_path', 'uri_path_glob', b'uri_path_glob']) -> None: + @typing.overload + def WhichOneof(self, oneof_group: typing_extensions.Literal['file_format', b'file_format']) -> typing.Optional[typing_extensions.Literal['parquet', 'arrow', 'orc', 'extension']]: ... + @typing.overload def WhichOneof(self, oneof_group: typing_extensions.Literal['path_type', b'path_type']) -> typing.Optional[typing_extensions.Literal['uri_path', 'uri_path_glob', 'uri_file', 'uri_folder']]: ... ITEMS_FIELD_NUMBER: builtins.int @@ -355,6 +397,7 @@ class ReadRel(google.protobuf.message.Message): global___ReadRel = ReadRel class ProjectRel(google.protobuf.message.Message): + """This operator allows to represent calculated expressions of fields (e.g., a+b). Direct/Emit are used to represent classical relational projections""" DESCRIPTOR: google.protobuf.descriptor.Descriptor COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int @@ -388,6 +431,7 @@ class ProjectRel(google.protobuf.message.Message): global___ProjectRel = ProjectRel class JoinRel(google.protobuf.message.Message): + """The binary JOIN relational operator left-join-right, including various join types, a join condition and post_join_filter expression""" DESCRIPTOR: google.protobuf.descriptor.Descriptor class _JoinType: @@ -404,6 +448,7 @@ class JoinRel(google.protobuf.message.Message): JOIN_TYPE_SEMI: JoinRel._JoinType.ValueType JOIN_TYPE_ANTI: JoinRel._JoinType.ValueType JOIN_TYPE_SINGLE: JoinRel._JoinType.ValueType + 'This join is useful for nested sub-queries where we need exactly one tuple in output (or throw exception)\n See Section 3.2 of https://15721.courses.cs.cmu.edu/spring2018/papers/16-optimizer2/hyperjoins-btw2017.pdf\n ' class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): pass @@ -415,6 +460,7 @@ class JoinRel(google.protobuf.message.Message): JOIN_TYPE_SEMI: JoinRel.JoinType.ValueType JOIN_TYPE_ANTI: JoinRel.JoinType.ValueType JOIN_TYPE_SINGLE: JoinRel.JoinType.ValueType + 'This join is useful for nested sub-queries where we need exactly one tuple in output (or throw exception)\n See Section 3.2 of https://15721.courses.cs.cmu.edu/spring2018/papers/16-optimizer2/hyperjoins-btw2017.pdf\n ' COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int @@ -459,6 +505,7 @@ class JoinRel(google.protobuf.message.Message): global___JoinRel = JoinRel class CrossRel(google.protobuf.message.Message): + """Cartesian product relational operator of two tables (left and right)""" DESCRIPTOR: google.protobuf.descriptor.Descriptor COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int @@ -492,6 +539,7 @@ class CrossRel(google.protobuf.message.Message): global___CrossRel = CrossRel class FetchRel(google.protobuf.message.Message): + """The relational operator representing LIMIT/OFFSET or TOP type semantics.""" DESCRIPTOR: google.protobuf.descriptor.Descriptor COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int @@ -507,7 +555,9 @@ class FetchRel(google.protobuf.message.Message): def input(self) -> global___Rel: ... offset: builtins.int + 'the offset expressed in number of records' count: builtins.int + 'the amount of records to return' @property def advanced_extension(self) -> substrait.extensions.extensions_pb2.AdvancedExtension: @@ -524,6 +574,7 @@ class FetchRel(google.protobuf.message.Message): global___FetchRel = FetchRel class AggregateRel(google.protobuf.message.Message): + """The relational operator representing a GROUP BY Aggregate""" DESCRIPTOR: google.protobuf.descriptor.Descriptor class Grouping(google.protobuf.message.Message): @@ -554,6 +605,7 @@ class AggregateRel(google.protobuf.message.Message): """An optional boolean expression that acts to filter which records are included in the measure. True means include this record for calculation within the measure. + Helps to support SUM() FILTER(WHERE...) syntax without masking opportunities for optimization """ pass @@ -577,15 +629,18 @@ class AggregateRel(google.protobuf.message.Message): @property def input(self) -> global___Rel: - ... + """Input of the aggregation""" + pass @property def groupings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AggregateRel.Grouping]: - ... + """A list of expression grouping that the aggregation measured should be calculated for.""" + pass @property def measures(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___AggregateRel.Measure]: - ... + """A list of one or more aggregate expressions along with an optional filter.""" + pass @property def advanced_extension(self) -> substrait.extensions.extensions_pb2.AdvancedExtension: @@ -602,6 +657,7 @@ class AggregateRel(google.protobuf.message.Message): global___AggregateRel = AggregateRel class SortRel(google.protobuf.message.Message): + """The ORDERY BY (or sorting) relational operator. Beside describing a base relation, it includes a list of fields to sort on""" DESCRIPTOR: google.protobuf.descriptor.Descriptor COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int @@ -635,6 +691,7 @@ class SortRel(google.protobuf.message.Message): global___SortRel = SortRel class FilterRel(google.protobuf.message.Message): + """The relational operator capturing simple FILTERs (as in the WHERE clause of SQL)""" DESCRIPTOR: google.protobuf.descriptor.Descriptor COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int @@ -668,6 +725,7 @@ class FilterRel(google.protobuf.message.Message): global___FilterRel = FilterRel class SetRel(google.protobuf.message.Message): + """The relational set operators (intersection/union/etc..)""" DESCRIPTOR: google.protobuf.descriptor.Descriptor class _SetOp: @@ -803,6 +861,173 @@ class ExtensionMultiRel(google.protobuf.message.Message): ... global___ExtensionMultiRel = ExtensionMultiRel +class ExchangeRel(google.protobuf.message.Message): + """A redistribution operation""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class ScatterFields(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + FIELDS_FIELD_NUMBER: builtins.int + + @property + def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: + ... + + def __init__(self, *, fields: typing.Optional[typing.Iterable[global___Expression.FieldReference]]=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['fields', b'fields']) -> None: + ... + + class SingleBucketExpression(google.protobuf.message.Message): + """Returns a single bucket number per record.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXPRESSION_FIELD_NUMBER: builtins.int + + @property + def expression(self) -> global___Expression: + ... + + def __init__(self, *, expression: typing.Optional[global___Expression]=...) -> None: + ... + + def HasField(self, field_name: typing_extensions.Literal['expression', b'expression']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing_extensions.Literal['expression', b'expression']) -> None: + ... + + class MultiBucketExpression(google.protobuf.message.Message): + """Returns zero or more bucket numbers per record""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXPRESSION_FIELD_NUMBER: builtins.int + CONSTRAINED_TO_COUNT_FIELD_NUMBER: builtins.int + + @property + def expression(self) -> global___Expression: + ... + constrained_to_count: builtins.bool + + def __init__(self, *, expression: typing.Optional[global___Expression]=..., constrained_to_count: builtins.bool=...) -> None: + ... + + def HasField(self, field_name: typing_extensions.Literal['expression', b'expression']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing_extensions.Literal['constrained_to_count', b'constrained_to_count', 'expression', b'expression']) -> None: + ... + + class Broadcast(google.protobuf.message.Message): + """Send all data to every target.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + def __init__(self) -> None: + ... + + class RoundRobin(google.protobuf.message.Message): + """Route approximately""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXACT_FIELD_NUMBER: builtins.int + exact: builtins.bool + 'whether the round robin behavior is required to exact (per record) or\n approximate. Defaults to approximate.\n ' + + def __init__(self, *, exact: builtins.bool=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['exact', b'exact']) -> None: + ... + + class ExchangeTarget(google.protobuf.message.Message): + """The message to describe partition targets of an exchange""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + PARTITION_ID_FIELD_NUMBER: builtins.int + URI_FIELD_NUMBER: builtins.int + EXTENDED_FIELD_NUMBER: builtins.int + + @property + def partition_id(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + """Describes the partition id(s) to send. If this is empty, all data is sent + to this target. + """ + pass + uri: typing.Text + + @property + def extended(self) -> google.protobuf.any_pb2.Any: + ... + + def __init__(self, *, partition_id: typing.Optional[typing.Iterable[builtins.int]]=..., uri: typing.Text=..., extended: typing.Optional[google.protobuf.any_pb2.Any]=...) -> None: + ... + + def HasField(self, field_name: typing_extensions.Literal['extended', b'extended', 'target_type', b'target_type', 'uri', b'uri']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing_extensions.Literal['extended', b'extended', 'partition_id', b'partition_id', 'target_type', b'target_type', 'uri', b'uri']) -> None: + ... + + def WhichOneof(self, oneof_group: typing_extensions.Literal['target_type', b'target_type']) -> typing.Optional[typing_extensions.Literal['uri', 'extended']]: + ... + COMMON_FIELD_NUMBER: builtins.int + INPUT_FIELD_NUMBER: builtins.int + PARTITION_COUNT_FIELD_NUMBER: builtins.int + TARGETS_FIELD_NUMBER: builtins.int + SCATTER_BY_FIELDS_FIELD_NUMBER: builtins.int + SINGLE_TARGET_FIELD_NUMBER: builtins.int + MULTI_TARGET_FIELD_NUMBER: builtins.int + ROUND_ROBIN_FIELD_NUMBER: builtins.int + BROADCAST_FIELD_NUMBER: builtins.int + ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + + @property + def common(self) -> global___RelCommon: + ... + + @property + def input(self) -> global___Rel: + ... + partition_count: builtins.int + + @property + def targets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExchangeRel.ExchangeTarget]: + ... + + @property + def scatter_by_fields(self) -> global___ExchangeRel.ScatterFields: + ... + + @property + def single_target(self) -> global___ExchangeRel.SingleBucketExpression: + ... + + @property + def multi_target(self) -> global___ExchangeRel.MultiBucketExpression: + ... + + @property + def round_robin(self) -> global___ExchangeRel.RoundRobin: + ... + + @property + def broadcast(self) -> global___ExchangeRel.Broadcast: + ... + + @property + def advanced_extension(self) -> substrait.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: typing.Optional[global___RelCommon]=..., input: typing.Optional[global___Rel]=..., partition_count: builtins.int=..., targets: typing.Optional[typing.Iterable[global___ExchangeRel.ExchangeTarget]]=..., scatter_by_fields: typing.Optional[global___ExchangeRel.ScatterFields]=..., single_target: typing.Optional[global___ExchangeRel.SingleBucketExpression]=..., multi_target: typing.Optional[global___ExchangeRel.MultiBucketExpression]=..., round_robin: typing.Optional[global___ExchangeRel.RoundRobin]=..., broadcast: typing.Optional[global___ExchangeRel.Broadcast]=..., advanced_extension: typing.Optional[substrait.extensions.extensions_pb2.AdvancedExtension]=...) -> None: + ... + + def HasField(self, field_name: typing_extensions.Literal['advanced_extension', b'advanced_extension', 'broadcast', b'broadcast', 'common', b'common', 'exchange_kind', b'exchange_kind', 'input', b'input', 'multi_target', b'multi_target', 'round_robin', b'round_robin', 'scatter_by_fields', b'scatter_by_fields', 'single_target', b'single_target']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing_extensions.Literal['advanced_extension', b'advanced_extension', 'broadcast', b'broadcast', 'common', b'common', 'exchange_kind', b'exchange_kind', 'input', b'input', 'multi_target', b'multi_target', 'partition_count', b'partition_count', 'round_robin', b'round_robin', 'scatter_by_fields', b'scatter_by_fields', 'single_target', b'single_target', 'targets', b'targets']) -> None: + ... + + def WhichOneof(self, oneof_group: typing_extensions.Literal['exchange_kind', b'exchange_kind']) -> typing.Optional[typing_extensions.Literal['scatter_by_fields', 'single_target', 'multi_target', 'round_robin', 'broadcast']]: + ... +global___ExchangeRel = ExchangeRel + class RelRoot(google.protobuf.message.Message): """A relation with output field names. @@ -833,6 +1058,7 @@ class RelRoot(google.protobuf.message.Message): global___RelRoot = RelRoot class Rel(google.protobuf.message.Message): + """A relation (used internally in a plan)""" DESCRIPTOR: google.protobuf.descriptor.Descriptor READ_FIELD_NUMBER: builtins.int FILTER_FIELD_NUMBER: builtins.int @@ -908,6 +1134,60 @@ class Rel(google.protobuf.message.Message): ... global___Rel = Rel +class FunctionArgument(google.protobuf.message.Message): + """The argument of a function""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class Enum(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + SPECIFIED_FIELD_NUMBER: builtins.int + UNSPECIFIED_FIELD_NUMBER: builtins.int + specified: typing.Text + + @property + def unspecified(self) -> google.protobuf.empty_pb2.Empty: + ... + + def __init__(self, *, specified: typing.Text=..., unspecified: typing.Optional[google.protobuf.empty_pb2.Empty]=...) -> None: + ... + + def HasField(self, field_name: typing_extensions.Literal['enum_kind', b'enum_kind', 'specified', b'specified', 'unspecified', b'unspecified']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing_extensions.Literal['enum_kind', b'enum_kind', 'specified', b'specified', 'unspecified', b'unspecified']) -> None: + ... + + def WhichOneof(self, oneof_group: typing_extensions.Literal['enum_kind', b'enum_kind']) -> typing.Optional[typing_extensions.Literal['specified', 'unspecified']]: + ... + ENUM_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + + @property + def enum(self) -> global___FunctionArgument.Enum: + ... + + @property + def type(self) -> substrait.type_pb2.Type: + ... + + @property + def value(self) -> global___Expression: + ... + + def __init__(self, *, enum: typing.Optional[global___FunctionArgument.Enum]=..., type: typing.Optional[substrait.type_pb2.Type]=..., value: typing.Optional[global___Expression]=...) -> None: + ... + + def HasField(self, field_name: typing_extensions.Literal['arg_type', b'arg_type', 'enum', b'enum', 'type', b'type', 'value', b'value']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing_extensions.Literal['arg_type', b'arg_type', 'enum', b'enum', 'type', b'type', 'value', b'value']) -> None: + ... + + def WhichOneof(self, oneof_group: typing_extensions.Literal['arg_type', b'arg_type']) -> typing.Optional[typing_extensions.Literal['enum', 'type', 'value']]: + ... +global___FunctionArgument = FunctionArgument + class Expression(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -1026,13 +1306,15 @@ class Expression(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor DAYS_FIELD_NUMBER: builtins.int SECONDS_FIELD_NUMBER: builtins.int + MICROSECONDS_FIELD_NUMBER: builtins.int days: builtins.int seconds: builtins.int + microseconds: builtins.int - def __init__(self, *, days: builtins.int=..., seconds: builtins.int=...) -> None: + def __init__(self, *, days: builtins.int=..., seconds: builtins.int=..., microseconds: builtins.int=...) -> None: ... - def ClearField(self, field_name: typing_extensions.Literal['days', b'days', 'seconds', b'seconds']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['days', b'days', 'microseconds', b'microseconds', 'seconds', b'seconds']) -> None: ... class Struct(google.protobuf.message.Message): @@ -1064,6 +1346,37 @@ class Expression(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal['values', b'values']) -> None: ... + + class UserDefined(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_REFERENCE_FIELD_NUMBER: builtins.int + TYPE_PARAMETERS_FIELD_NUMBER: builtins.int + VALUE_FIELD_NUMBER: builtins.int + type_reference: builtins.int + 'points to a type_anchor defined in this plan' + + @property + def type_parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[substrait.type_pb2.Type.Parameter]: + """The parameters to be bound to the type class, if the type class is + parameterizable. + """ + pass + + @property + def value(self) -> google.protobuf.any_pb2.Any: + """the value of the literal, serialized using some type-specific + protobuf message + """ + pass + + def __init__(self, *, type_reference: builtins.int=..., type_parameters: typing.Optional[typing.Iterable[substrait.type_pb2.Type.Parameter]]=..., value: typing.Optional[google.protobuf.any_pb2.Any]=...) -> None: + ... + + def HasField(self, field_name: typing_extensions.Literal['value', b'value']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing_extensions.Literal['type_parameters', b'type_parameters', 'type_reference', b'type_reference', 'value', b'value']) -> None: + ... BOOLEAN_FIELD_NUMBER: builtins.int I8_FIELD_NUMBER: builtins.int I16_FIELD_NUMBER: builtins.int @@ -1090,7 +1403,9 @@ class Expression(google.protobuf.message.Message): LIST_FIELD_NUMBER: builtins.int EMPTY_LIST_FIELD_NUMBER: builtins.int EMPTY_MAP_FIELD_NUMBER: builtins.int + USER_DEFINED_FIELD_NUMBER: builtins.int NULLABLE_FIELD_NUMBER: builtins.int + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int boolean: builtins.bool i8: builtins.int i16: builtins.int @@ -1152,44 +1467,56 @@ class Expression(google.protobuf.message.Message): @property def empty_map(self) -> substrait.type_pb2.Type.Map: ... + + @property + def user_defined(self) -> global___Expression.Literal.UserDefined: + ... nullable: builtins.bool 'whether the literal type should be treated as a nullable type. Applies to\n all members of union other than the Typed null (which should directly\n declare nullability).\n ' + type_variation_reference: builtins.int + 'optionally points to a type_variation_anchor defined in this plan.\n Applies to all members of union other than the Typed null (which should\n directly declare the type variation).\n ' - def __init__(self, *, boolean: builtins.bool=..., i8: builtins.int=..., i16: builtins.int=..., i32: builtins.int=..., i64: builtins.int=..., fp32: builtins.float=..., fp64: builtins.float=..., string: typing.Text=..., binary: builtins.bytes=..., timestamp: builtins.int=..., date: builtins.int=..., time: builtins.int=..., interval_year_to_month: typing.Optional[global___Expression.Literal.IntervalYearToMonth]=..., interval_day_to_second: typing.Optional[global___Expression.Literal.IntervalDayToSecond]=..., fixed_char: typing.Text=..., var_char: typing.Optional[global___Expression.Literal.VarChar]=..., fixed_binary: builtins.bytes=..., decimal: typing.Optional[global___Expression.Literal.Decimal]=..., struct: typing.Optional[global___Expression.Literal.Struct]=..., map: typing.Optional[global___Expression.Literal.Map]=..., timestamp_tz: builtins.int=..., uuid: builtins.bytes=..., null: typing.Optional[substrait.type_pb2.Type]=..., list: typing.Optional[global___Expression.Literal.List]=..., empty_list: typing.Optional[substrait.type_pb2.Type.List]=..., empty_map: typing.Optional[substrait.type_pb2.Type.Map]=..., nullable: builtins.bool=...) -> None: + def __init__(self, *, boolean: builtins.bool=..., i8: builtins.int=..., i16: builtins.int=..., i32: builtins.int=..., i64: builtins.int=..., fp32: builtins.float=..., fp64: builtins.float=..., string: typing.Text=..., binary: builtins.bytes=..., timestamp: builtins.int=..., date: builtins.int=..., time: builtins.int=..., interval_year_to_month: typing.Optional[global___Expression.Literal.IntervalYearToMonth]=..., interval_day_to_second: typing.Optional[global___Expression.Literal.IntervalDayToSecond]=..., fixed_char: typing.Text=..., var_char: typing.Optional[global___Expression.Literal.VarChar]=..., fixed_binary: builtins.bytes=..., decimal: typing.Optional[global___Expression.Literal.Decimal]=..., struct: typing.Optional[global___Expression.Literal.Struct]=..., map: typing.Optional[global___Expression.Literal.Map]=..., timestamp_tz: builtins.int=..., uuid: builtins.bytes=..., null: typing.Optional[substrait.type_pb2.Type]=..., list: typing.Optional[global___Expression.Literal.List]=..., empty_list: typing.Optional[substrait.type_pb2.Type.List]=..., empty_map: typing.Optional[substrait.type_pb2.Type.Map]=..., user_defined: typing.Optional[global___Expression.Literal.UserDefined]=..., nullable: builtins.bool=..., type_variation_reference: builtins.int=...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'uuid', b'uuid', 'var_char', b'var_char']) -> builtins.bool: + def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'uuid', b'uuid', 'var_char', b'var_char']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'nullable', b'nullable', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'uuid', b'uuid', 'var_char', b'var_char']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'nullable', b'nullable', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_variation_reference', b'type_variation_reference', 'user_defined', b'user_defined', 'uuid', b'uuid', 'var_char', b'var_char']) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal['literal_type', b'literal_type']) -> typing.Optional[typing_extensions.Literal['boolean', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year_to_month', 'interval_day_to_second', 'fixed_char', 'var_char', 'fixed_binary', 'decimal', 'struct', 'map', 'timestamp_tz', 'uuid', 'null', 'list', 'empty_list', 'empty_map']]: + def WhichOneof(self, oneof_group: typing_extensions.Literal['literal_type', b'literal_type']) -> typing.Optional[typing_extensions.Literal['boolean', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year_to_month', 'interval_day_to_second', 'fixed_char', 'var_char', 'fixed_binary', 'decimal', 'struct', 'map', 'timestamp_tz', 'uuid', 'null', 'list', 'empty_list', 'empty_map', 'user_defined']]: ... class ScalarFunction(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int - ARGS_FIELD_NUMBER: builtins.int + ARGUMENTS_FIELD_NUMBER: builtins.int OUTPUT_TYPE_FIELD_NUMBER: builtins.int + ARGS_FIELD_NUMBER: builtins.int function_reference: builtins.int 'points to a function_anchor defined in this plan' @property - def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: ... @property def output_type(self) -> substrait.type_pb2.Type: ... - def __init__(self, *, function_reference: builtins.int=..., args: typing.Optional[typing.Iterable[global___Expression]]=..., output_type: typing.Optional[substrait.type_pb2.Type]=...) -> None: + @property + def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + """deprecated; use args instead""" + pass + + def __init__(self, *, function_reference: builtins.int=..., arguments: typing.Optional[typing.Iterable[global___FunctionArgument]]=..., output_type: typing.Optional[substrait.type_pb2.Type]=..., args: typing.Optional[typing.Iterable[global___Expression]]=...) -> None: ... def HasField(self, field_name: typing_extensions.Literal['output_type', b'output_type']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['args', b'args', 'function_reference', b'function_reference', 'output_type', b'output_type']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['args', b'args', 'arguments', b'arguments', 'function_reference', b'function_reference', 'output_type', b'output_type']) -> None: ... class WindowFunction(google.protobuf.message.Message): @@ -1270,6 +1597,7 @@ class Expression(google.protobuf.message.Message): LOWER_BOUND_FIELD_NUMBER: builtins.int PHASE_FIELD_NUMBER: builtins.int OUTPUT_TYPE_FIELD_NUMBER: builtins.int + ARGUMENTS_FIELD_NUMBER: builtins.int ARGS_FIELD_NUMBER: builtins.int function_reference: builtins.int 'points to a function_anchor defined in this plan' @@ -1296,16 +1624,21 @@ class Expression(google.protobuf.message.Message): ... @property - def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: ... - def __init__(self, *, function_reference: builtins.int=..., partitions: typing.Optional[typing.Iterable[global___Expression]]=..., sorts: typing.Optional[typing.Iterable[global___SortField]]=..., upper_bound: typing.Optional[global___Expression.WindowFunction.Bound]=..., lower_bound: typing.Optional[global___Expression.WindowFunction.Bound]=..., phase: global___AggregationPhase.ValueType=..., output_type: typing.Optional[substrait.type_pb2.Type]=..., args: typing.Optional[typing.Iterable[global___Expression]]=...) -> None: + @property + def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + """deprecated; use args instead""" + pass + + def __init__(self, *, function_reference: builtins.int=..., partitions: typing.Optional[typing.Iterable[global___Expression]]=..., sorts: typing.Optional[typing.Iterable[global___SortField]]=..., upper_bound: typing.Optional[global___Expression.WindowFunction.Bound]=..., lower_bound: typing.Optional[global___Expression.WindowFunction.Bound]=..., phase: global___AggregationPhase.ValueType=..., output_type: typing.Optional[substrait.type_pb2.Type]=..., arguments: typing.Optional[typing.Iterable[global___FunctionArgument]]=..., args: typing.Optional[typing.Iterable[global___Expression]]=...) -> None: ... def HasField(self, field_name: typing_extensions.Literal['lower_bound', b'lower_bound', 'output_type', b'output_type', 'upper_bound', b'upper_bound']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['args', b'args', 'function_reference', b'function_reference', 'lower_bound', b'lower_bound', 'output_type', b'output_type', 'partitions', b'partitions', 'phase', b'phase', 'sorts', b'sorts', 'upper_bound', b'upper_bound']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['args', b'args', 'arguments', b'arguments', 'function_reference', b'function_reference', 'lower_bound', b'lower_bound', 'output_type', b'output_type', 'partitions', b'partitions', 'phase', b'phase', 'sorts', b'sorts', 'upper_bound', b'upper_bound']) -> None: ... class IfThen(google.protobuf.message.Message): @@ -1346,8 +1679,25 @@ class Expression(google.protobuf.message.Message): class Cast(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _FailureBehavior: + ValueType = typing.NewType('ValueType', builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _FailureBehaviorEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.Cast._FailureBehavior.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + FAILURE_BEHAVIOR_UNSPECIFIED: Expression.Cast._FailureBehavior.ValueType + FAILURE_BEHAVIOR_RETURN_NULL: Expression.Cast._FailureBehavior.ValueType + FAILURE_BEHAVIOR_THROW_EXCEPTION: Expression.Cast._FailureBehavior.ValueType + + class FailureBehavior(_FailureBehavior, metaclass=_FailureBehaviorEnumTypeWrapper): + pass + FAILURE_BEHAVIOR_UNSPECIFIED: Expression.Cast.FailureBehavior.ValueType + FAILURE_BEHAVIOR_RETURN_NULL: Expression.Cast.FailureBehavior.ValueType + FAILURE_BEHAVIOR_THROW_EXCEPTION: Expression.Cast.FailureBehavior.ValueType TYPE_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int + FAILURE_BEHAVIOR_FIELD_NUMBER: builtins.int @property def type(self) -> substrait.type_pb2.Type: @@ -1356,14 +1706,15 @@ class Expression(google.protobuf.message.Message): @property def input(self) -> global___Expression: ... + failure_behavior: global___Expression.Cast.FailureBehavior.ValueType - def __init__(self, *, type: typing.Optional[substrait.type_pb2.Type]=..., input: typing.Optional[global___Expression]=...) -> None: + def __init__(self, *, type: typing.Optional[substrait.type_pb2.Type]=..., input: typing.Optional[global___Expression]=..., failure_behavior: global___Expression.Cast.FailureBehavior.ValueType=...) -> None: ... def HasField(self, field_name: typing_extensions.Literal['input', b'input', 'type', b'type']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['input', b'input', 'type', b'type']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['failure_behavior', b'failure_behavior', 'input', b'input', 'type', b'type']) -> None: ... class SwitchExpression(google.protobuf.message.Message): @@ -1386,20 +1737,25 @@ class Expression(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal['if', b'if', 'then', b'then']) -> None: ... + MATCH_FIELD_NUMBER: builtins.int IFS_FIELD_NUMBER: builtins.int ELSE_FIELD_NUMBER: builtins.int + @property + def match(self) -> global___Expression: + ... + @property def ifs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.SwitchExpression.IfValue]: ... - def __init__(self, *, ifs: typing.Optional[typing.Iterable[global___Expression.SwitchExpression.IfValue]]=...) -> None: + def __init__(self, *, match: typing.Optional[global___Expression]=..., ifs: typing.Optional[typing.Iterable[global___Expression.SwitchExpression.IfValue]]=...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal['else', b'else']) -> builtins.bool: + def HasField(self, field_name: typing_extensions.Literal['else', b'else', 'match', b'match']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['else', b'else', 'ifs', b'ifs']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['else', b'else', 'ifs', b'ifs', 'match', b'match']) -> None: ... class SingularOrList(google.protobuf.message.Message): @@ -2126,9 +2482,9 @@ class Expression(google.protobuf.message.Message): SWITCH_EXPRESSION_FIELD_NUMBER: builtins.int SINGULAR_OR_LIST_FIELD_NUMBER: builtins.int MULTI_OR_LIST_FIELD_NUMBER: builtins.int - ENUM_FIELD_NUMBER: builtins.int CAST_FIELD_NUMBER: builtins.int SUBQUERY_FIELD_NUMBER: builtins.int + ENUM_FIELD_NUMBER: builtins.int @property def literal(self) -> global___Expression.Literal: @@ -2162,10 +2518,6 @@ class Expression(google.protobuf.message.Message): def multi_or_list(self) -> global___Expression.MultiOrList: ... - @property - def enum(self) -> global___Expression.Enum: - ... - @property def cast(self) -> global___Expression.Cast: ... @@ -2174,7 +2526,15 @@ class Expression(google.protobuf.message.Message): def subquery(self) -> global___Expression.Subquery: ... - def __init__(self, *, literal: typing.Optional[global___Expression.Literal]=..., selection: typing.Optional[global___Expression.FieldReference]=..., scalar_function: typing.Optional[global___Expression.ScalarFunction]=..., window_function: typing.Optional[global___Expression.WindowFunction]=..., if_then: typing.Optional[global___Expression.IfThen]=..., switch_expression: typing.Optional[global___Expression.SwitchExpression]=..., singular_or_list: typing.Optional[global___Expression.SingularOrList]=..., multi_or_list: typing.Optional[global___Expression.MultiOrList]=..., enum: typing.Optional[global___Expression.Enum]=..., cast: typing.Optional[global___Expression.Cast]=..., subquery: typing.Optional[global___Expression.Subquery]=...) -> None: + @property + def enum(self) -> global___Expression.Enum: + """deprecated: enum literals are only sensible in the context of + function arguments, for which FunctionArgument should now be + used + """ + pass + + def __init__(self, *, literal: typing.Optional[global___Expression.Literal]=..., selection: typing.Optional[global___Expression.FieldReference]=..., scalar_function: typing.Optional[global___Expression.ScalarFunction]=..., window_function: typing.Optional[global___Expression.WindowFunction]=..., if_then: typing.Optional[global___Expression.IfThen]=..., switch_expression: typing.Optional[global___Expression.SwitchExpression]=..., singular_or_list: typing.Optional[global___Expression.SingularOrList]=..., multi_or_list: typing.Optional[global___Expression.MultiOrList]=..., cast: typing.Optional[global___Expression.Cast]=..., subquery: typing.Optional[global___Expression.Subquery]=..., enum: typing.Optional[global___Expression.Enum]=...) -> None: ... def HasField(self, field_name: typing_extensions.Literal['cast', b'cast', 'enum', b'enum', 'if_then', b'if_then', 'literal', b'literal', 'multi_or_list', b'multi_or_list', 'rex_type', b'rex_type', 'scalar_function', b'scalar_function', 'selection', b'selection', 'singular_or_list', b'singular_or_list', 'subquery', b'subquery', 'switch_expression', b'switch_expression', 'window_function', b'window_function']) -> builtins.bool: @@ -2183,11 +2543,12 @@ class Expression(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal['cast', b'cast', 'enum', b'enum', 'if_then', b'if_then', 'literal', b'literal', 'multi_or_list', b'multi_or_list', 'rex_type', b'rex_type', 'scalar_function', b'scalar_function', 'selection', b'selection', 'singular_or_list', b'singular_or_list', 'subquery', b'subquery', 'switch_expression', b'switch_expression', 'window_function', b'window_function']) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal['rex_type', b'rex_type']) -> typing.Optional[typing_extensions.Literal['literal', 'selection', 'scalar_function', 'window_function', 'if_then', 'switch_expression', 'singular_or_list', 'multi_or_list', 'enum', 'cast', 'subquery']]: + def WhichOneof(self, oneof_group: typing_extensions.Literal['rex_type', b'rex_type']) -> typing.Optional[typing_extensions.Literal['literal', 'selection', 'scalar_function', 'window_function', 'if_then', 'switch_expression', 'singular_or_list', 'multi_or_list', 'cast', 'subquery', 'enum']]: ... global___Expression = Expression class SortField(google.protobuf.message.Message): + """The description of a field to sort on (including the direction of sorting and null semantics)""" DESCRIPTOR: google.protobuf.descriptor.Descriptor class _SortDirection: @@ -2236,16 +2597,38 @@ global___SortField = SortField class AggregateFunction(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + + class _AggregationInvocation: + ValueType = typing.NewType('ValueType', builtins.int) + V: typing_extensions.TypeAlias = ValueType + + class _AggregationInvocationEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AggregateFunction._AggregationInvocation.ValueType], builtins.type): + DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor + AGGREGATION_INVOCATION_UNSPECIFIED: AggregateFunction._AggregationInvocation.ValueType + AGGREGATION_INVOCATION_ALL: AggregateFunction._AggregationInvocation.ValueType + 'Use all values in aggregation calculation' + AGGREGATION_INVOCATION_DISTINCT: AggregateFunction._AggregationInvocation.ValueType + 'Use only distinct values in aggregation calculation' + + class AggregationInvocation(_AggregationInvocation, metaclass=_AggregationInvocationEnumTypeWrapper): + pass + AGGREGATION_INVOCATION_UNSPECIFIED: AggregateFunction.AggregationInvocation.ValueType + AGGREGATION_INVOCATION_ALL: AggregateFunction.AggregationInvocation.ValueType + 'Use all values in aggregation calculation' + AGGREGATION_INVOCATION_DISTINCT: AggregateFunction.AggregationInvocation.ValueType + 'Use only distinct values in aggregation calculation' FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int - ARGS_FIELD_NUMBER: builtins.int + ARGUMENTS_FIELD_NUMBER: builtins.int SORTS_FIELD_NUMBER: builtins.int PHASE_FIELD_NUMBER: builtins.int OUTPUT_TYPE_FIELD_NUMBER: builtins.int + INVOCATION_FIELD_NUMBER: builtins.int + ARGS_FIELD_NUMBER: builtins.int function_reference: builtins.int 'points to a function_anchor defined in this plan' @property - def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: ... @property @@ -2256,13 +2639,19 @@ class AggregateFunction(google.protobuf.message.Message): @property def output_type(self) -> substrait.type_pb2.Type: ... + invocation: global___AggregateFunction.AggregationInvocation.ValueType + + @property + def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + """deprecated; use args instead""" + pass - def __init__(self, *, function_reference: builtins.int=..., args: typing.Optional[typing.Iterable[global___Expression]]=..., sorts: typing.Optional[typing.Iterable[global___SortField]]=..., phase: global___AggregationPhase.ValueType=..., output_type: typing.Optional[substrait.type_pb2.Type]=...) -> None: + def __init__(self, *, function_reference: builtins.int=..., arguments: typing.Optional[typing.Iterable[global___FunctionArgument]]=..., sorts: typing.Optional[typing.Iterable[global___SortField]]=..., phase: global___AggregationPhase.ValueType=..., output_type: typing.Optional[substrait.type_pb2.Type]=..., invocation: global___AggregateFunction.AggregationInvocation.ValueType=..., args: typing.Optional[typing.Iterable[global___Expression]]=...) -> None: ... def HasField(self, field_name: typing_extensions.Literal['output_type', b'output_type']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['args', b'args', 'function_reference', b'function_reference', 'output_type', b'output_type', 'phase', b'phase', 'sorts', b'sorts']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['args', b'args', 'arguments', b'arguments', 'function_reference', b'function_reference', 'invocation', b'invocation', 'output_type', b'output_type', 'phase', b'phase', 'sorts', b'sorts']) -> None: ... global___AggregateFunction = AggregateFunction \ No newline at end of file diff --git a/ibis_substrait/proto/substrait/capabilities_pb2.py b/ibis_substrait/proto/substrait/capabilities_pb2.py index d296f7d0..df629618 100644 --- a/ibis_substrait/proto/substrait/capabilities_pb2.py +++ b/ibis_substrait/proto/substrait/capabilities_pb2.py @@ -5,7 +5,7 @@ from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1csubstrait/capabilities.proto\x12\tsubstrait"\xec\x02\n\x0cCapabilities\x12-\n\x12substrait_versions\x18\x01 \x03(\tR\x11substraitVersions\x12?\n\x1cadvanced_extension_type_urls\x18\x02 \x03(\tR\x19advancedExtensionTypeUrls\x12T\n\x11simple_extensions\x18\x03 \x03(\x0b2\'.substrait.Capabilities.SimpleExtensionR\x10simpleExtensions\x1a\x95\x01\n\x0fSimpleExtension\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12#\n\rfunction_keys\x18\x02 \x03(\tR\x0cfunctionKeys\x12\x1b\n\ttype_keys\x18\x03 \x03(\tR\x08typeKeys\x12.\n\x13type_variation_keys\x18\x04 \x03(\tR\x11typeVariationKeysB+\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1csubstrait/capabilities.proto\x12\tsubstrait"\xec\x02\n\x0cCapabilities\x12-\n\x12substrait_versions\x18\x01 \x03(\tR\x11substraitVersions\x12?\n\x1cadvanced_extension_type_urls\x18\x02 \x03(\tR\x19advancedExtensionTypeUrls\x12T\n\x11simple_extensions\x18\x03 \x03(\x0b2\'.substrait.Capabilities.SimpleExtensionR\x10simpleExtensions\x1a\x95\x01\n\x0fSimpleExtension\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12#\n\rfunction_keys\x18\x02 \x03(\tR\x0cfunctionKeys\x12\x1b\n\ttype_keys\x18\x03 \x03(\tR\x08typeKeys\x12.\n\x13type_variation_keys\x18\x04 \x03(\tR\x11typeVariationKeysBW\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobufb\x06proto3') _CAPABILITIES = DESCRIPTOR.message_types_by_name['Capabilities'] _CAPABILITIES_SIMPLEEXTENSION = _CAPABILITIES.nested_types_by_name['SimpleExtension'] Capabilities = _reflection.GeneratedProtocolMessageType('Capabilities', (_message.Message,), {'SimpleExtension': _reflection.GeneratedProtocolMessageType('SimpleExtension', (_message.Message,), {'DESCRIPTOR': _CAPABILITIES_SIMPLEEXTENSION, '__module__': 'substrait.capabilities_pb2'}), 'DESCRIPTOR': _CAPABILITIES, '__module__': 'substrait.capabilities_pb2'}) @@ -13,7 +13,7 @@ _sym_db.RegisterMessage(Capabilities.SimpleExtension) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobuf' + DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobuf' _CAPABILITIES._serialized_start = 44 _CAPABILITIES._serialized_end = 408 _CAPABILITIES_SIMPLEEXTENSION._serialized_start = 259 diff --git a/ibis_substrait/proto/substrait/extensions/extensions_pb2.py b/ibis_substrait/proto/substrait/extensions/extensions_pb2.py index d7f23988..aaebb3f4 100644 --- a/ibis_substrait/proto/substrait/extensions/extensions_pb2.py +++ b/ibis_substrait/proto/substrait/extensions/extensions_pb2.py @@ -6,7 +6,7 @@ from google.protobuf import symbol_database as _symbol_database _sym_db = _symbol_database.Default() from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%substrait/extensions/extensions.proto\x12\x14substrait.extensions\x1a\x19google/protobuf/any.proto"X\n\x12SimpleExtensionURI\x120\n\x14extension_uri_anchor\x18\x01 \x01(\rR\x12extensionUriAnchor\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri"\xb4\x06\n\x1aSimpleExtensionDeclaration\x12g\n\x0eextension_type\x18\x01 \x01(\x0b2>.substrait.extensions.SimpleExtensionDeclaration.ExtensionTypeH\x00R\rextensionType\x12\x83\x01\n\x18extension_type_variation\x18\x02 \x01(\x0b2G.substrait.extensions.SimpleExtensionDeclaration.ExtensionTypeVariationH\x00R\x16extensionTypeVariation\x12s\n\x12extension_function\x18\x03 \x01(\x0b2B.substrait.extensions.SimpleExtensionDeclaration.ExtensionFunctionH\x00R\x11extensionFunction\x1a|\n\rExtensionType\x126\n\x17extension_uri_reference\x18\x01 \x01(\rR\x15extensionUriReference\x12\x1f\n\x0btype_anchor\x18\x02 \x01(\rR\ntypeAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\x98\x01\n\x16ExtensionTypeVariation\x126\n\x17extension_uri_reference\x18\x01 \x01(\rR\x15extensionUriReference\x122\n\x15type_variation_anchor\x18\x02 \x01(\rR\x13typeVariationAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\x88\x01\n\x11ExtensionFunction\x126\n\x17extension_uri_reference\x18\x01 \x01(\rR\x15extensionUriReference\x12\'\n\x0ffunction_anchor\x18\x02 \x01(\rR\x0efunctionAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04nameB\x0e\n\x0cmapping_type"\x85\x01\n\x11AdvancedExtension\x128\n\x0coptimization\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x0coptimization\x126\n\x0benhancement\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x0benhancementB+\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%substrait/extensions/extensions.proto\x12\x14substrait.extensions\x1a\x19google/protobuf/any.proto"X\n\x12SimpleExtensionURI\x120\n\x14extension_uri_anchor\x18\x01 \x01(\rR\x12extensionUriAnchor\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri"\xb4\x06\n\x1aSimpleExtensionDeclaration\x12g\n\x0eextension_type\x18\x01 \x01(\x0b2>.substrait.extensions.SimpleExtensionDeclaration.ExtensionTypeH\x00R\rextensionType\x12\x83\x01\n\x18extension_type_variation\x18\x02 \x01(\x0b2G.substrait.extensions.SimpleExtensionDeclaration.ExtensionTypeVariationH\x00R\x16extensionTypeVariation\x12s\n\x12extension_function\x18\x03 \x01(\x0b2B.substrait.extensions.SimpleExtensionDeclaration.ExtensionFunctionH\x00R\x11extensionFunction\x1a|\n\rExtensionType\x126\n\x17extension_uri_reference\x18\x01 \x01(\rR\x15extensionUriReference\x12\x1f\n\x0btype_anchor\x18\x02 \x01(\rR\ntypeAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\x98\x01\n\x16ExtensionTypeVariation\x126\n\x17extension_uri_reference\x18\x01 \x01(\rR\x15extensionUriReference\x122\n\x15type_variation_anchor\x18\x02 \x01(\rR\x13typeVariationAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\x88\x01\n\x11ExtensionFunction\x126\n\x17extension_uri_reference\x18\x01 \x01(\rR\x15extensionUriReference\x12\'\n\x0ffunction_anchor\x18\x02 \x01(\rR\x0efunctionAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04nameB\x0e\n\x0cmapping_type"\x85\x01\n\x11AdvancedExtension\x128\n\x0coptimization\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x0coptimization\x126\n\x0benhancement\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x0benhancementBb\n\x12io.substrait.protoP\x01Z5github.com/substrait-io/substrait-go/proto/extensions\xaa\x02\x12Substrait.Protobufb\x06proto3') _SIMPLEEXTENSIONURI = DESCRIPTOR.message_types_by_name['SimpleExtensionURI'] _SIMPLEEXTENSIONDECLARATION = DESCRIPTOR.message_types_by_name['SimpleExtensionDeclaration'] _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE = _SIMPLEEXTENSIONDECLARATION.nested_types_by_name['ExtensionType'] @@ -24,7 +24,7 @@ _sym_db.RegisterMessage(AdvancedExtension) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobuf' + DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01Z5github.com/substrait-io/substrait-go/proto/extensions\xaa\x02\x12Substrait.Protobuf' _SIMPLEEXTENSIONURI._serialized_start = 90 _SIMPLEEXTENSIONURI._serialized_end = 178 _SIMPLEEXTENSIONDECLARATION._serialized_start = 181 diff --git a/ibis_substrait/proto/substrait/function_pb2.py b/ibis_substrait/proto/substrait/function_pb2.py index 90812286..6175d835 100644 --- a/ibis_substrait/proto/substrait/function_pb2.py +++ b/ibis_substrait/proto/substrait/function_pb2.py @@ -5,10 +5,10 @@ from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database _sym_db = _symbol_database.Default() -from ..substrait import type_pb2 as substrait_dot_type__pb2 from ..substrait import parameterized_types_pb2 as substrait_dot_parameterized__types__pb2 +from ..substrait import type_pb2 as substrait_dot_type__pb2 from ..substrait import type_expressions_pb2 as substrait_dot_type__expressions__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18substrait/function.proto\x12\tsubstrait\x1a\x14substrait/type.proto\x1a#substrait/parameterized_types.proto\x1a substrait/type_expressions.proto"\xd9\x19\n\x11FunctionSignature\x1a\xbc\x02\n\x10FinalArgVariadic\x12\x19\n\x08min_args\x18\x01 \x01(\x03R\x07minArgs\x12\x19\n\x08max_args\x18\x02 \x01(\x03R\x07maxArgs\x12d\n\x0bconsistency\x18\x03 \x01(\x0e2B.substrait.FunctionSignature.FinalArgVariadic.ParameterConsistencyR\x0bconsistency"\x8b\x01\n\x14ParameterConsistency\x12%\n!PARAMETER_CONSISTENCY_UNSPECIFIED\x10\x00\x12$\n PARAMETER_CONSISTENCY_CONSISTENT\x10\x01\x12&\n"PARAMETER_CONSISTENCY_INCONSISTENT\x10\x02\x1a\x10\n\x0eFinalArgNormal\x1a\xc8\x04\n\x06Scalar\x12C\n\targuments\x18\x02 \x03(\x0b2%.substrait.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12J\n\x0bdescription\x18\x04 \x01(\x0b2(.substrait.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12@\n\x0boutput_type\x18\t \x01(\x0b2\x1f.substrait.DerivationExpressionR\noutputType\x12K\n\x08variadic\x18\n \x01(\x0b2-.substrait.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12E\n\x06normal\x18\x0b \x01(\x0b2+.substrait.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12U\n\x0fimplementations\x18\x0c \x03(\x0b2+.substrait.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17final_variable_behavior\x1a\xbc\x05\n\tAggregate\x12C\n\targuments\x18\x02 \x03(\x0b2%.substrait.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12J\n\x0bdescription\x18\x04 \x01(\x0b2(.substrait.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12@\n\x0boutput_type\x18\t \x01(\x0b2\x1f.substrait.DerivationExpressionR\noutputType\x12K\n\x08variadic\x18\n \x01(\x0b2-.substrait.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12E\n\x06normal\x18\x0b \x01(\x0b2+.substrait.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0e \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x12<\n\x11intermediate_type\x18\r \x01(\x0b2\x0f.substrait.TypeR\x10intermediateType\x12U\n\x0fimplementations\x18\x0f \x03(\x0b2+.substrait.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17final_variable_behavior\x1a\xfb\x06\n\x06Window\x12C\n\targuments\x18\x02 \x03(\x0b2%.substrait.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12J\n\x0bdescription\x18\x04 \x01(\x0b2(.substrait.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12L\n\x11intermediate_type\x18\t \x01(\x0b2\x1f.substrait.DerivationExpressionR\x10intermediateType\x12@\n\x0boutput_type\x18\n \x01(\x0b2\x1f.substrait.DerivationExpressionR\noutputType\x12K\n\x08variadic\x18\x10 \x01(\x0b2-.substrait.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12E\n\x06normal\x18\x11 \x01(\x0b2+.substrait.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0b \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x12O\n\x0bwindow_type\x18\x0e \x01(\x0e2..substrait.FunctionSignature.Window.WindowTypeR\nwindowType\x12U\n\x0fimplementations\x18\x0f \x03(\x0b2+.substrait.FunctionSignature.ImplementationR\x0fimplementations"_\n\nWindowType\x12\x1b\n\x17WINDOW_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15WINDOW_TYPE_STREAMING\x10\x01\x12\x19\n\x15WINDOW_TYPE_PARTITION\x10\x02B\x19\n\x17final_variable_behavior\x1a=\n\x0bDescription\x12\x1a\n\x08language\x18\x01 \x01(\tR\x08language\x12\x12\n\x04body\x18\x02 \x01(\tR\x04body\x1a\xb1\x01\n\x0eImplementation\x12D\n\x04type\x18\x01 \x01(\x0e20.substrait.FunctionSignature.Implementation.TypeR\x04type\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri"G\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11TYPE_WEB_ASSEMBLY\x10\x01\x12\x12\n\x0eTYPE_TRINO_JAR\x10\x02\x1a\xf7\x03\n\x08Argument\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12K\n\x05value\x18\x02 \x01(\x0b23.substrait.FunctionSignature.Argument.ValueArgumentH\x00R\x05value\x12H\n\x04type\x18\x03 \x01(\x0b22.substrait.FunctionSignature.Argument.TypeArgumentH\x00R\x04type\x12H\n\x04enum\x18\x04 \x01(\x0b22.substrait.FunctionSignature.Argument.EnumArgumentH\x00R\x04enum\x1a]\n\rValueArgument\x120\n\x04type\x18\x01 \x01(\x0b2\x1c.substrait.ParameterizedTypeR\x04type\x12\x1a\n\x08constant\x18\x02 \x01(\x08R\x08constant\x1a@\n\x0cTypeArgument\x120\n\x04type\x18\x01 \x01(\x0b2\x1c.substrait.ParameterizedTypeR\x04type\x1aD\n\x0cEnumArgument\x12\x18\n\x07options\x18\x01 \x03(\tR\x07options\x12\x1a\n\x08optional\x18\x02 \x01(\x08R\x08optionalB\x0f\n\rargument_kindB+\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18substrait/function.proto\x12\tsubstrait\x1a#substrait/parameterized_types.proto\x1a\x14substrait/type.proto\x1a substrait/type_expressions.proto"\xd9\x19\n\x11FunctionSignature\x1a\xbc\x02\n\x10FinalArgVariadic\x12\x19\n\x08min_args\x18\x01 \x01(\x03R\x07minArgs\x12\x19\n\x08max_args\x18\x02 \x01(\x03R\x07maxArgs\x12d\n\x0bconsistency\x18\x03 \x01(\x0e2B.substrait.FunctionSignature.FinalArgVariadic.ParameterConsistencyR\x0bconsistency"\x8b\x01\n\x14ParameterConsistency\x12%\n!PARAMETER_CONSISTENCY_UNSPECIFIED\x10\x00\x12$\n PARAMETER_CONSISTENCY_CONSISTENT\x10\x01\x12&\n"PARAMETER_CONSISTENCY_INCONSISTENT\x10\x02\x1a\x10\n\x0eFinalArgNormal\x1a\xc8\x04\n\x06Scalar\x12C\n\targuments\x18\x02 \x03(\x0b2%.substrait.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12J\n\x0bdescription\x18\x04 \x01(\x0b2(.substrait.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12@\n\x0boutput_type\x18\t \x01(\x0b2\x1f.substrait.DerivationExpressionR\noutputType\x12K\n\x08variadic\x18\n \x01(\x0b2-.substrait.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12E\n\x06normal\x18\x0b \x01(\x0b2+.substrait.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12U\n\x0fimplementations\x18\x0c \x03(\x0b2+.substrait.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17final_variable_behavior\x1a\xbc\x05\n\tAggregate\x12C\n\targuments\x18\x02 \x03(\x0b2%.substrait.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12J\n\x0bdescription\x18\x04 \x01(\x0b2(.substrait.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12@\n\x0boutput_type\x18\t \x01(\x0b2\x1f.substrait.DerivationExpressionR\noutputType\x12K\n\x08variadic\x18\n \x01(\x0b2-.substrait.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12E\n\x06normal\x18\x0b \x01(\x0b2+.substrait.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0e \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x12<\n\x11intermediate_type\x18\r \x01(\x0b2\x0f.substrait.TypeR\x10intermediateType\x12U\n\x0fimplementations\x18\x0f \x03(\x0b2+.substrait.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17final_variable_behavior\x1a\xfb\x06\n\x06Window\x12C\n\targuments\x18\x02 \x03(\x0b2%.substrait.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12J\n\x0bdescription\x18\x04 \x01(\x0b2(.substrait.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12L\n\x11intermediate_type\x18\t \x01(\x0b2\x1f.substrait.DerivationExpressionR\x10intermediateType\x12@\n\x0boutput_type\x18\n \x01(\x0b2\x1f.substrait.DerivationExpressionR\noutputType\x12K\n\x08variadic\x18\x10 \x01(\x0b2-.substrait.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12E\n\x06normal\x18\x11 \x01(\x0b2+.substrait.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0b \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x12O\n\x0bwindow_type\x18\x0e \x01(\x0e2..substrait.FunctionSignature.Window.WindowTypeR\nwindowType\x12U\n\x0fimplementations\x18\x0f \x03(\x0b2+.substrait.FunctionSignature.ImplementationR\x0fimplementations"_\n\nWindowType\x12\x1b\n\x17WINDOW_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15WINDOW_TYPE_STREAMING\x10\x01\x12\x19\n\x15WINDOW_TYPE_PARTITION\x10\x02B\x19\n\x17final_variable_behavior\x1a=\n\x0bDescription\x12\x1a\n\x08language\x18\x01 \x01(\tR\x08language\x12\x12\n\x04body\x18\x02 \x01(\tR\x04body\x1a\xb1\x01\n\x0eImplementation\x12D\n\x04type\x18\x01 \x01(\x0e20.substrait.FunctionSignature.Implementation.TypeR\x04type\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri"G\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11TYPE_WEB_ASSEMBLY\x10\x01\x12\x12\n\x0eTYPE_TRINO_JAR\x10\x02\x1a\xf7\x03\n\x08Argument\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12K\n\x05value\x18\x02 \x01(\x0b23.substrait.FunctionSignature.Argument.ValueArgumentH\x00R\x05value\x12H\n\x04type\x18\x03 \x01(\x0b22.substrait.FunctionSignature.Argument.TypeArgumentH\x00R\x04type\x12H\n\x04enum\x18\x04 \x01(\x0b22.substrait.FunctionSignature.Argument.EnumArgumentH\x00R\x04enum\x1a]\n\rValueArgument\x120\n\x04type\x18\x01 \x01(\x0b2\x1c.substrait.ParameterizedTypeR\x04type\x12\x1a\n\x08constant\x18\x02 \x01(\x08R\x08constant\x1a@\n\x0cTypeArgument\x120\n\x04type\x18\x01 \x01(\x0b2\x1c.substrait.ParameterizedTypeR\x04type\x1aD\n\x0cEnumArgument\x12\x18\n\x07options\x18\x01 \x03(\tR\x07options\x12\x1a\n\x08optional\x18\x02 \x01(\x08R\x08optionalB\x0f\n\rargument_kindBW\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobufb\x06proto3') _FUNCTIONSIGNATURE = DESCRIPTOR.message_types_by_name['FunctionSignature'] _FUNCTIONSIGNATURE_FINALARGVARIADIC = _FUNCTIONSIGNATURE.nested_types_by_name['FinalArgVariadic'] _FUNCTIONSIGNATURE_FINALARGNORMAL = _FUNCTIONSIGNATURE.nested_types_by_name['FinalArgNormal'] @@ -39,7 +39,7 @@ _sym_db.RegisterMessage(FunctionSignature.Argument.EnumArgument) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobuf' + DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobuf' _FUNCTIONSIGNATURE._serialized_start = 133 _FUNCTIONSIGNATURE._serialized_end = 3422 _FUNCTIONSIGNATURE_FINALARGVARIADIC._serialized_start = 155 diff --git a/ibis_substrait/proto/substrait/function_pb2.pyi b/ibis_substrait/proto/substrait/function_pb2.pyi index fd3d910e..cdfa8282 100644 --- a/ibis_substrait/proto/substrait/function_pb2.pyi +++ b/ibis_substrait/proto/substrait/function_pb2.pyi @@ -8,8 +8,6 @@ import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message from .. import substrait -from .. import substrait -from .. import substrait import typing import typing_extensions DESCRIPTOR: google.protobuf.descriptor.FileDescriptor diff --git a/ibis_substrait/proto/substrait/parameterized_types_pb2.py b/ibis_substrait/proto/substrait/parameterized_types_pb2.py index 3a467da4..488d3257 100644 --- a/ibis_substrait/proto/substrait/parameterized_types_pb2.py +++ b/ibis_substrait/proto/substrait/parameterized_types_pb2.py @@ -6,7 +6,7 @@ from google.protobuf import symbol_database as _symbol_database _sym_db = _symbol_database.Default() from ..substrait import type_pb2 as substrait_dot_type__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#substrait/parameterized_types.proto\x12\tsubstrait\x1a\x14substrait/type.proto"\x96\x1c\n\x11ParameterizedType\x12-\n\x04bool\x18\x01 \x01(\x0b2\x17.substrait.Type.BooleanH\x00R\x04bool\x12$\n\x02i8\x18\x02 \x01(\x0b2\x12.substrait.Type.I8H\x00R\x02i8\x12\'\n\x03i16\x18\x03 \x01(\x0b2\x13.substrait.Type.I16H\x00R\x03i16\x12\'\n\x03i32\x18\x05 \x01(\x0b2\x13.substrait.Type.I32H\x00R\x03i32\x12\'\n\x03i64\x18\x07 \x01(\x0b2\x13.substrait.Type.I64H\x00R\x03i64\x12*\n\x04fp32\x18\n \x01(\x0b2\x14.substrait.Type.FP32H\x00R\x04fp32\x12*\n\x04fp64\x18\x0b \x01(\x0b2\x14.substrait.Type.FP64H\x00R\x04fp64\x120\n\x06string\x18\x0c \x01(\x0b2\x16.substrait.Type.StringH\x00R\x06string\x120\n\x06binary\x18\r \x01(\x0b2\x16.substrait.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x19.substrait.Type.TimestampH\x00R\ttimestamp\x12*\n\x04date\x18\x10 \x01(\x0b2\x14.substrait.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x14.substrait.Type.TimeH\x00R\x04time\x12C\n\rinterval_year\x18\x13 \x01(\x0b2\x1c.substrait.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0cinterval_day\x18\x14 \x01(\x0b2\x1b.substrait.Type.IntervalDayH\x00R\x0bintervalDay\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x1b.substrait.Type.TimestampTZH\x00R\x0btimestampTz\x12*\n\x04uuid\x18 \x01(\x0b2\x14.substrait.Type.UUIDH\x00R\x04uuid\x12T\n\nfixed_char\x18\x15 \x01(\x0b23.substrait.ParameterizedType.ParameterizedFixedCharH\x00R\tfixedChar\x12M\n\x07varchar\x18\x16 \x01(\x0b21.substrait.ParameterizedType.ParameterizedVarCharH\x00R\x07varchar\x12Z\n\x0cfixed_binary\x18\x17 \x01(\x0b25.substrait.ParameterizedType.ParameterizedFixedBinaryH\x00R\x0bfixedBinary\x12M\n\x07decimal\x18\x18 \x01(\x0b21.substrait.ParameterizedType.ParameterizedDecimalH\x00R\x07decimal\x12J\n\x06struct\x18\x19 \x01(\x0b20.substrait.ParameterizedType.ParameterizedStructH\x00R\x06struct\x12D\n\x04list\x18\x1b \x01(\x0b2..substrait.ParameterizedType.ParameterizedListH\x00R\x04list\x12A\n\x03map\x18\x1c \x01(\x0b2-.substrait.ParameterizedType.ParameterizedMapH\x00R\x03map\x122\n\x14user_defined_pointer\x18\x1f \x01(\rH\x00R\x12userDefinedPointer\x12S\n\x0etype_parameter\x18! \x01(\x0b2*.substrait.ParameterizedType.TypeParameterH\x00R\rtypeParameter\x1aY\n\rTypeParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x124\n\x06bounds\x18\x02 \x03(\x0b2\x1c.substrait.ParameterizedTypeR\x06bounds\x1a\xe6\x01\n\x10IntegerParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12`\n\x15range_start_inclusive\x18\x02 \x01(\x0b2,.substrait.ParameterizedType.NullableIntegerR\x13rangeStartInclusive\x12\\\n\x13range_end_exclusive\x18\x03 \x01(\x0b2,.substrait.ParameterizedType.NullableIntegerR\x11rangeEndExclusive\x1a\'\n\x0fNullableInteger\x12\x14\n\x05value\x18\x01 \x01(\x03R\x05value\x1a\xc8\x01\n\x16ParameterizedFixedChar\x12B\n\x06length\x18\x01 \x01(\x0b2*.substrait.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xc6\x01\n\x14ParameterizedVarChar\x12B\n\x06length\x18\x01 \x01(\x0b2*.substrait.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xca\x01\n\x18ParameterizedFixedBinary\x12B\n\x06length\x18\x01 \x01(\x0b2*.substrait.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x8e\x02\n\x14ParameterizedDecimal\x12@\n\x05scale\x18\x01 \x01(\x0b2*.substrait.ParameterizedType.IntegerOptionR\x05scale\x12H\n\tprecision\x18\x02 \x01(\x0b2*.substrait.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xb5\x01\n\x13ParameterizedStruct\x122\n\x05types\x18\x01 \x03(\x0b2\x1c.substrait.ParameterizedTypeR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1az\n\x18ParameterizedNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12H\n\x06struct\x18\x02 \x01(\x0b20.substrait.ParameterizedType.ParameterizedStructR\x06struct\x1a\xb1\x01\n\x11ParameterizedList\x120\n\x04type\x18\x01 \x01(\x0b2\x1c.substrait.ParameterizedTypeR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xe2\x01\n\x10ParameterizedMap\x12.\n\x03key\x18\x01 \x01(\x0b2\x1c.substrait.ParameterizedTypeR\x03key\x122\n\x05value\x18\x02 \x01(\x0b2\x1c.substrait.ParameterizedTypeR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x8a\x01\n\rIntegerOption\x12\x1a\n\x07literal\x18\x01 \x01(\x05H\x00R\x07literal\x12M\n\tparameter\x18\x02 \x01(\x0b2-.substrait.ParameterizedType.IntegerParameterH\x00R\tparameterB\x0e\n\x0cinteger_typeB\x06\n\x04kindB+\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#substrait/parameterized_types.proto\x12\tsubstrait\x1a\x14substrait/type.proto"\xa2\x1e\n\x11ParameterizedType\x12-\n\x04bool\x18\x01 \x01(\x0b2\x17.substrait.Type.BooleanH\x00R\x04bool\x12$\n\x02i8\x18\x02 \x01(\x0b2\x12.substrait.Type.I8H\x00R\x02i8\x12\'\n\x03i16\x18\x03 \x01(\x0b2\x13.substrait.Type.I16H\x00R\x03i16\x12\'\n\x03i32\x18\x05 \x01(\x0b2\x13.substrait.Type.I32H\x00R\x03i32\x12\'\n\x03i64\x18\x07 \x01(\x0b2\x13.substrait.Type.I64H\x00R\x03i64\x12*\n\x04fp32\x18\n \x01(\x0b2\x14.substrait.Type.FP32H\x00R\x04fp32\x12*\n\x04fp64\x18\x0b \x01(\x0b2\x14.substrait.Type.FP64H\x00R\x04fp64\x120\n\x06string\x18\x0c \x01(\x0b2\x16.substrait.Type.StringH\x00R\x06string\x120\n\x06binary\x18\r \x01(\x0b2\x16.substrait.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x19.substrait.Type.TimestampH\x00R\ttimestamp\x12*\n\x04date\x18\x10 \x01(\x0b2\x14.substrait.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x14.substrait.Type.TimeH\x00R\x04time\x12C\n\rinterval_year\x18\x13 \x01(\x0b2\x1c.substrait.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0cinterval_day\x18\x14 \x01(\x0b2\x1b.substrait.Type.IntervalDayH\x00R\x0bintervalDay\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x1b.substrait.Type.TimestampTZH\x00R\x0btimestampTz\x12*\n\x04uuid\x18 \x01(\x0b2\x14.substrait.Type.UUIDH\x00R\x04uuid\x12T\n\nfixed_char\x18\x15 \x01(\x0b23.substrait.ParameterizedType.ParameterizedFixedCharH\x00R\tfixedChar\x12M\n\x07varchar\x18\x16 \x01(\x0b21.substrait.ParameterizedType.ParameterizedVarCharH\x00R\x07varchar\x12Z\n\x0cfixed_binary\x18\x17 \x01(\x0b25.substrait.ParameterizedType.ParameterizedFixedBinaryH\x00R\x0bfixedBinary\x12M\n\x07decimal\x18\x18 \x01(\x0b21.substrait.ParameterizedType.ParameterizedDecimalH\x00R\x07decimal\x12J\n\x06struct\x18\x19 \x01(\x0b20.substrait.ParameterizedType.ParameterizedStructH\x00R\x06struct\x12D\n\x04list\x18\x1b \x01(\x0b2..substrait.ParameterizedType.ParameterizedListH\x00R\x04list\x12A\n\x03map\x18\x1c \x01(\x0b2-.substrait.ParameterizedType.ParameterizedMapH\x00R\x03map\x12Z\n\x0cuser_defined\x18\x1e \x01(\x0b25.substrait.ParameterizedType.ParameterizedUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x12S\n\x0etype_parameter\x18! \x01(\x0b2*.substrait.ParameterizedType.TypeParameterH\x00R\rtypeParameter\x1aY\n\rTypeParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x124\n\x06bounds\x18\x02 \x03(\x0b2\x1c.substrait.ParameterizedTypeR\x06bounds\x1a\xe6\x01\n\x10IntegerParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12`\n\x15range_start_inclusive\x18\x02 \x01(\x0b2,.substrait.ParameterizedType.NullableIntegerR\x13rangeStartInclusive\x12\\\n\x13range_end_exclusive\x18\x03 \x01(\x0b2,.substrait.ParameterizedType.NullableIntegerR\x11rangeEndExclusive\x1a\'\n\x0fNullableInteger\x12\x14\n\x05value\x18\x01 \x01(\x03R\x05value\x1a\xc8\x01\n\x16ParameterizedFixedChar\x12B\n\x06length\x18\x01 \x01(\x0b2*.substrait.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xc6\x01\n\x14ParameterizedVarChar\x12B\n\x06length\x18\x01 \x01(\x0b2*.substrait.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xca\x01\n\x18ParameterizedFixedBinary\x12B\n\x06length\x18\x01 \x01(\x0b2*.substrait.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x8e\x02\n\x14ParameterizedDecimal\x12@\n\x05scale\x18\x01 \x01(\x0b2*.substrait.ParameterizedType.IntegerOptionR\x05scale\x12H\n\tprecision\x18\x02 \x01(\x0b2*.substrait.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xb5\x01\n\x13ParameterizedStruct\x122\n\x05types\x18\x01 \x03(\x0b2\x1c.substrait.ParameterizedTypeR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1az\n\x18ParameterizedNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12H\n\x06struct\x18\x02 \x01(\x0b20.substrait.ParameterizedType.ParameterizedStructR\x06struct\x1a\xb1\x01\n\x11ParameterizedList\x120\n\x04type\x18\x01 \x01(\x0b2\x1c.substrait.ParameterizedTypeR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xe2\x01\n\x10ParameterizedMap\x12.\n\x03key\x18\x01 \x01(\x0b2\x1c.substrait.ParameterizedTypeR\x03key\x122\n\x05value\x18\x02 \x01(\x0b2\x1c.substrait.ParameterizedTypeR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xa9\x01\n\x18ParameterizedUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x8a\x01\n\rIntegerOption\x12\x1a\n\x07literal\x18\x01 \x01(\x05H\x00R\x07literal\x12M\n\tparameter\x18\x02 \x01(\x0b2-.substrait.ParameterizedType.IntegerParameterH\x00R\tparameterB\x0e\n\x0cinteger_typeB\x06\n\x04kindBW\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobufb\x06proto3') _PARAMETERIZEDTYPE = DESCRIPTOR.message_types_by_name['ParameterizedType'] _PARAMETERIZEDTYPE_TYPEPARAMETER = _PARAMETERIZEDTYPE.nested_types_by_name['TypeParameter'] _PARAMETERIZEDTYPE_INTEGERPARAMETER = _PARAMETERIZEDTYPE.nested_types_by_name['IntegerParameter'] @@ -19,8 +19,9 @@ _PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT = _PARAMETERIZEDTYPE.nested_types_by_name['ParameterizedNamedStruct'] _PARAMETERIZEDTYPE_PARAMETERIZEDLIST = _PARAMETERIZEDTYPE.nested_types_by_name['ParameterizedList'] _PARAMETERIZEDTYPE_PARAMETERIZEDMAP = _PARAMETERIZEDTYPE.nested_types_by_name['ParameterizedMap'] +_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED = _PARAMETERIZEDTYPE.nested_types_by_name['ParameterizedUserDefined'] _PARAMETERIZEDTYPE_INTEGEROPTION = _PARAMETERIZEDTYPE.nested_types_by_name['IntegerOption'] -ParameterizedType = _reflection.GeneratedProtocolMessageType('ParameterizedType', (_message.Message,), {'TypeParameter': _reflection.GeneratedProtocolMessageType('TypeParameter', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_TYPEPARAMETER, '__module__': 'substrait.parameterized_types_pb2'}), 'IntegerParameter': _reflection.GeneratedProtocolMessageType('IntegerParameter', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_INTEGERPARAMETER, '__module__': 'substrait.parameterized_types_pb2'}), 'NullableInteger': _reflection.GeneratedProtocolMessageType('NullableInteger', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_NULLABLEINTEGER, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedFixedChar': _reflection.GeneratedProtocolMessageType('ParameterizedFixedChar', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedVarChar': _reflection.GeneratedProtocolMessageType('ParameterizedVarChar', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedFixedBinary': _reflection.GeneratedProtocolMessageType('ParameterizedFixedBinary', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedDecimal': _reflection.GeneratedProtocolMessageType('ParameterizedDecimal', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedStruct': _reflection.GeneratedProtocolMessageType('ParameterizedStruct', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedNamedStruct': _reflection.GeneratedProtocolMessageType('ParameterizedNamedStruct', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedList': _reflection.GeneratedProtocolMessageType('ParameterizedList', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDLIST, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedMap': _reflection.GeneratedProtocolMessageType('ParameterizedMap', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDMAP, '__module__': 'substrait.parameterized_types_pb2'}), 'IntegerOption': _reflection.GeneratedProtocolMessageType('IntegerOption', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_INTEGEROPTION, '__module__': 'substrait.parameterized_types_pb2'}), 'DESCRIPTOR': _PARAMETERIZEDTYPE, '__module__': 'substrait.parameterized_types_pb2'}) +ParameterizedType = _reflection.GeneratedProtocolMessageType('ParameterizedType', (_message.Message,), {'TypeParameter': _reflection.GeneratedProtocolMessageType('TypeParameter', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_TYPEPARAMETER, '__module__': 'substrait.parameterized_types_pb2'}), 'IntegerParameter': _reflection.GeneratedProtocolMessageType('IntegerParameter', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_INTEGERPARAMETER, '__module__': 'substrait.parameterized_types_pb2'}), 'NullableInteger': _reflection.GeneratedProtocolMessageType('NullableInteger', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_NULLABLEINTEGER, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedFixedChar': _reflection.GeneratedProtocolMessageType('ParameterizedFixedChar', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedVarChar': _reflection.GeneratedProtocolMessageType('ParameterizedVarChar', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedFixedBinary': _reflection.GeneratedProtocolMessageType('ParameterizedFixedBinary', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedDecimal': _reflection.GeneratedProtocolMessageType('ParameterizedDecimal', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedStruct': _reflection.GeneratedProtocolMessageType('ParameterizedStruct', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedNamedStruct': _reflection.GeneratedProtocolMessageType('ParameterizedNamedStruct', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedList': _reflection.GeneratedProtocolMessageType('ParameterizedList', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDLIST, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedMap': _reflection.GeneratedProtocolMessageType('ParameterizedMap', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDMAP, '__module__': 'substrait.parameterized_types_pb2'}), 'ParameterizedUserDefined': _reflection.GeneratedProtocolMessageType('ParameterizedUserDefined', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED, '__module__': 'substrait.parameterized_types_pb2'}), 'IntegerOption': _reflection.GeneratedProtocolMessageType('IntegerOption', (_message.Message,), {'DESCRIPTOR': _PARAMETERIZEDTYPE_INTEGEROPTION, '__module__': 'substrait.parameterized_types_pb2'}), 'DESCRIPTOR': _PARAMETERIZEDTYPE, '__module__': 'substrait.parameterized_types_pb2'}) _sym_db.RegisterMessage(ParameterizedType) _sym_db.RegisterMessage(ParameterizedType.TypeParameter) _sym_db.RegisterMessage(ParameterizedType.IntegerParameter) @@ -33,33 +34,38 @@ _sym_db.RegisterMessage(ParameterizedType.ParameterizedNamedStruct) _sym_db.RegisterMessage(ParameterizedType.ParameterizedList) _sym_db.RegisterMessage(ParameterizedType.ParameterizedMap) +_sym_db.RegisterMessage(ParameterizedType.ParameterizedUserDefined) _sym_db.RegisterMessage(ParameterizedType.IntegerOption) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobuf' + DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobuf' + _PARAMETERIZEDTYPE.fields_by_name['user_defined_pointer']._options = None + _PARAMETERIZEDTYPE.fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01' _PARAMETERIZEDTYPE._serialized_start = 73 - _PARAMETERIZEDTYPE._serialized_end = 3679 - _PARAMETERIZEDTYPE_TYPEPARAMETER._serialized_start = 1568 - _PARAMETERIZEDTYPE_TYPEPARAMETER._serialized_end = 1657 - _PARAMETERIZEDTYPE_INTEGERPARAMETER._serialized_start = 1660 - _PARAMETERIZEDTYPE_INTEGERPARAMETER._serialized_end = 1890 - _PARAMETERIZEDTYPE_NULLABLEINTEGER._serialized_start = 1892 - _PARAMETERIZEDTYPE_NULLABLEINTEGER._serialized_end = 1931 - _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR._serialized_start = 1934 - _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR._serialized_end = 2134 - _PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR._serialized_start = 2137 - _PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR._serialized_end = 2335 - _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY._serialized_start = 2338 - _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY._serialized_end = 2540 - _PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL._serialized_start = 2543 - _PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL._serialized_end = 2813 - _PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT._serialized_start = 2816 - _PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT._serialized_end = 2997 - _PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT._serialized_start = 2999 - _PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT._serialized_end = 3121 - _PARAMETERIZEDTYPE_PARAMETERIZEDLIST._serialized_start = 3124 - _PARAMETERIZEDTYPE_PARAMETERIZEDLIST._serialized_end = 3301 - _PARAMETERIZEDTYPE_PARAMETERIZEDMAP._serialized_start = 3304 - _PARAMETERIZEDTYPE_PARAMETERIZEDMAP._serialized_end = 3530 - _PARAMETERIZEDTYPE_INTEGEROPTION._serialized_start = 3533 - _PARAMETERIZEDTYPE_INTEGEROPTION._serialized_end = 3671 \ No newline at end of file + _PARAMETERIZEDTYPE._serialized_end = 3947 + _PARAMETERIZEDTYPE_TYPEPARAMETER._serialized_start = 1664 + _PARAMETERIZEDTYPE_TYPEPARAMETER._serialized_end = 1753 + _PARAMETERIZEDTYPE_INTEGERPARAMETER._serialized_start = 1756 + _PARAMETERIZEDTYPE_INTEGERPARAMETER._serialized_end = 1986 + _PARAMETERIZEDTYPE_NULLABLEINTEGER._serialized_start = 1988 + _PARAMETERIZEDTYPE_NULLABLEINTEGER._serialized_end = 2027 + _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR._serialized_start = 2030 + _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR._serialized_end = 2230 + _PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR._serialized_start = 2233 + _PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR._serialized_end = 2431 + _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY._serialized_start = 2434 + _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY._serialized_end = 2636 + _PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL._serialized_start = 2639 + _PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL._serialized_end = 2909 + _PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT._serialized_start = 2912 + _PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT._serialized_end = 3093 + _PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT._serialized_start = 3095 + _PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT._serialized_end = 3217 + _PARAMETERIZEDTYPE_PARAMETERIZEDLIST._serialized_start = 3220 + _PARAMETERIZEDTYPE_PARAMETERIZEDLIST._serialized_end = 3397 + _PARAMETERIZEDTYPE_PARAMETERIZEDMAP._serialized_start = 3400 + _PARAMETERIZEDTYPE_PARAMETERIZEDMAP._serialized_end = 3626 + _PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED._serialized_start = 3629 + _PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED._serialized_end = 3798 + _PARAMETERIZEDTYPE_INTEGEROPTION._serialized_start = 3801 + _PARAMETERIZEDTYPE_INTEGEROPTION._serialized_end = 3939 \ No newline at end of file diff --git a/ibis_substrait/proto/substrait/parameterized_types_pb2.pyi b/ibis_substrait/proto/substrait/parameterized_types_pb2.pyi index 381ba70e..4229ecec 100644 --- a/ibis_substrait/proto/substrait/parameterized_types_pb2.pyi +++ b/ibis_substrait/proto/substrait/parameterized_types_pb2.pyi @@ -242,6 +242,21 @@ class ParameterizedType(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal['key', b'key', 'nullability', b'nullability', 'value', b'value', 'variation_pointer', b'variation_pointer']) -> None: ... + class ParameterizedUserDefined(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_POINTER_FIELD_NUMBER: builtins.int + VARIATION_POINTER_FIELD_NUMBER: builtins.int + NULLABILITY_FIELD_NUMBER: builtins.int + type_pointer: builtins.int + variation_pointer: builtins.int + nullability: substrait.type_pb2.Type.Nullability.ValueType + + def __init__(self, *, type_pointer: builtins.int=..., variation_pointer: builtins.int=..., nullability: substrait.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['nullability', b'nullability', 'type_pointer', b'type_pointer', 'variation_pointer', b'variation_pointer']) -> None: + ... + class IntegerOption(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor LITERAL_FIELD_NUMBER: builtins.int @@ -286,6 +301,7 @@ class ParameterizedType(google.protobuf.message.Message): STRUCT_FIELD_NUMBER: builtins.int LIST_FIELD_NUMBER: builtins.int MAP_FIELD_NUMBER: builtins.int + USER_DEFINED_FIELD_NUMBER: builtins.int USER_DEFINED_POINTER_FIELD_NUMBER: builtins.int TYPE_PARAMETER_FIELD_NUMBER: builtins.int @@ -380,21 +396,26 @@ class ParameterizedType(google.protobuf.message.Message): @property def map(self) -> global___ParameterizedType.ParameterizedMap: ... + + @property + def user_defined(self) -> global___ParameterizedType.ParameterizedUserDefined: + ... user_defined_pointer: builtins.int + 'Deprecated in favor of user_defined, which allows nullability and\n variations to be specified. If user_defined_pointer is encountered,\n treat it as being non-nullable and having the default variation.\n ' @property def type_parameter(self) -> global___ParameterizedType.TypeParameter: ... - def __init__(self, *, bool: typing.Optional[substrait.type_pb2.Type.Boolean]=..., i8: typing.Optional[substrait.type_pb2.Type.I8]=..., i16: typing.Optional[substrait.type_pb2.Type.I16]=..., i32: typing.Optional[substrait.type_pb2.Type.I32]=..., i64: typing.Optional[substrait.type_pb2.Type.I64]=..., fp32: typing.Optional[substrait.type_pb2.Type.FP32]=..., fp64: typing.Optional[substrait.type_pb2.Type.FP64]=..., string: typing.Optional[substrait.type_pb2.Type.String]=..., binary: typing.Optional[substrait.type_pb2.Type.Binary]=..., timestamp: typing.Optional[substrait.type_pb2.Type.Timestamp]=..., date: typing.Optional[substrait.type_pb2.Type.Date]=..., time: typing.Optional[substrait.type_pb2.Type.Time]=..., interval_year: typing.Optional[substrait.type_pb2.Type.IntervalYear]=..., interval_day: typing.Optional[substrait.type_pb2.Type.IntervalDay]=..., timestamp_tz: typing.Optional[substrait.type_pb2.Type.TimestampTZ]=..., uuid: typing.Optional[substrait.type_pb2.Type.UUID]=..., fixed_char: typing.Optional[global___ParameterizedType.ParameterizedFixedChar]=..., varchar: typing.Optional[global___ParameterizedType.ParameterizedVarChar]=..., fixed_binary: typing.Optional[global___ParameterizedType.ParameterizedFixedBinary]=..., decimal: typing.Optional[global___ParameterizedType.ParameterizedDecimal]=..., struct: typing.Optional[global___ParameterizedType.ParameterizedStruct]=..., list: typing.Optional[global___ParameterizedType.ParameterizedList]=..., map: typing.Optional[global___ParameterizedType.ParameterizedMap]=..., user_defined_pointer: builtins.int=..., type_parameter: typing.Optional[global___ParameterizedType.TypeParameter]=...) -> None: + def __init__(self, *, bool: typing.Optional[substrait.type_pb2.Type.Boolean]=..., i8: typing.Optional[substrait.type_pb2.Type.I8]=..., i16: typing.Optional[substrait.type_pb2.Type.I16]=..., i32: typing.Optional[substrait.type_pb2.Type.I32]=..., i64: typing.Optional[substrait.type_pb2.Type.I64]=..., fp32: typing.Optional[substrait.type_pb2.Type.FP32]=..., fp64: typing.Optional[substrait.type_pb2.Type.FP64]=..., string: typing.Optional[substrait.type_pb2.Type.String]=..., binary: typing.Optional[substrait.type_pb2.Type.Binary]=..., timestamp: typing.Optional[substrait.type_pb2.Type.Timestamp]=..., date: typing.Optional[substrait.type_pb2.Type.Date]=..., time: typing.Optional[substrait.type_pb2.Type.Time]=..., interval_year: typing.Optional[substrait.type_pb2.Type.IntervalYear]=..., interval_day: typing.Optional[substrait.type_pb2.Type.IntervalDay]=..., timestamp_tz: typing.Optional[substrait.type_pb2.Type.TimestampTZ]=..., uuid: typing.Optional[substrait.type_pb2.Type.UUID]=..., fixed_char: typing.Optional[global___ParameterizedType.ParameterizedFixedChar]=..., varchar: typing.Optional[global___ParameterizedType.ParameterizedVarChar]=..., fixed_binary: typing.Optional[global___ParameterizedType.ParameterizedFixedBinary]=..., decimal: typing.Optional[global___ParameterizedType.ParameterizedDecimal]=..., struct: typing.Optional[global___ParameterizedType.ParameterizedStruct]=..., list: typing.Optional[global___ParameterizedType.ParameterizedList]=..., map: typing.Optional[global___ParameterizedType.ParameterizedMap]=..., user_defined: typing.Optional[global___ParameterizedType.ParameterizedUserDefined]=..., user_defined_pointer: builtins.int=..., type_parameter: typing.Optional[global___ParameterizedType.TypeParameter]=...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: + def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing.Optional[typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'struct', 'list', 'map', 'user_defined_pointer', 'type_parameter']]: + def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing.Optional[typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'struct', 'list', 'map', 'user_defined', 'user_defined_pointer', 'type_parameter']]: ... global___ParameterizedType = ParameterizedType \ No newline at end of file diff --git a/ibis_substrait/proto/substrait/plan_pb2.py b/ibis_substrait/proto/substrait/plan_pb2.py index 84674ad0..479546d2 100644 --- a/ibis_substrait/proto/substrait/plan_pb2.py +++ b/ibis_substrait/proto/substrait/plan_pb2.py @@ -7,7 +7,7 @@ _sym_db = _symbol_database.Default() from ..substrait import algebra_pb2 as substrait_dot_algebra__pb2 from ..substrait.extensions import extensions_pb2 as substrait_dot_extensions_dot_extensions__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14substrait/plan.proto\x12\tsubstrait\x1a\x17substrait/algebra.proto\x1a%substrait/extensions/extensions.proto"c\n\x07PlanRel\x12"\n\x03rel\x18\x01 \x01(\x0b2\x0e.substrait.RelH\x00R\x03rel\x12(\n\x04root\x18\x02 \x01(\x0b2\x12.substrait.RelRootH\x00R\x04rootB\n\n\x08rel_type"\xe3\x02\n\x04Plan\x12O\n\x0eextension_uris\x18\x01 \x03(\x0b2(.substrait.extensions.SimpleExtensionURIR\rextensionUris\x12P\n\nextensions\x18\x02 \x03(\x0b20.substrait.extensions.SimpleExtensionDeclarationR\nextensions\x120\n\trelations\x18\x03 \x03(\x0b2\x12.substrait.PlanRelR\trelations\x12X\n\x13advanced_extensions\x18\x04 \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x05 \x03(\tR\x10expectedTypeUrlsB+\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14substrait/plan.proto\x12\tsubstrait\x1a\x17substrait/algebra.proto\x1a%substrait/extensions/extensions.proto"c\n\x07PlanRel\x12"\n\x03rel\x18\x01 \x01(\x0b2\x0e.substrait.RelH\x00R\x03rel\x12(\n\x04root\x18\x02 \x01(\x0b2\x12.substrait.RelRootH\x00R\x04rootB\n\n\x08rel_type"\xe3\x02\n\x04Plan\x12O\n\x0eextension_uris\x18\x01 \x03(\x0b2(.substrait.extensions.SimpleExtensionURIR\rextensionUris\x12P\n\nextensions\x18\x02 \x03(\x0b20.substrait.extensions.SimpleExtensionDeclarationR\nextensions\x120\n\trelations\x18\x03 \x03(\x0b2\x12.substrait.PlanRelR\trelations\x12X\n\x13advanced_extensions\x18\x04 \x01(\x0b2\'.substrait.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x05 \x03(\tR\x10expectedTypeUrlsBW\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobufb\x06proto3') _PLANREL = DESCRIPTOR.message_types_by_name['PlanRel'] _PLAN = DESCRIPTOR.message_types_by_name['Plan'] PlanRel = _reflection.GeneratedProtocolMessageType('PlanRel', (_message.Message,), {'DESCRIPTOR': _PLANREL, '__module__': 'substrait.plan_pb2'}) @@ -16,7 +16,7 @@ _sym_db.RegisterMessage(Plan) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobuf' + DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobuf' _PLANREL._serialized_start = 99 _PLANREL._serialized_end = 198 _PLAN._serialized_start = 201 diff --git a/ibis_substrait/proto/substrait/plan_pb2.pyi b/ibis_substrait/proto/substrait/plan_pb2.pyi index 2c64f783..da9a7016 100644 --- a/ibis_substrait/proto/substrait/plan_pb2.pyi +++ b/ibis_substrait/proto/substrait/plan_pb2.pyi @@ -7,7 +7,6 @@ import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message from .. import substrait -from .. import substrait import typing import typing_extensions DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @@ -20,7 +19,7 @@ class PlanRel(google.protobuf.message.Message): @property def rel(self) -> substrait.algebra_pb2.Rel: - """Any relation""" + """Any relation (used for references and CTEs)""" pass @property diff --git a/ibis_substrait/proto/substrait/type_expressions_pb2.py b/ibis_substrait/proto/substrait/type_expressions_pb2.py index 84131934..9cf8116d 100644 --- a/ibis_substrait/proto/substrait/type_expressions_pb2.py +++ b/ibis_substrait/proto/substrait/type_expressions_pb2.py @@ -6,7 +6,7 @@ from google.protobuf import symbol_database as _symbol_database _sym_db = _symbol_database.Default() from ..substrait import type_pb2 as substrait_dot_type__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n substrait/type_expressions.proto\x12\tsubstrait\x1a\x14substrait/type.proto"\xc3$\n\x14DerivationExpression\x12-\n\x04bool\x18\x01 \x01(\x0b2\x17.substrait.Type.BooleanH\x00R\x04bool\x12$\n\x02i8\x18\x02 \x01(\x0b2\x12.substrait.Type.I8H\x00R\x02i8\x12\'\n\x03i16\x18\x03 \x01(\x0b2\x13.substrait.Type.I16H\x00R\x03i16\x12\'\n\x03i32\x18\x05 \x01(\x0b2\x13.substrait.Type.I32H\x00R\x03i32\x12\'\n\x03i64\x18\x07 \x01(\x0b2\x13.substrait.Type.I64H\x00R\x03i64\x12*\n\x04fp32\x18\n \x01(\x0b2\x14.substrait.Type.FP32H\x00R\x04fp32\x12*\n\x04fp64\x18\x0b \x01(\x0b2\x14.substrait.Type.FP64H\x00R\x04fp64\x120\n\x06string\x18\x0c \x01(\x0b2\x16.substrait.Type.StringH\x00R\x06string\x120\n\x06binary\x18\r \x01(\x0b2\x16.substrait.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x19.substrait.Type.TimestampH\x00R\ttimestamp\x12*\n\x04date\x18\x10 \x01(\x0b2\x14.substrait.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x14.substrait.Type.TimeH\x00R\x04time\x12C\n\rinterval_year\x18\x13 \x01(\x0b2\x1c.substrait.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0cinterval_day\x18\x14 \x01(\x0b2\x1b.substrait.Type.IntervalDayH\x00R\x0bintervalDay\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x1b.substrait.Type.TimestampTZH\x00R\x0btimestampTz\x12*\n\x04uuid\x18 \x01(\x0b2\x14.substrait.Type.UUIDH\x00R\x04uuid\x12T\n\nfixed_char\x18\x15 \x01(\x0b23.substrait.DerivationExpression.ExpressionFixedCharH\x00R\tfixedChar\x12M\n\x07varchar\x18\x16 \x01(\x0b21.substrait.DerivationExpression.ExpressionVarCharH\x00R\x07varchar\x12Z\n\x0cfixed_binary\x18\x17 \x01(\x0b25.substrait.DerivationExpression.ExpressionFixedBinaryH\x00R\x0bfixedBinary\x12M\n\x07decimal\x18\x18 \x01(\x0b21.substrait.DerivationExpression.ExpressionDecimalH\x00R\x07decimal\x12J\n\x06struct\x18\x19 \x01(\x0b20.substrait.DerivationExpression.ExpressionStructH\x00R\x06struct\x12D\n\x04list\x18\x1b \x01(\x0b2..substrait.DerivationExpression.ExpressionListH\x00R\x04list\x12A\n\x03map\x18\x1c \x01(\x0b2-.substrait.DerivationExpression.ExpressionMapH\x00R\x03map\x122\n\x14user_defined_pointer\x18\x1f \x01(\rH\x00R\x12userDefinedPointer\x120\n\x13type_parameter_name\x18! \x01(\tH\x00R\x11typeParameterName\x126\n\x16integer_parameter_name\x18" \x01(\tH\x00R\x14integerParameterName\x12)\n\x0finteger_literal\x18# \x01(\x05H\x00R\x0eintegerLiteral\x12D\n\x08unary_op\x18$ \x01(\x0b2\'.substrait.DerivationExpression.UnaryOpH\x00R\x07unaryOp\x12G\n\tbinary_op\x18% \x01(\x0b2(.substrait.DerivationExpression.BinaryOpH\x00R\x08binaryOp\x12A\n\x07if_else\x18& \x01(\x0b2&.substrait.DerivationExpression.IfElseH\x00R\x06ifElse\x12V\n\x0ereturn_program\x18\' \x01(\x0b2-.substrait.DerivationExpression.ReturnProgramH\x00R\rreturnProgram\x1a\xba\x01\n\x13ExpressionFixedChar\x127\n\x06length\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xb8\x01\n\x11ExpressionVarChar\x127\n\x06length\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x15ExpressionFixedBinary\x127\n\x06length\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xf5\x01\n\x11ExpressionDecimal\x125\n\x05scale\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x05scale\x12=\n\tprecision\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xb5\x01\n\x10ExpressionStruct\x125\n\x05types\x18\x01 \x03(\x0b2\x1f.substrait.DerivationExpressionR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1aw\n\x15ExpressionNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12H\n\x06struct\x18\x02 \x01(\x0b20.substrait.DerivationExpression.ExpressionStructR\x06struct\x1a\xb1\x01\n\x0eExpressionList\x123\n\x04type\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xe5\x01\n\rExpressionMap\x121\n\x03key\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x03key\x125\n\x05value\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xcc\x01\n\x06IfElse\x12B\n\x0cif_condition\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x0bifCondition\x12<\n\tif_return\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x08ifReturn\x12@\n\x0belse_return\x18\x03 \x01(\x0b2\x1f.substrait.DerivationExpressionR\nelseReturn\x1a\xd7\x01\n\x07UnaryOp\x12L\n\x07op_type\x18\x01 \x01(\x0e23.substrait.DerivationExpression.UnaryOp.UnaryOpTypeR\x06opType\x121\n\x03arg\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x03arg"K\n\x0bUnaryOpType\x12\x1d\n\x19UNARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19UNARY_OP_TYPE_BOOLEAN_NOT\x10\x01\x1a\xb4\x04\n\x08BinaryOp\x12N\n\x07op_type\x18\x01 \x01(\x0e25.substrait.DerivationExpression.BinaryOp.BinaryOpTypeR\x06opType\x123\n\x04arg1\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x04arg1\x123\n\x04arg2\x18\x03 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x04arg2"\xed\x02\n\x0cBinaryOpType\x12\x1e\n\x1aBINARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13BINARY_OP_TYPE_PLUS\x10\x01\x12\x18\n\x14BINARY_OP_TYPE_MINUS\x10\x02\x12\x1b\n\x17BINARY_OP_TYPE_MULTIPLY\x10\x03\x12\x19\n\x15BINARY_OP_TYPE_DIVIDE\x10\x04\x12\x16\n\x12BINARY_OP_TYPE_MIN\x10\x05\x12\x16\n\x12BINARY_OP_TYPE_MAX\x10\x06\x12\x1f\n\x1bBINARY_OP_TYPE_GREATER_THAN\x10\x07\x12\x1c\n\x18BINARY_OP_TYPE_LESS_THAN\x10\x08\x12\x16\n\x12BINARY_OP_TYPE_AND\x10\t\x12\x15\n\x11BINARY_OP_TYPE_OR\x10\n\x12\x19\n\x15BINARY_OP_TYPE_EQUALS\x10\x0b\x12\x19\n\x15BINARY_OP_TYPE_COVERS\x10\x0c\x1a\x9a\x02\n\rReturnProgram\x12Z\n\x0bassignments\x18\x01 \x03(\x0b28.substrait.DerivationExpression.ReturnProgram.AssignmentR\x0bassignments\x12J\n\x10final_expression\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x0ffinalExpression\x1aa\n\nAssignment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12?\n\nexpression\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\nexpressionB\x06\n\x04kindB+\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobufb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n substrait/type_expressions.proto\x12\tsubstrait\x1a\x14substrait/type.proto"\xcc&\n\x14DerivationExpression\x12-\n\x04bool\x18\x01 \x01(\x0b2\x17.substrait.Type.BooleanH\x00R\x04bool\x12$\n\x02i8\x18\x02 \x01(\x0b2\x12.substrait.Type.I8H\x00R\x02i8\x12\'\n\x03i16\x18\x03 \x01(\x0b2\x13.substrait.Type.I16H\x00R\x03i16\x12\'\n\x03i32\x18\x05 \x01(\x0b2\x13.substrait.Type.I32H\x00R\x03i32\x12\'\n\x03i64\x18\x07 \x01(\x0b2\x13.substrait.Type.I64H\x00R\x03i64\x12*\n\x04fp32\x18\n \x01(\x0b2\x14.substrait.Type.FP32H\x00R\x04fp32\x12*\n\x04fp64\x18\x0b \x01(\x0b2\x14.substrait.Type.FP64H\x00R\x04fp64\x120\n\x06string\x18\x0c \x01(\x0b2\x16.substrait.Type.StringH\x00R\x06string\x120\n\x06binary\x18\r \x01(\x0b2\x16.substrait.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x19.substrait.Type.TimestampH\x00R\ttimestamp\x12*\n\x04date\x18\x10 \x01(\x0b2\x14.substrait.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x14.substrait.Type.TimeH\x00R\x04time\x12C\n\rinterval_year\x18\x13 \x01(\x0b2\x1c.substrait.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0cinterval_day\x18\x14 \x01(\x0b2\x1b.substrait.Type.IntervalDayH\x00R\x0bintervalDay\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x1b.substrait.Type.TimestampTZH\x00R\x0btimestampTz\x12*\n\x04uuid\x18 \x01(\x0b2\x14.substrait.Type.UUIDH\x00R\x04uuid\x12T\n\nfixed_char\x18\x15 \x01(\x0b23.substrait.DerivationExpression.ExpressionFixedCharH\x00R\tfixedChar\x12M\n\x07varchar\x18\x16 \x01(\x0b21.substrait.DerivationExpression.ExpressionVarCharH\x00R\x07varchar\x12Z\n\x0cfixed_binary\x18\x17 \x01(\x0b25.substrait.DerivationExpression.ExpressionFixedBinaryH\x00R\x0bfixedBinary\x12M\n\x07decimal\x18\x18 \x01(\x0b21.substrait.DerivationExpression.ExpressionDecimalH\x00R\x07decimal\x12J\n\x06struct\x18\x19 \x01(\x0b20.substrait.DerivationExpression.ExpressionStructH\x00R\x06struct\x12D\n\x04list\x18\x1b \x01(\x0b2..substrait.DerivationExpression.ExpressionListH\x00R\x04list\x12A\n\x03map\x18\x1c \x01(\x0b2-.substrait.DerivationExpression.ExpressionMapH\x00R\x03map\x12Z\n\x0cuser_defined\x18\x1e \x01(\x0b25.substrait.DerivationExpression.ExpressionUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x120\n\x13type_parameter_name\x18! \x01(\tH\x00R\x11typeParameterName\x126\n\x16integer_parameter_name\x18" \x01(\tH\x00R\x14integerParameterName\x12)\n\x0finteger_literal\x18# \x01(\x05H\x00R\x0eintegerLiteral\x12D\n\x08unary_op\x18$ \x01(\x0b2\'.substrait.DerivationExpression.UnaryOpH\x00R\x07unaryOp\x12G\n\tbinary_op\x18% \x01(\x0b2(.substrait.DerivationExpression.BinaryOpH\x00R\x08binaryOp\x12A\n\x07if_else\x18& \x01(\x0b2&.substrait.DerivationExpression.IfElseH\x00R\x06ifElse\x12V\n\x0ereturn_program\x18\' \x01(\x0b2-.substrait.DerivationExpression.ReturnProgramH\x00R\rreturnProgram\x1a\xba\x01\n\x13ExpressionFixedChar\x127\n\x06length\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xb8\x01\n\x11ExpressionVarChar\x127\n\x06length\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x15ExpressionFixedBinary\x127\n\x06length\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xf5\x01\n\x11ExpressionDecimal\x125\n\x05scale\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x05scale\x12=\n\tprecision\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xb5\x01\n\x10ExpressionStruct\x125\n\x05types\x18\x01 \x03(\x0b2\x1f.substrait.DerivationExpressionR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1aw\n\x15ExpressionNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12H\n\x06struct\x18\x02 \x01(\x0b20.substrait.DerivationExpression.ExpressionStructR\x06struct\x1a\xb1\x01\n\x0eExpressionList\x123\n\x04type\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xe5\x01\n\rExpressionMap\x121\n\x03key\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x03key\x125\n\x05value\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xa6\x01\n\x15ExpressionUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xcc\x01\n\x06IfElse\x12B\n\x0cif_condition\x18\x01 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x0bifCondition\x12<\n\tif_return\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x08ifReturn\x12@\n\x0belse_return\x18\x03 \x01(\x0b2\x1f.substrait.DerivationExpressionR\nelseReturn\x1a\xd7\x01\n\x07UnaryOp\x12L\n\x07op_type\x18\x01 \x01(\x0e23.substrait.DerivationExpression.UnaryOp.UnaryOpTypeR\x06opType\x121\n\x03arg\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x03arg"K\n\x0bUnaryOpType\x12\x1d\n\x19UNARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19UNARY_OP_TYPE_BOOLEAN_NOT\x10\x01\x1a\xb4\x04\n\x08BinaryOp\x12N\n\x07op_type\x18\x01 \x01(\x0e25.substrait.DerivationExpression.BinaryOp.BinaryOpTypeR\x06opType\x123\n\x04arg1\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x04arg1\x123\n\x04arg2\x18\x03 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x04arg2"\xed\x02\n\x0cBinaryOpType\x12\x1e\n\x1aBINARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13BINARY_OP_TYPE_PLUS\x10\x01\x12\x18\n\x14BINARY_OP_TYPE_MINUS\x10\x02\x12\x1b\n\x17BINARY_OP_TYPE_MULTIPLY\x10\x03\x12\x19\n\x15BINARY_OP_TYPE_DIVIDE\x10\x04\x12\x16\n\x12BINARY_OP_TYPE_MIN\x10\x05\x12\x16\n\x12BINARY_OP_TYPE_MAX\x10\x06\x12\x1f\n\x1bBINARY_OP_TYPE_GREATER_THAN\x10\x07\x12\x1c\n\x18BINARY_OP_TYPE_LESS_THAN\x10\x08\x12\x16\n\x12BINARY_OP_TYPE_AND\x10\t\x12\x15\n\x11BINARY_OP_TYPE_OR\x10\n\x12\x19\n\x15BINARY_OP_TYPE_EQUALS\x10\x0b\x12\x19\n\x15BINARY_OP_TYPE_COVERS\x10\x0c\x1a\x9a\x02\n\rReturnProgram\x12Z\n\x0bassignments\x18\x01 \x03(\x0b28.substrait.DerivationExpression.ReturnProgram.AssignmentR\x0bassignments\x12J\n\x10final_expression\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\x0ffinalExpression\x1aa\n\nAssignment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12?\n\nexpression\x18\x02 \x01(\x0b2\x1f.substrait.DerivationExpressionR\nexpressionB\x06\n\x04kindBW\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobufb\x06proto3') _DERIVATIONEXPRESSION = DESCRIPTOR.message_types_by_name['DerivationExpression'] _DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR = _DERIVATIONEXPRESSION.nested_types_by_name['ExpressionFixedChar'] _DERIVATIONEXPRESSION_EXPRESSIONVARCHAR = _DERIVATIONEXPRESSION.nested_types_by_name['ExpressionVarChar'] @@ -16,6 +16,7 @@ _DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT = _DERIVATIONEXPRESSION.nested_types_by_name['ExpressionNamedStruct'] _DERIVATIONEXPRESSION_EXPRESSIONLIST = _DERIVATIONEXPRESSION.nested_types_by_name['ExpressionList'] _DERIVATIONEXPRESSION_EXPRESSIONMAP = _DERIVATIONEXPRESSION.nested_types_by_name['ExpressionMap'] +_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED = _DERIVATIONEXPRESSION.nested_types_by_name['ExpressionUserDefined'] _DERIVATIONEXPRESSION_IFELSE = _DERIVATIONEXPRESSION.nested_types_by_name['IfElse'] _DERIVATIONEXPRESSION_UNARYOP = _DERIVATIONEXPRESSION.nested_types_by_name['UnaryOp'] _DERIVATIONEXPRESSION_BINARYOP = _DERIVATIONEXPRESSION.nested_types_by_name['BinaryOp'] @@ -23,7 +24,7 @@ _DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT = _DERIVATIONEXPRESSION_RETURNPROGRAM.nested_types_by_name['Assignment'] _DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE = _DERIVATIONEXPRESSION_UNARYOP.enum_types_by_name['UnaryOpType'] _DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE = _DERIVATIONEXPRESSION_BINARYOP.enum_types_by_name['BinaryOpType'] -DerivationExpression = _reflection.GeneratedProtocolMessageType('DerivationExpression', (_message.Message,), {'ExpressionFixedChar': _reflection.GeneratedProtocolMessageType('ExpressionFixedChar', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionVarChar': _reflection.GeneratedProtocolMessageType('ExpressionVarChar', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONVARCHAR, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionFixedBinary': _reflection.GeneratedProtocolMessageType('ExpressionFixedBinary', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionDecimal': _reflection.GeneratedProtocolMessageType('ExpressionDecimal', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONDECIMAL, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionStruct': _reflection.GeneratedProtocolMessageType('ExpressionStruct', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONSTRUCT, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionNamedStruct': _reflection.GeneratedProtocolMessageType('ExpressionNamedStruct', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionList': _reflection.GeneratedProtocolMessageType('ExpressionList', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONLIST, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionMap': _reflection.GeneratedProtocolMessageType('ExpressionMap', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONMAP, '__module__': 'substrait.type_expressions_pb2'}), 'IfElse': _reflection.GeneratedProtocolMessageType('IfElse', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_IFELSE, '__module__': 'substrait.type_expressions_pb2'}), 'UnaryOp': _reflection.GeneratedProtocolMessageType('UnaryOp', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_UNARYOP, '__module__': 'substrait.type_expressions_pb2'}), 'BinaryOp': _reflection.GeneratedProtocolMessageType('BinaryOp', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_BINARYOP, '__module__': 'substrait.type_expressions_pb2'}), 'ReturnProgram': _reflection.GeneratedProtocolMessageType('ReturnProgram', (_message.Message,), {'Assignment': _reflection.GeneratedProtocolMessageType('Assignment', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT, '__module__': 'substrait.type_expressions_pb2'}), 'DESCRIPTOR': _DERIVATIONEXPRESSION_RETURNPROGRAM, '__module__': 'substrait.type_expressions_pb2'}), 'DESCRIPTOR': _DERIVATIONEXPRESSION, '__module__': 'substrait.type_expressions_pb2'}) +DerivationExpression = _reflection.GeneratedProtocolMessageType('DerivationExpression', (_message.Message,), {'ExpressionFixedChar': _reflection.GeneratedProtocolMessageType('ExpressionFixedChar', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionVarChar': _reflection.GeneratedProtocolMessageType('ExpressionVarChar', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONVARCHAR, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionFixedBinary': _reflection.GeneratedProtocolMessageType('ExpressionFixedBinary', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionDecimal': _reflection.GeneratedProtocolMessageType('ExpressionDecimal', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONDECIMAL, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionStruct': _reflection.GeneratedProtocolMessageType('ExpressionStruct', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONSTRUCT, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionNamedStruct': _reflection.GeneratedProtocolMessageType('ExpressionNamedStruct', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionList': _reflection.GeneratedProtocolMessageType('ExpressionList', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONLIST, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionMap': _reflection.GeneratedProtocolMessageType('ExpressionMap', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONMAP, '__module__': 'substrait.type_expressions_pb2'}), 'ExpressionUserDefined': _reflection.GeneratedProtocolMessageType('ExpressionUserDefined', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED, '__module__': 'substrait.type_expressions_pb2'}), 'IfElse': _reflection.GeneratedProtocolMessageType('IfElse', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_IFELSE, '__module__': 'substrait.type_expressions_pb2'}), 'UnaryOp': _reflection.GeneratedProtocolMessageType('UnaryOp', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_UNARYOP, '__module__': 'substrait.type_expressions_pb2'}), 'BinaryOp': _reflection.GeneratedProtocolMessageType('BinaryOp', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_BINARYOP, '__module__': 'substrait.type_expressions_pb2'}), 'ReturnProgram': _reflection.GeneratedProtocolMessageType('ReturnProgram', (_message.Message,), {'Assignment': _reflection.GeneratedProtocolMessageType('Assignment', (_message.Message,), {'DESCRIPTOR': _DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT, '__module__': 'substrait.type_expressions_pb2'}), 'DESCRIPTOR': _DERIVATIONEXPRESSION_RETURNPROGRAM, '__module__': 'substrait.type_expressions_pb2'}), 'DESCRIPTOR': _DERIVATIONEXPRESSION, '__module__': 'substrait.type_expressions_pb2'}) _sym_db.RegisterMessage(DerivationExpression) _sym_db.RegisterMessage(DerivationExpression.ExpressionFixedChar) _sym_db.RegisterMessage(DerivationExpression.ExpressionVarChar) @@ -33,6 +34,7 @@ _sym_db.RegisterMessage(DerivationExpression.ExpressionNamedStruct) _sym_db.RegisterMessage(DerivationExpression.ExpressionList) _sym_db.RegisterMessage(DerivationExpression.ExpressionMap) +_sym_db.RegisterMessage(DerivationExpression.ExpressionUserDefined) _sym_db.RegisterMessage(DerivationExpression.IfElse) _sym_db.RegisterMessage(DerivationExpression.UnaryOp) _sym_db.RegisterMessage(DerivationExpression.BinaryOp) @@ -40,36 +42,40 @@ _sym_db.RegisterMessage(DerivationExpression.ReturnProgram.Assignment) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobuf' + DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobuf' + _DERIVATIONEXPRESSION.fields_by_name['user_defined_pointer']._options = None + _DERIVATIONEXPRESSION.fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01' _DERIVATIONEXPRESSION._serialized_start = 70 - _DERIVATIONEXPRESSION._serialized_end = 4745 - _DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR._serialized_start = 1931 - _DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR._serialized_end = 2117 - _DERIVATIONEXPRESSION_EXPRESSIONVARCHAR._serialized_start = 2120 - _DERIVATIONEXPRESSION_EXPRESSIONVARCHAR._serialized_end = 2304 - _DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY._serialized_start = 2307 - _DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY._serialized_end = 2495 - _DERIVATIONEXPRESSION_EXPRESSIONDECIMAL._serialized_start = 2498 - _DERIVATIONEXPRESSION_EXPRESSIONDECIMAL._serialized_end = 2743 - _DERIVATIONEXPRESSION_EXPRESSIONSTRUCT._serialized_start = 2746 - _DERIVATIONEXPRESSION_EXPRESSIONSTRUCT._serialized_end = 2927 - _DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT._serialized_start = 2929 - _DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT._serialized_end = 3048 - _DERIVATIONEXPRESSION_EXPRESSIONLIST._serialized_start = 3051 - _DERIVATIONEXPRESSION_EXPRESSIONLIST._serialized_end = 3228 - _DERIVATIONEXPRESSION_EXPRESSIONMAP._serialized_start = 3231 - _DERIVATIONEXPRESSION_EXPRESSIONMAP._serialized_end = 3460 - _DERIVATIONEXPRESSION_IFELSE._serialized_start = 3463 - _DERIVATIONEXPRESSION_IFELSE._serialized_end = 3667 - _DERIVATIONEXPRESSION_UNARYOP._serialized_start = 3670 - _DERIVATIONEXPRESSION_UNARYOP._serialized_end = 3885 - _DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE._serialized_start = 3810 - _DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE._serialized_end = 3885 - _DERIVATIONEXPRESSION_BINARYOP._serialized_start = 3888 - _DERIVATIONEXPRESSION_BINARYOP._serialized_end = 4452 - _DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE._serialized_start = 4087 - _DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE._serialized_end = 4452 - _DERIVATIONEXPRESSION_RETURNPROGRAM._serialized_start = 4455 - _DERIVATIONEXPRESSION_RETURNPROGRAM._serialized_end = 4737 - _DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT._serialized_start = 4640 - _DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT._serialized_end = 4737 \ No newline at end of file + _DERIVATIONEXPRESSION._serialized_end = 5010 + _DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR._serialized_start = 2027 + _DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR._serialized_end = 2213 + _DERIVATIONEXPRESSION_EXPRESSIONVARCHAR._serialized_start = 2216 + _DERIVATIONEXPRESSION_EXPRESSIONVARCHAR._serialized_end = 2400 + _DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY._serialized_start = 2403 + _DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY._serialized_end = 2591 + _DERIVATIONEXPRESSION_EXPRESSIONDECIMAL._serialized_start = 2594 + _DERIVATIONEXPRESSION_EXPRESSIONDECIMAL._serialized_end = 2839 + _DERIVATIONEXPRESSION_EXPRESSIONSTRUCT._serialized_start = 2842 + _DERIVATIONEXPRESSION_EXPRESSIONSTRUCT._serialized_end = 3023 + _DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT._serialized_start = 3025 + _DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT._serialized_end = 3144 + _DERIVATIONEXPRESSION_EXPRESSIONLIST._serialized_start = 3147 + _DERIVATIONEXPRESSION_EXPRESSIONLIST._serialized_end = 3324 + _DERIVATIONEXPRESSION_EXPRESSIONMAP._serialized_start = 3327 + _DERIVATIONEXPRESSION_EXPRESSIONMAP._serialized_end = 3556 + _DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED._serialized_start = 3559 + _DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED._serialized_end = 3725 + _DERIVATIONEXPRESSION_IFELSE._serialized_start = 3728 + _DERIVATIONEXPRESSION_IFELSE._serialized_end = 3932 + _DERIVATIONEXPRESSION_UNARYOP._serialized_start = 3935 + _DERIVATIONEXPRESSION_UNARYOP._serialized_end = 4150 + _DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE._serialized_start = 4075 + _DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE._serialized_end = 4150 + _DERIVATIONEXPRESSION_BINARYOP._serialized_start = 4153 + _DERIVATIONEXPRESSION_BINARYOP._serialized_end = 4717 + _DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE._serialized_start = 4352 + _DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE._serialized_end = 4717 + _DERIVATIONEXPRESSION_RETURNPROGRAM._serialized_start = 4720 + _DERIVATIONEXPRESSION_RETURNPROGRAM._serialized_end = 5002 + _DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT._serialized_start = 4905 + _DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT._serialized_end = 5002 \ No newline at end of file diff --git a/ibis_substrait/proto/substrait/type_expressions_pb2.pyi b/ibis_substrait/proto/substrait/type_expressions_pb2.pyi index 160650af..81563588 100644 --- a/ibis_substrait/proto/substrait/type_expressions_pb2.pyi +++ b/ibis_substrait/proto/substrait/type_expressions_pb2.pyi @@ -191,6 +191,21 @@ class DerivationExpression(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal['key', b'key', 'nullability', b'nullability', 'value', b'value', 'variation_pointer', b'variation_pointer']) -> None: ... + class ExpressionUserDefined(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_POINTER_FIELD_NUMBER: builtins.int + VARIATION_POINTER_FIELD_NUMBER: builtins.int + NULLABILITY_FIELD_NUMBER: builtins.int + type_pointer: builtins.int + variation_pointer: builtins.int + nullability: substrait.type_pb2.Type.Nullability.ValueType + + def __init__(self, *, type_pointer: builtins.int=..., variation_pointer: builtins.int=..., nullability: substrait.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['nullability', b'nullability', 'type_pointer', b'type_pointer', 'variation_pointer', b'variation_pointer']) -> None: + ... + class IfElse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor IF_CONDITION_FIELD_NUMBER: builtins.int @@ -374,6 +389,7 @@ class DerivationExpression(google.protobuf.message.Message): STRUCT_FIELD_NUMBER: builtins.int LIST_FIELD_NUMBER: builtins.int MAP_FIELD_NUMBER: builtins.int + USER_DEFINED_FIELD_NUMBER: builtins.int USER_DEFINED_POINTER_FIELD_NUMBER: builtins.int TYPE_PARAMETER_NAME_FIELD_NUMBER: builtins.int INTEGER_PARAMETER_NAME_FIELD_NUMBER: builtins.int @@ -474,7 +490,12 @@ class DerivationExpression(google.protobuf.message.Message): @property def map(self) -> global___DerivationExpression.ExpressionMap: ... + + @property + def user_defined(self) -> global___DerivationExpression.ExpressionUserDefined: + ... user_defined_pointer: builtins.int + 'Deprecated in favor of user_defined, which allows nullability and\n variations to be specified. If user_defined_pointer is encountered,\n treat it as being non-nullable and having the default variation.\n ' type_parameter_name: typing.Text integer_parameter_name: typing.Text integer_literal: builtins.int @@ -495,15 +516,15 @@ class DerivationExpression(google.protobuf.message.Message): def return_program(self) -> global___DerivationExpression.ReturnProgram: ... - def __init__(self, *, bool: typing.Optional[substrait.type_pb2.Type.Boolean]=..., i8: typing.Optional[substrait.type_pb2.Type.I8]=..., i16: typing.Optional[substrait.type_pb2.Type.I16]=..., i32: typing.Optional[substrait.type_pb2.Type.I32]=..., i64: typing.Optional[substrait.type_pb2.Type.I64]=..., fp32: typing.Optional[substrait.type_pb2.Type.FP32]=..., fp64: typing.Optional[substrait.type_pb2.Type.FP64]=..., string: typing.Optional[substrait.type_pb2.Type.String]=..., binary: typing.Optional[substrait.type_pb2.Type.Binary]=..., timestamp: typing.Optional[substrait.type_pb2.Type.Timestamp]=..., date: typing.Optional[substrait.type_pb2.Type.Date]=..., time: typing.Optional[substrait.type_pb2.Type.Time]=..., interval_year: typing.Optional[substrait.type_pb2.Type.IntervalYear]=..., interval_day: typing.Optional[substrait.type_pb2.Type.IntervalDay]=..., timestamp_tz: typing.Optional[substrait.type_pb2.Type.TimestampTZ]=..., uuid: typing.Optional[substrait.type_pb2.Type.UUID]=..., fixed_char: typing.Optional[global___DerivationExpression.ExpressionFixedChar]=..., varchar: typing.Optional[global___DerivationExpression.ExpressionVarChar]=..., fixed_binary: typing.Optional[global___DerivationExpression.ExpressionFixedBinary]=..., decimal: typing.Optional[global___DerivationExpression.ExpressionDecimal]=..., struct: typing.Optional[global___DerivationExpression.ExpressionStruct]=..., list: typing.Optional[global___DerivationExpression.ExpressionList]=..., map: typing.Optional[global___DerivationExpression.ExpressionMap]=..., user_defined_pointer: builtins.int=..., type_parameter_name: typing.Text=..., integer_parameter_name: typing.Text=..., integer_literal: builtins.int=..., unary_op: typing.Optional[global___DerivationExpression.UnaryOp]=..., binary_op: typing.Optional[global___DerivationExpression.BinaryOp]=..., if_else: typing.Optional[global___DerivationExpression.IfElse]=..., return_program: typing.Optional[global___DerivationExpression.ReturnProgram]=...) -> None: + def __init__(self, *, bool: typing.Optional[substrait.type_pb2.Type.Boolean]=..., i8: typing.Optional[substrait.type_pb2.Type.I8]=..., i16: typing.Optional[substrait.type_pb2.Type.I16]=..., i32: typing.Optional[substrait.type_pb2.Type.I32]=..., i64: typing.Optional[substrait.type_pb2.Type.I64]=..., fp32: typing.Optional[substrait.type_pb2.Type.FP32]=..., fp64: typing.Optional[substrait.type_pb2.Type.FP64]=..., string: typing.Optional[substrait.type_pb2.Type.String]=..., binary: typing.Optional[substrait.type_pb2.Type.Binary]=..., timestamp: typing.Optional[substrait.type_pb2.Type.Timestamp]=..., date: typing.Optional[substrait.type_pb2.Type.Date]=..., time: typing.Optional[substrait.type_pb2.Type.Time]=..., interval_year: typing.Optional[substrait.type_pb2.Type.IntervalYear]=..., interval_day: typing.Optional[substrait.type_pb2.Type.IntervalDay]=..., timestamp_tz: typing.Optional[substrait.type_pb2.Type.TimestampTZ]=..., uuid: typing.Optional[substrait.type_pb2.Type.UUID]=..., fixed_char: typing.Optional[global___DerivationExpression.ExpressionFixedChar]=..., varchar: typing.Optional[global___DerivationExpression.ExpressionVarChar]=..., fixed_binary: typing.Optional[global___DerivationExpression.ExpressionFixedBinary]=..., decimal: typing.Optional[global___DerivationExpression.ExpressionDecimal]=..., struct: typing.Optional[global___DerivationExpression.ExpressionStruct]=..., list: typing.Optional[global___DerivationExpression.ExpressionList]=..., map: typing.Optional[global___DerivationExpression.ExpressionMap]=..., user_defined: typing.Optional[global___DerivationExpression.ExpressionUserDefined]=..., user_defined_pointer: builtins.int=..., type_parameter_name: typing.Text=..., integer_parameter_name: typing.Text=..., integer_literal: builtins.int=..., unary_op: typing.Optional[global___DerivationExpression.UnaryOp]=..., binary_op: typing.Optional[global___DerivationExpression.BinaryOp]=..., if_else: typing.Optional[global___DerivationExpression.IfElse]=..., return_program: typing.Optional[global___DerivationExpression.ReturnProgram]=...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: + def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing.Optional[typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'struct', 'list', 'map', 'user_defined_pointer', 'type_parameter_name', 'integer_parameter_name', 'integer_literal', 'unary_op', 'binary_op', 'if_else', 'return_program']]: + def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing.Optional[typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'struct', 'list', 'map', 'user_defined', 'user_defined_pointer', 'type_parameter_name', 'integer_parameter_name', 'integer_literal', 'unary_op', 'binary_op', 'if_else', 'return_program']]: ... global___DerivationExpression = DerivationExpression \ No newline at end of file diff --git a/ibis_substrait/proto/substrait/type_pb2.py b/ibis_substrait/proto/substrait/type_pb2.py index c170979e..88a5b0da 100644 --- a/ibis_substrait/proto/substrait/type_pb2.py +++ b/ibis_substrait/proto/substrait/type_pb2.py @@ -5,7 +5,8 @@ from google.protobuf import reflection as _reflection from google.protobuf import symbol_database as _symbol_database _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14substrait/type.proto\x12\tsubstrait"\x99$\n\x04Type\x12-\n\x04bool\x18\x01 \x01(\x0b2\x17.substrait.Type.BooleanH\x00R\x04bool\x12$\n\x02i8\x18\x02 \x01(\x0b2\x12.substrait.Type.I8H\x00R\x02i8\x12\'\n\x03i16\x18\x03 \x01(\x0b2\x13.substrait.Type.I16H\x00R\x03i16\x12\'\n\x03i32\x18\x05 \x01(\x0b2\x13.substrait.Type.I32H\x00R\x03i32\x12\'\n\x03i64\x18\x07 \x01(\x0b2\x13.substrait.Type.I64H\x00R\x03i64\x12*\n\x04fp32\x18\n \x01(\x0b2\x14.substrait.Type.FP32H\x00R\x04fp32\x12*\n\x04fp64\x18\x0b \x01(\x0b2\x14.substrait.Type.FP64H\x00R\x04fp64\x120\n\x06string\x18\x0c \x01(\x0b2\x16.substrait.Type.StringH\x00R\x06string\x120\n\x06binary\x18\r \x01(\x0b2\x16.substrait.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x19.substrait.Type.TimestampH\x00R\ttimestamp\x12*\n\x04date\x18\x10 \x01(\x0b2\x14.substrait.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x14.substrait.Type.TimeH\x00R\x04time\x12C\n\rinterval_year\x18\x13 \x01(\x0b2\x1c.substrait.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0cinterval_day\x18\x14 \x01(\x0b2\x1b.substrait.Type.IntervalDayH\x00R\x0bintervalDay\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x1b.substrait.Type.TimestampTZH\x00R\x0btimestampTz\x12*\n\x04uuid\x18 \x01(\x0b2\x14.substrait.Type.UUIDH\x00R\x04uuid\x12:\n\nfixed_char\x18\x15 \x01(\x0b2\x19.substrait.Type.FixedCharH\x00R\tfixedChar\x123\n\x07varchar\x18\x16 \x01(\x0b2\x17.substrait.Type.VarCharH\x00R\x07varchar\x12@\n\x0cfixed_binary\x18\x17 \x01(\x0b2\x1b.substrait.Type.FixedBinaryH\x00R\x0bfixedBinary\x123\n\x07decimal\x18\x18 \x01(\x0b2\x17.substrait.Type.DecimalH\x00R\x07decimal\x120\n\x06struct\x18\x19 \x01(\x0b2\x16.substrait.Type.StructH\x00R\x06struct\x12*\n\x04list\x18\x1b \x01(\x0b2\x14.substrait.Type.ListH\x00R\x04list\x12\'\n\x03map\x18\x1c \x01(\x0b2\x13.substrait.Type.MapH\x00R\x03map\x12?\n\x1buser_defined_type_reference\x18\x1f \x01(\rH\x00R\x18userDefinedTypeReference\x1a\x82\x01\n\x07Boolean\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a}\n\x02I8\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a~\n\x03I16\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a~\n\x03I32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a~\n\x03I64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x7f\n\x04FP32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x7f\n\x04FP64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x81\x01\n\x06String\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x81\x01\n\x06Binary\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x84\x01\n\tTimestamp\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x7f\n\x04Date\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x7f\n\x04Time\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x86\x01\n\x0bTimestampTZ\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x87\x01\n\x0cIntervalYear\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x86\x01\n\x0bIntervalDay\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x7f\n\x04UUID\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x9c\x01\n\tFixedChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x9a\x01\n\x07VarChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x9e\x01\n\x0bFixedBinary\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xb6\x01\n\x07Decimal\x12\x14\n\x05scale\x18\x01 \x01(\x05R\x05scale\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xa8\x01\n\x06Struct\x12%\n\x05types\x18\x01 \x03(\x0b2\x0f.substrait.TypeR\x05types\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xa4\x01\n\x04List\x12#\n\x04type\x18\x01 \x01(\x0b2\x0f.substrait.TypeR\x04type\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xc8\x01\n\x03Map\x12!\n\x03key\x18\x01 \x01(\x0b2\x0f.substrait.TypeR\x03key\x12%\n\x05value\x18\x02 \x01(\x0b2\x0f.substrait.TypeR\x05value\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability"^\n\x0bNullability\x12\x1b\n\x17NULLABILITY_UNSPECIFIED\x10\x00\x12\x18\n\x14NULLABILITY_NULLABLE\x10\x01\x12\x18\n\x14NULLABILITY_REQUIRED\x10\x02B\x06\n\x04kind"S\n\x0bNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12.\n\x06struct\x18\x02 \x01(\x0b2\x16.substrait.Type.StructR\x06structB+\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobufb\x06proto3') +from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14substrait/type.proto\x12\tsubstrait\x1a\x1bgoogle/protobuf/empty.proto"\xb4(\n\x04Type\x12-\n\x04bool\x18\x01 \x01(\x0b2\x17.substrait.Type.BooleanH\x00R\x04bool\x12$\n\x02i8\x18\x02 \x01(\x0b2\x12.substrait.Type.I8H\x00R\x02i8\x12\'\n\x03i16\x18\x03 \x01(\x0b2\x13.substrait.Type.I16H\x00R\x03i16\x12\'\n\x03i32\x18\x05 \x01(\x0b2\x13.substrait.Type.I32H\x00R\x03i32\x12\'\n\x03i64\x18\x07 \x01(\x0b2\x13.substrait.Type.I64H\x00R\x03i64\x12*\n\x04fp32\x18\n \x01(\x0b2\x14.substrait.Type.FP32H\x00R\x04fp32\x12*\n\x04fp64\x18\x0b \x01(\x0b2\x14.substrait.Type.FP64H\x00R\x04fp64\x120\n\x06string\x18\x0c \x01(\x0b2\x16.substrait.Type.StringH\x00R\x06string\x120\n\x06binary\x18\r \x01(\x0b2\x16.substrait.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x19.substrait.Type.TimestampH\x00R\ttimestamp\x12*\n\x04date\x18\x10 \x01(\x0b2\x14.substrait.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x14.substrait.Type.TimeH\x00R\x04time\x12C\n\rinterval_year\x18\x13 \x01(\x0b2\x1c.substrait.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0cinterval_day\x18\x14 \x01(\x0b2\x1b.substrait.Type.IntervalDayH\x00R\x0bintervalDay\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x1b.substrait.Type.TimestampTZH\x00R\x0btimestampTz\x12*\n\x04uuid\x18 \x01(\x0b2\x14.substrait.Type.UUIDH\x00R\x04uuid\x12:\n\nfixed_char\x18\x15 \x01(\x0b2\x19.substrait.Type.FixedCharH\x00R\tfixedChar\x123\n\x07varchar\x18\x16 \x01(\x0b2\x17.substrait.Type.VarCharH\x00R\x07varchar\x12@\n\x0cfixed_binary\x18\x17 \x01(\x0b2\x1b.substrait.Type.FixedBinaryH\x00R\x0bfixedBinary\x123\n\x07decimal\x18\x18 \x01(\x0b2\x17.substrait.Type.DecimalH\x00R\x07decimal\x120\n\x06struct\x18\x19 \x01(\x0b2\x16.substrait.Type.StructH\x00R\x06struct\x12*\n\x04list\x18\x1b \x01(\x0b2\x14.substrait.Type.ListH\x00R\x04list\x12\'\n\x03map\x18\x1c \x01(\x0b2\x13.substrait.Type.MapH\x00R\x03map\x12@\n\x0cuser_defined\x18\x1e \x01(\x0b2\x1b.substrait.Type.UserDefinedH\x00R\x0buserDefined\x12C\n\x1buser_defined_type_reference\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x18userDefinedTypeReference\x1a\x82\x01\n\x07Boolean\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a}\n\x02I8\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a~\n\x03I16\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a~\n\x03I32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a~\n\x03I64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x7f\n\x04FP32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x7f\n\x04FP64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x81\x01\n\x06String\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x81\x01\n\x06Binary\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x84\x01\n\tTimestamp\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x7f\n\x04Date\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x7f\n\x04Time\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x86\x01\n\x0bTimestampTZ\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x87\x01\n\x0cIntervalYear\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x86\x01\n\x0bIntervalDay\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x7f\n\x04UUID\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x02 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x9c\x01\n\tFixedChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x9a\x01\n\x07VarChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\x9e\x01\n\x0bFixedBinary\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xb6\x01\n\x07Decimal\x12\x14\n\x05scale\x18\x01 \x01(\x05R\x05scale\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xa8\x01\n\x06Struct\x12%\n\x05types\x18\x01 \x03(\x0b2\x0f.substrait.TypeR\x05types\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xa4\x01\n\x04List\x12#\n\x04type\x18\x01 \x01(\x0b2\x0f.substrait.TypeR\x04type\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xc8\x01\n\x03Map\x12!\n\x03key\x18\x01 \x01(\x0b2\x0f.substrait.TypeR\x03key\x12%\n\x05value\x18\x02 \x01(\x0b2\x0f.substrait.TypeR\x05value\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x04 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x1a\xf1\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12=\n\x0bnullability\x18\x03 \x01(\x0e2\x1b.substrait.Type.NullabilityR\x0bnullability\x12B\n\x0ftype_parameters\x18\x04 \x03(\x0b2\x19.substrait.Type.ParameterR\x0etypeParameters\x1a\xde\x01\n\tParameter\x12,\n\x04null\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x04null\x12.\n\tdata_type\x18\x02 \x01(\x0b2\x0f.substrait.TypeH\x00R\x08dataType\x12\x1a\n\x07boolean\x18\x03 \x01(\x08H\x00R\x07boolean\x12\x1a\n\x07integer\x18\x04 \x01(\x03H\x00R\x07integer\x12\x14\n\x04enum\x18\x05 \x01(\tH\x00R\x04enum\x12\x18\n\x06string\x18\x06 \x01(\tH\x00R\x06stringB\x0b\n\tparameter"^\n\x0bNullability\x12\x1b\n\x17NULLABILITY_UNSPECIFIED\x10\x00\x12\x18\n\x14NULLABILITY_NULLABLE\x10\x01\x12\x18\n\x14NULLABILITY_REQUIRED\x10\x02B\x06\n\x04kind"S\n\x0bNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12.\n\x06struct\x18\x02 \x01(\x0b2\x16.substrait.Type.StructR\x06structBW\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobufb\x06proto3') _TYPE = DESCRIPTOR.message_types_by_name['Type'] _TYPE_BOOLEAN = _TYPE.nested_types_by_name['Boolean'] _TYPE_I8 = _TYPE.nested_types_by_name['I8'] @@ -30,9 +31,11 @@ _TYPE_STRUCT = _TYPE.nested_types_by_name['Struct'] _TYPE_LIST = _TYPE.nested_types_by_name['List'] _TYPE_MAP = _TYPE.nested_types_by_name['Map'] +_TYPE_USERDEFINED = _TYPE.nested_types_by_name['UserDefined'] +_TYPE_PARAMETER = _TYPE.nested_types_by_name['Parameter'] _NAMEDSTRUCT = DESCRIPTOR.message_types_by_name['NamedStruct'] _TYPE_NULLABILITY = _TYPE.enum_types_by_name['Nullability'] -Type = _reflection.GeneratedProtocolMessageType('Type', (_message.Message,), {'Boolean': _reflection.GeneratedProtocolMessageType('Boolean', (_message.Message,), {'DESCRIPTOR': _TYPE_BOOLEAN, '__module__': 'substrait.type_pb2'}), 'I8': _reflection.GeneratedProtocolMessageType('I8', (_message.Message,), {'DESCRIPTOR': _TYPE_I8, '__module__': 'substrait.type_pb2'}), 'I16': _reflection.GeneratedProtocolMessageType('I16', (_message.Message,), {'DESCRIPTOR': _TYPE_I16, '__module__': 'substrait.type_pb2'}), 'I32': _reflection.GeneratedProtocolMessageType('I32', (_message.Message,), {'DESCRIPTOR': _TYPE_I32, '__module__': 'substrait.type_pb2'}), 'I64': _reflection.GeneratedProtocolMessageType('I64', (_message.Message,), {'DESCRIPTOR': _TYPE_I64, '__module__': 'substrait.type_pb2'}), 'FP32': _reflection.GeneratedProtocolMessageType('FP32', (_message.Message,), {'DESCRIPTOR': _TYPE_FP32, '__module__': 'substrait.type_pb2'}), 'FP64': _reflection.GeneratedProtocolMessageType('FP64', (_message.Message,), {'DESCRIPTOR': _TYPE_FP64, '__module__': 'substrait.type_pb2'}), 'String': _reflection.GeneratedProtocolMessageType('String', (_message.Message,), {'DESCRIPTOR': _TYPE_STRING, '__module__': 'substrait.type_pb2'}), 'Binary': _reflection.GeneratedProtocolMessageType('Binary', (_message.Message,), {'DESCRIPTOR': _TYPE_BINARY, '__module__': 'substrait.type_pb2'}), 'Timestamp': _reflection.GeneratedProtocolMessageType('Timestamp', (_message.Message,), {'DESCRIPTOR': _TYPE_TIMESTAMP, '__module__': 'substrait.type_pb2'}), 'Date': _reflection.GeneratedProtocolMessageType('Date', (_message.Message,), {'DESCRIPTOR': _TYPE_DATE, '__module__': 'substrait.type_pb2'}), 'Time': _reflection.GeneratedProtocolMessageType('Time', (_message.Message,), {'DESCRIPTOR': _TYPE_TIME, '__module__': 'substrait.type_pb2'}), 'TimestampTZ': _reflection.GeneratedProtocolMessageType('TimestampTZ', (_message.Message,), {'DESCRIPTOR': _TYPE_TIMESTAMPTZ, '__module__': 'substrait.type_pb2'}), 'IntervalYear': _reflection.GeneratedProtocolMessageType('IntervalYear', (_message.Message,), {'DESCRIPTOR': _TYPE_INTERVALYEAR, '__module__': 'substrait.type_pb2'}), 'IntervalDay': _reflection.GeneratedProtocolMessageType('IntervalDay', (_message.Message,), {'DESCRIPTOR': _TYPE_INTERVALDAY, '__module__': 'substrait.type_pb2'}), 'UUID': _reflection.GeneratedProtocolMessageType('UUID', (_message.Message,), {'DESCRIPTOR': _TYPE_UUID, '__module__': 'substrait.type_pb2'}), 'FixedChar': _reflection.GeneratedProtocolMessageType('FixedChar', (_message.Message,), {'DESCRIPTOR': _TYPE_FIXEDCHAR, '__module__': 'substrait.type_pb2'}), 'VarChar': _reflection.GeneratedProtocolMessageType('VarChar', (_message.Message,), {'DESCRIPTOR': _TYPE_VARCHAR, '__module__': 'substrait.type_pb2'}), 'FixedBinary': _reflection.GeneratedProtocolMessageType('FixedBinary', (_message.Message,), {'DESCRIPTOR': _TYPE_FIXEDBINARY, '__module__': 'substrait.type_pb2'}), 'Decimal': _reflection.GeneratedProtocolMessageType('Decimal', (_message.Message,), {'DESCRIPTOR': _TYPE_DECIMAL, '__module__': 'substrait.type_pb2'}), 'Struct': _reflection.GeneratedProtocolMessageType('Struct', (_message.Message,), {'DESCRIPTOR': _TYPE_STRUCT, '__module__': 'substrait.type_pb2'}), 'List': _reflection.GeneratedProtocolMessageType('List', (_message.Message,), {'DESCRIPTOR': _TYPE_LIST, '__module__': 'substrait.type_pb2'}), 'Map': _reflection.GeneratedProtocolMessageType('Map', (_message.Message,), {'DESCRIPTOR': _TYPE_MAP, '__module__': 'substrait.type_pb2'}), 'DESCRIPTOR': _TYPE, '__module__': 'substrait.type_pb2'}) +Type = _reflection.GeneratedProtocolMessageType('Type', (_message.Message,), {'Boolean': _reflection.GeneratedProtocolMessageType('Boolean', (_message.Message,), {'DESCRIPTOR': _TYPE_BOOLEAN, '__module__': 'substrait.type_pb2'}), 'I8': _reflection.GeneratedProtocolMessageType('I8', (_message.Message,), {'DESCRIPTOR': _TYPE_I8, '__module__': 'substrait.type_pb2'}), 'I16': _reflection.GeneratedProtocolMessageType('I16', (_message.Message,), {'DESCRIPTOR': _TYPE_I16, '__module__': 'substrait.type_pb2'}), 'I32': _reflection.GeneratedProtocolMessageType('I32', (_message.Message,), {'DESCRIPTOR': _TYPE_I32, '__module__': 'substrait.type_pb2'}), 'I64': _reflection.GeneratedProtocolMessageType('I64', (_message.Message,), {'DESCRIPTOR': _TYPE_I64, '__module__': 'substrait.type_pb2'}), 'FP32': _reflection.GeneratedProtocolMessageType('FP32', (_message.Message,), {'DESCRIPTOR': _TYPE_FP32, '__module__': 'substrait.type_pb2'}), 'FP64': _reflection.GeneratedProtocolMessageType('FP64', (_message.Message,), {'DESCRIPTOR': _TYPE_FP64, '__module__': 'substrait.type_pb2'}), 'String': _reflection.GeneratedProtocolMessageType('String', (_message.Message,), {'DESCRIPTOR': _TYPE_STRING, '__module__': 'substrait.type_pb2'}), 'Binary': _reflection.GeneratedProtocolMessageType('Binary', (_message.Message,), {'DESCRIPTOR': _TYPE_BINARY, '__module__': 'substrait.type_pb2'}), 'Timestamp': _reflection.GeneratedProtocolMessageType('Timestamp', (_message.Message,), {'DESCRIPTOR': _TYPE_TIMESTAMP, '__module__': 'substrait.type_pb2'}), 'Date': _reflection.GeneratedProtocolMessageType('Date', (_message.Message,), {'DESCRIPTOR': _TYPE_DATE, '__module__': 'substrait.type_pb2'}), 'Time': _reflection.GeneratedProtocolMessageType('Time', (_message.Message,), {'DESCRIPTOR': _TYPE_TIME, '__module__': 'substrait.type_pb2'}), 'TimestampTZ': _reflection.GeneratedProtocolMessageType('TimestampTZ', (_message.Message,), {'DESCRIPTOR': _TYPE_TIMESTAMPTZ, '__module__': 'substrait.type_pb2'}), 'IntervalYear': _reflection.GeneratedProtocolMessageType('IntervalYear', (_message.Message,), {'DESCRIPTOR': _TYPE_INTERVALYEAR, '__module__': 'substrait.type_pb2'}), 'IntervalDay': _reflection.GeneratedProtocolMessageType('IntervalDay', (_message.Message,), {'DESCRIPTOR': _TYPE_INTERVALDAY, '__module__': 'substrait.type_pb2'}), 'UUID': _reflection.GeneratedProtocolMessageType('UUID', (_message.Message,), {'DESCRIPTOR': _TYPE_UUID, '__module__': 'substrait.type_pb2'}), 'FixedChar': _reflection.GeneratedProtocolMessageType('FixedChar', (_message.Message,), {'DESCRIPTOR': _TYPE_FIXEDCHAR, '__module__': 'substrait.type_pb2'}), 'VarChar': _reflection.GeneratedProtocolMessageType('VarChar', (_message.Message,), {'DESCRIPTOR': _TYPE_VARCHAR, '__module__': 'substrait.type_pb2'}), 'FixedBinary': _reflection.GeneratedProtocolMessageType('FixedBinary', (_message.Message,), {'DESCRIPTOR': _TYPE_FIXEDBINARY, '__module__': 'substrait.type_pb2'}), 'Decimal': _reflection.GeneratedProtocolMessageType('Decimal', (_message.Message,), {'DESCRIPTOR': _TYPE_DECIMAL, '__module__': 'substrait.type_pb2'}), 'Struct': _reflection.GeneratedProtocolMessageType('Struct', (_message.Message,), {'DESCRIPTOR': _TYPE_STRUCT, '__module__': 'substrait.type_pb2'}), 'List': _reflection.GeneratedProtocolMessageType('List', (_message.Message,), {'DESCRIPTOR': _TYPE_LIST, '__module__': 'substrait.type_pb2'}), 'Map': _reflection.GeneratedProtocolMessageType('Map', (_message.Message,), {'DESCRIPTOR': _TYPE_MAP, '__module__': 'substrait.type_pb2'}), 'UserDefined': _reflection.GeneratedProtocolMessageType('UserDefined', (_message.Message,), {'DESCRIPTOR': _TYPE_USERDEFINED, '__module__': 'substrait.type_pb2'}), 'Parameter': _reflection.GeneratedProtocolMessageType('Parameter', (_message.Message,), {'DESCRIPTOR': _TYPE_PARAMETER, '__module__': 'substrait.type_pb2'}), 'DESCRIPTOR': _TYPE, '__module__': 'substrait.type_pb2'}) _sym_db.RegisterMessage(Type) _sym_db.RegisterMessage(Type.Boolean) _sym_db.RegisterMessage(Type.I8) @@ -57,60 +60,68 @@ _sym_db.RegisterMessage(Type.Struct) _sym_db.RegisterMessage(Type.List) _sym_db.RegisterMessage(Type.Map) +_sym_db.RegisterMessage(Type.UserDefined) +_sym_db.RegisterMessage(Type.Parameter) NamedStruct = _reflection.GeneratedProtocolMessageType('NamedStruct', (_message.Message,), {'DESCRIPTOR': _NAMEDSTRUCT, '__module__': 'substrait.type_pb2'}) _sym_db.RegisterMessage(NamedStruct) if _descriptor._USE_C_DESCRIPTORS == False: DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01\xaa\x02\x12Substrait.Protobuf' - _TYPE._serialized_start = 36 - _TYPE._serialized_end = 4669 - _TYPE_BOOLEAN._serialized_start = 1265 - _TYPE_BOOLEAN._serialized_end = 1395 - _TYPE_I8._serialized_start = 1397 - _TYPE_I8._serialized_end = 1522 - _TYPE_I16._serialized_start = 1524 - _TYPE_I16._serialized_end = 1650 - _TYPE_I32._serialized_start = 1652 - _TYPE_I32._serialized_end = 1778 - _TYPE_I64._serialized_start = 1780 - _TYPE_I64._serialized_end = 1906 - _TYPE_FP32._serialized_start = 1908 - _TYPE_FP32._serialized_end = 2035 - _TYPE_FP64._serialized_start = 2037 - _TYPE_FP64._serialized_end = 2164 - _TYPE_STRING._serialized_start = 2167 - _TYPE_STRING._serialized_end = 2296 - _TYPE_BINARY._serialized_start = 2299 - _TYPE_BINARY._serialized_end = 2428 - _TYPE_TIMESTAMP._serialized_start = 2431 - _TYPE_TIMESTAMP._serialized_end = 2563 - _TYPE_DATE._serialized_start = 2565 - _TYPE_DATE._serialized_end = 2692 - _TYPE_TIME._serialized_start = 2694 - _TYPE_TIME._serialized_end = 2821 - _TYPE_TIMESTAMPTZ._serialized_start = 2824 - _TYPE_TIMESTAMPTZ._serialized_end = 2958 - _TYPE_INTERVALYEAR._serialized_start = 2961 - _TYPE_INTERVALYEAR._serialized_end = 3096 - _TYPE_INTERVALDAY._serialized_start = 3099 - _TYPE_INTERVALDAY._serialized_end = 3233 - _TYPE_UUID._serialized_start = 3235 - _TYPE_UUID._serialized_end = 3362 - _TYPE_FIXEDCHAR._serialized_start = 3365 - _TYPE_FIXEDCHAR._serialized_end = 3521 - _TYPE_VARCHAR._serialized_start = 3524 - _TYPE_VARCHAR._serialized_end = 3678 - _TYPE_FIXEDBINARY._serialized_start = 3681 - _TYPE_FIXEDBINARY._serialized_end = 3839 - _TYPE_DECIMAL._serialized_start = 3842 - _TYPE_DECIMAL._serialized_end = 4024 - _TYPE_STRUCT._serialized_start = 4027 - _TYPE_STRUCT._serialized_end = 4195 - _TYPE_LIST._serialized_start = 4198 - _TYPE_LIST._serialized_end = 4362 - _TYPE_MAP._serialized_start = 4365 - _TYPE_MAP._serialized_end = 4565 - _TYPE_NULLABILITY._serialized_start = 4567 - _TYPE_NULLABILITY._serialized_end = 4661 - _NAMEDSTRUCT._serialized_start = 4671 - _NAMEDSTRUCT._serialized_end = 4754 \ No newline at end of file + DESCRIPTOR._serialized_options = b'\n\x12io.substrait.protoP\x01Z*github.com/substrait-io/substrait-go/proto\xaa\x02\x12Substrait.Protobuf' + _TYPE.fields_by_name['user_defined_type_reference']._options = None + _TYPE.fields_by_name['user_defined_type_reference']._serialized_options = b'\x18\x01' + _TYPE._serialized_start = 65 + _TYPE._serialized_end = 5237 + _TYPE_BOOLEAN._serialized_start = 1364 + _TYPE_BOOLEAN._serialized_end = 1494 + _TYPE_I8._serialized_start = 1496 + _TYPE_I8._serialized_end = 1621 + _TYPE_I16._serialized_start = 1623 + _TYPE_I16._serialized_end = 1749 + _TYPE_I32._serialized_start = 1751 + _TYPE_I32._serialized_end = 1877 + _TYPE_I64._serialized_start = 1879 + _TYPE_I64._serialized_end = 2005 + _TYPE_FP32._serialized_start = 2007 + _TYPE_FP32._serialized_end = 2134 + _TYPE_FP64._serialized_start = 2136 + _TYPE_FP64._serialized_end = 2263 + _TYPE_STRING._serialized_start = 2266 + _TYPE_STRING._serialized_end = 2395 + _TYPE_BINARY._serialized_start = 2398 + _TYPE_BINARY._serialized_end = 2527 + _TYPE_TIMESTAMP._serialized_start = 2530 + _TYPE_TIMESTAMP._serialized_end = 2662 + _TYPE_DATE._serialized_start = 2664 + _TYPE_DATE._serialized_end = 2791 + _TYPE_TIME._serialized_start = 2793 + _TYPE_TIME._serialized_end = 2920 + _TYPE_TIMESTAMPTZ._serialized_start = 2923 + _TYPE_TIMESTAMPTZ._serialized_end = 3057 + _TYPE_INTERVALYEAR._serialized_start = 3060 + _TYPE_INTERVALYEAR._serialized_end = 3195 + _TYPE_INTERVALDAY._serialized_start = 3198 + _TYPE_INTERVALDAY._serialized_end = 3332 + _TYPE_UUID._serialized_start = 3334 + _TYPE_UUID._serialized_end = 3461 + _TYPE_FIXEDCHAR._serialized_start = 3464 + _TYPE_FIXEDCHAR._serialized_end = 3620 + _TYPE_VARCHAR._serialized_start = 3623 + _TYPE_VARCHAR._serialized_end = 3777 + _TYPE_FIXEDBINARY._serialized_start = 3780 + _TYPE_FIXEDBINARY._serialized_end = 3938 + _TYPE_DECIMAL._serialized_start = 3941 + _TYPE_DECIMAL._serialized_end = 4123 + _TYPE_STRUCT._serialized_start = 4126 + _TYPE_STRUCT._serialized_end = 4294 + _TYPE_LIST._serialized_start = 4297 + _TYPE_LIST._serialized_end = 4461 + _TYPE_MAP._serialized_start = 4464 + _TYPE_MAP._serialized_end = 4664 + _TYPE_USERDEFINED._serialized_start = 4667 + _TYPE_USERDEFINED._serialized_end = 4908 + _TYPE_PARAMETER._serialized_start = 4911 + _TYPE_PARAMETER._serialized_end = 5133 + _TYPE_NULLABILITY._serialized_start = 5135 + _TYPE_NULLABILITY._serialized_end = 5229 + _NAMEDSTRUCT._serialized_start = 5239 + _NAMEDSTRUCT._serialized_end = 5322 \ No newline at end of file diff --git a/ibis_substrait/proto/substrait/type_pb2.pyi b/ibis_substrait/proto/substrait/type_pb2.pyi index ae138842..c4e8c632 100644 --- a/ibis_substrait/proto/substrait/type_pb2.pyi +++ b/ibis_substrait/proto/substrait/type_pb2.pyi @@ -4,6 +4,7 @@ isort:skip_file """ import builtins import google.protobuf.descriptor +import google.protobuf.empty_pb2 import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message @@ -365,6 +366,64 @@ class Type(google.protobuf.message.Message): def ClearField(self, field_name: typing_extensions.Literal['key', b'key', 'nullability', b'nullability', 'type_variation_reference', b'type_variation_reference', 'value', b'value']) -> None: ... + + class UserDefined(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_REFERENCE_FIELD_NUMBER: builtins.int + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int + NULLABILITY_FIELD_NUMBER: builtins.int + TYPE_PARAMETERS_FIELD_NUMBER: builtins.int + type_reference: builtins.int + type_variation_reference: builtins.int + nullability: global___Type.Nullability.ValueType + + @property + def type_parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Type.Parameter]: + ... + + def __init__(self, *, type_reference: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=..., type_parameters: typing.Optional[typing.Iterable[global___Type.Parameter]]=...) -> None: + ... + + def ClearField(self, field_name: typing_extensions.Literal['nullability', b'nullability', 'type_parameters', b'type_parameters', 'type_reference', b'type_reference', 'type_variation_reference', b'type_variation_reference']) -> None: + ... + + class Parameter(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + NULL_FIELD_NUMBER: builtins.int + DATA_TYPE_FIELD_NUMBER: builtins.int + BOOLEAN_FIELD_NUMBER: builtins.int + INTEGER_FIELD_NUMBER: builtins.int + ENUM_FIELD_NUMBER: builtins.int + STRING_FIELD_NUMBER: builtins.int + + @property + def null(self) -> google.protobuf.empty_pb2.Empty: + """Explicitly null/unspecified parameter, to select the default value (if + any). + """ + pass + + @property + def data_type(self) -> global___Type: + """Data type parameters, like the i32 in LIST.""" + pass + boolean: builtins.bool + 'Value parameters, like the 10 in VARCHAR<10>.' + integer: builtins.int + enum: typing.Text + string: typing.Text + + def __init__(self, *, null: typing.Optional[google.protobuf.empty_pb2.Empty]=..., data_type: typing.Optional[global___Type]=..., boolean: builtins.bool=..., integer: builtins.int=..., enum: typing.Text=..., string: typing.Text=...) -> None: + ... + + def HasField(self, field_name: typing_extensions.Literal['boolean', b'boolean', 'data_type', b'data_type', 'enum', b'enum', 'integer', b'integer', 'null', b'null', 'parameter', b'parameter', 'string', b'string']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing_extensions.Literal['boolean', b'boolean', 'data_type', b'data_type', 'enum', b'enum', 'integer', b'integer', 'null', b'null', 'parameter', b'parameter', 'string', b'string']) -> None: + ... + + def WhichOneof(self, oneof_group: typing_extensions.Literal['parameter', b'parameter']) -> typing.Optional[typing_extensions.Literal['null', 'data_type', 'boolean', 'integer', 'enum', 'string']]: + ... BOOL_FIELD_NUMBER: builtins.int I8_FIELD_NUMBER: builtins.int I16_FIELD_NUMBER: builtins.int @@ -388,6 +447,7 @@ class Type(google.protobuf.message.Message): STRUCT_FIELD_NUMBER: builtins.int LIST_FIELD_NUMBER: builtins.int MAP_FIELD_NUMBER: builtins.int + USER_DEFINED_FIELD_NUMBER: builtins.int USER_DEFINED_TYPE_REFERENCE_FIELD_NUMBER: builtins.int @property @@ -481,18 +541,23 @@ class Type(google.protobuf.message.Message): @property def map(self) -> global___Type.Map: ... + + @property + def user_defined(self) -> global___Type.UserDefined: + ... user_defined_type_reference: builtins.int + 'Deprecated in favor of user_defined, which allows nullability and\n variations to be specified. If user_defined_type_reference is\n encountered, treat it as being non-nullable and having the default\n variation.\n ' - def __init__(self, *, bool: typing.Optional[global___Type.Boolean]=..., i8: typing.Optional[global___Type.I8]=..., i16: typing.Optional[global___Type.I16]=..., i32: typing.Optional[global___Type.I32]=..., i64: typing.Optional[global___Type.I64]=..., fp32: typing.Optional[global___Type.FP32]=..., fp64: typing.Optional[global___Type.FP64]=..., string: typing.Optional[global___Type.String]=..., binary: typing.Optional[global___Type.Binary]=..., timestamp: typing.Optional[global___Type.Timestamp]=..., date: typing.Optional[global___Type.Date]=..., time: typing.Optional[global___Type.Time]=..., interval_year: typing.Optional[global___Type.IntervalYear]=..., interval_day: typing.Optional[global___Type.IntervalDay]=..., timestamp_tz: typing.Optional[global___Type.TimestampTZ]=..., uuid: typing.Optional[global___Type.UUID]=..., fixed_char: typing.Optional[global___Type.FixedChar]=..., varchar: typing.Optional[global___Type.VarChar]=..., fixed_binary: typing.Optional[global___Type.FixedBinary]=..., decimal: typing.Optional[global___Type.Decimal]=..., struct: typing.Optional[global___Type.Struct]=..., list: typing.Optional[global___Type.List]=..., map: typing.Optional[global___Type.Map]=..., user_defined_type_reference: builtins.int=...) -> None: + def __init__(self, *, bool: typing.Optional[global___Type.Boolean]=..., i8: typing.Optional[global___Type.I8]=..., i16: typing.Optional[global___Type.I16]=..., i32: typing.Optional[global___Type.I32]=..., i64: typing.Optional[global___Type.I64]=..., fp32: typing.Optional[global___Type.FP32]=..., fp64: typing.Optional[global___Type.FP64]=..., string: typing.Optional[global___Type.String]=..., binary: typing.Optional[global___Type.Binary]=..., timestamp: typing.Optional[global___Type.Timestamp]=..., date: typing.Optional[global___Type.Date]=..., time: typing.Optional[global___Type.Time]=..., interval_year: typing.Optional[global___Type.IntervalYear]=..., interval_day: typing.Optional[global___Type.IntervalDay]=..., timestamp_tz: typing.Optional[global___Type.TimestampTZ]=..., uuid: typing.Optional[global___Type.UUID]=..., fixed_char: typing.Optional[global___Type.FixedChar]=..., varchar: typing.Optional[global___Type.VarChar]=..., fixed_binary: typing.Optional[global___Type.FixedBinary]=..., decimal: typing.Optional[global___Type.Decimal]=..., struct: typing.Optional[global___Type.Struct]=..., list: typing.Optional[global___Type.List]=..., map: typing.Optional[global___Type.Map]=..., user_defined: typing.Optional[global___Type.UserDefined]=..., user_defined_type_reference: builtins.int=...) -> None: ... - def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: + def HasField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: ... - def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: + def ClearField(self, field_name: typing_extensions.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: ... - def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing.Optional[typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'struct', 'list', 'map', 'user_defined_type_reference']]: + def WhichOneof(self, oneof_group: typing_extensions.Literal['kind', b'kind']) -> typing.Optional[typing_extensions.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'struct', 'list', 'map', 'user_defined', 'user_defined_type_reference']]: ... global___Type = Type diff --git a/nix/default.nix b/nix/default.nix index 0651fa6d..8d9dda59 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -12,8 +12,8 @@ import sources.nixpkgs { substrait = pkgs.fetchFromGitHub { owner = "substrait-io"; repo = "substrait"; - rev = "9d9805be19c1d606dc2811395f203857db782872"; - sha256 = "sha256-VarDeSsOc8B7IMtG4T6Ely7VPUZSU7PrhQoy44HZLkE="; + rev = "b8fb06a52397463bfe9cffc2c89fe71eba56b2ca"; + sha256 = "sha256:1irbmicarxiv8dmq6pgnwb94mwbj6x92r2fm0b14xc0hp73d4j6n"; }; mkPoetryEnv = python: pkgs.poetry2nix.mkPoetryEnv { diff --git a/proto/buf.yaml b/proto/buf.yaml index 8b9ee4f7..d346b377 100644 --- a/proto/buf.yaml +++ b/proto/buf.yaml @@ -1,5 +1,5 @@ version: v1 -name: buf.build/substrait-io/substrait +name: buf.build/substrait/substrait lint: use: - DEFAULT diff --git a/proto/substrait/algebra.proto b/proto/substrait/algebra.proto index 03816e21..1463baa0 100644 --- a/proto/substrait/algebra.proto +++ b/proto/substrait/algebra.proto @@ -1,27 +1,37 @@ +// SPDX-License-Identifier: Apache-2.0 syntax = "proto3"; package substrait; -import "substrait/type.proto"; -import "substrait/extensions/extensions.proto"; import "google/protobuf/any.proto"; +import "google/protobuf/empty.proto"; +import "substrait/extensions/extensions.proto"; +import "substrait/type.proto"; +option csharp_namespace = "Substrait.Protobuf"; +option go_package = "github.com/substrait-io/substrait-go/proto"; option java_multiple_files = true; option java_package = "io.substrait.proto"; -option csharp_namespace = "Substrait.Protobuf"; +// Common fields for all relational operators message RelCommon { - oneof emit_kind { + // The underlying relation is output as is (no reordering or projection of columns) Direct direct = 1; + // Allows to control for order and inclusion of fields Emit emit = 2; } Hint hint = 3; substrait.extensions.AdvancedExtension advanced_extension = 4; + // Direct indicates no change on presence and ordering of fields in the output message Direct {} - message Emit { repeated int32 output_mapping = 1; } + + // Remap which fields are output and in which order + message Emit { + repeated int32 output_mapping = 1; + } // Changes to the operation that can influence efficiency/performance but // should not impact correctness. @@ -30,6 +40,7 @@ message RelCommon { RuntimeConstraint constraint = 2; substrait.extensions.AdvancedExtension advanced_extension = 10; + // The statistics related to a hint (physical properties of records) message Stats { double row_count = 1; double record_size = 2; @@ -44,6 +55,7 @@ message RelCommon { } } +// The scan operator of base data (physical or virtual), including filtering and projection. message ReadRel { RelCommon common = 1; NamedStruct base_schema = 2; @@ -51,6 +63,7 @@ message ReadRel { Expression.MaskExpression projection = 4; substrait.extensions.AdvancedExtension advanced_extension = 10; + // Definition of which type of scan operation is to be performed oneof read_type { VirtualTable virtual_table = 5; LocalFiles local_files = 6; @@ -58,20 +71,26 @@ message ReadRel { ExtensionTable extension_table = 8; } + // A base table. The list of string is used to represent namespacing (e.g., mydb.mytable). + // This assumes shared catalog between systems exchanging a message. message NamedTable { repeated string names = 1; substrait.extensions.AdvancedExtension advanced_extension = 10; } - // a table composed of literals. - message VirtualTable { repeated Expression.Literal.Struct values = 1; } + // A table composed of literals. + message VirtualTable { + repeated Expression.Literal.Struct values = 1; + } - // a stub type that can be used to extend/introduce new table types outside + // A stub type that can be used to extend/introduce new table types outside // the specification. - message ExtensionTable { google.protobuf.Any detail = 1; } + message ExtensionTable { + google.protobuf.Any detail = 1; + } + // Represents a list of files in input of a scan operation message LocalFiles { - repeated FileOrFiles items = 1; substrait.extensions.AdvancedExtension advanced_extension = 10; @@ -82,31 +101,48 @@ message ReadRel { // the midpoint of the chunk) message FileOrFiles { oneof path_type { + // A URI that can refer to either a single folder or a single file string uri_path = 1; + // A URI where the path portion is a glob expression that can + // identify zero or more paths. + // Consumers should support the POSIX syntax. The recursive + // globstar (**) may not be supported. string uri_path_glob = 2; + // A URI that refers to a single file string uri_file = 3; + // A URI that refers to a single folder string uri_folder = 4; } - FileFormat format = 5; + // Original file format enum, superseded by the file_format oneof. + reserved 5; + reserved "format"; - // the index of the partition this item belongs to + // The index of the partition this item belongs to uint64 partition_index = 6; - // the start position in byte to read from this item + // The start position in byte to read from this item uint64 start = 7; - // the length in byte to read from this item + // The length in byte to read from this item uint64 length = 8; - enum FileFormat { - FILE_FORMAT_UNSPECIFIED = 0; - FILE_FORMAT_PARQUET = 1; + message ParquetReadOptions {} + message ArrowReadOptions {} + message OrcReadOptions {} + + // The format of the files. + oneof file_format { + ParquetReadOptions parquet = 9; + ArrowReadOptions arrow = 10; + OrcReadOptions orc = 11; + google.protobuf.Any extension = 12; } } } } +// This operator allows to represent calculated expressions of fields (e.g., a+b). Direct/Emit are used to represent classical relational projections message ProjectRel { RelCommon common = 1; Rel input = 2; @@ -114,6 +150,7 @@ message ProjectRel { substrait.extensions.AdvancedExtension advanced_extension = 10; } +// The binary JOIN relational operator left-join-right, including various join types, a join condition and post_join_filter expression message JoinRel { RelCommon common = 1; Rel left = 2; @@ -131,12 +168,15 @@ message JoinRel { JOIN_TYPE_RIGHT = 4; JOIN_TYPE_SEMI = 5; JOIN_TYPE_ANTI = 6; + // This join is useful for nested sub-queries where we need exactly one tuple in output (or throw exception) + // See Section 3.2 of https://15721.courses.cs.cmu.edu/spring2018/papers/16-optimizer2/hyperjoins-btw2017.pdf JOIN_TYPE_SINGLE = 7; } substrait.extensions.AdvancedExtension advanced_extension = 10; } +// Cartesian product relational operator of two tables (left and right) message CrossRel { RelCommon common = 1; Rel left = 2; @@ -145,23 +185,35 @@ message CrossRel { substrait.extensions.AdvancedExtension advanced_extension = 10; } +// The relational operator representing LIMIT/OFFSET or TOP type semantics. message FetchRel { RelCommon common = 1; Rel input = 2; + // the offset expressed in number of records int64 offset = 3; + // the amount of records to return int64 count = 4; substrait.extensions.AdvancedExtension advanced_extension = 10; } +// The relational operator representing a GROUP BY Aggregate message AggregateRel { RelCommon common = 1; + + // Input of the aggregation Rel input = 2; + + // A list of expression grouping that the aggregation measured should be calculated for. repeated Grouping groupings = 3; + + // A list of one or more aggregate expressions along with an optional filter. repeated Measure measures = 4; substrait.extensions.AdvancedExtension advanced_extension = 10; - message Grouping { repeated Expression grouping_expressions = 1; } + message Grouping { + repeated Expression grouping_expressions = 1; + } message Measure { AggregateFunction measure = 1; @@ -169,10 +221,12 @@ message AggregateRel { // An optional boolean expression that acts to filter which records are // included in the measure. True means include this record for calculation // within the measure. + // Helps to support SUM() FILTER(WHERE...) syntax without masking opportunities for optimization Expression filter = 2; } } +// The ORDERY BY (or sorting) relational operator. Beside describing a base relation, it includes a list of fields to sort on message SortRel { RelCommon common = 1; Rel input = 2; @@ -180,6 +234,7 @@ message SortRel { substrait.extensions.AdvancedExtension advanced_extension = 10; } +// The relational operator capturing simple FILTERs (as in the WHERE clause of SQL) message FilterRel { RelCommon common = 1; Rel input = 2; @@ -187,6 +242,7 @@ message FilterRel { substrait.extensions.AdvancedExtension advanced_extension = 10; } +// The relational set operators (intersection/union/etc..) message SetRel { RelCommon common = 1; repeated Rel inputs = 2; @@ -224,6 +280,62 @@ message ExtensionMultiRel { google.protobuf.Any detail = 3; } +// A redistribution operation +message ExchangeRel { + RelCommon common = 1; + Rel input = 2; + int32 partition_count = 3; + repeated ExchangeTarget targets = 4; + + // the type of exchange used + oneof exchange_kind { + ScatterFields scatter_by_fields = 5; + SingleBucketExpression single_target = 6; + MultiBucketExpression multi_target = 7; + RoundRobin round_robin = 8; + Broadcast broadcast = 9; + } + + substrait.extensions.AdvancedExtension advanced_extension = 10; + + message ScatterFields { + repeated Expression.FieldReference fields = 1; + } + + // Returns a single bucket number per record. + message SingleBucketExpression { + Expression expression = 1; + } + + // Returns zero or more bucket numbers per record + message MultiBucketExpression { + Expression expression = 1; + bool constrained_to_count = 2; + } + + // Send all data to every target. + message Broadcast {} + + // Route approximately + message RoundRobin { + // whether the round robin behavior is required to exact (per record) or + // approximate. Defaults to approximate. + bool exact = 1; + } + + // The message to describe partition targets of an exchange + message ExchangeTarget { + // Describes the partition id(s) to send. If this is empty, all data is sent + // to this target. + repeated int32 partition_id = 1; + + oneof target_type { + string uri = 2; + google.protobuf.Any extended = 3; + } + } +} + // A relation with output field names. // // This is for use at the root of a `Rel` tree. @@ -234,6 +346,7 @@ message RelRoot { repeated string names = 2; } +// A relation (used internally in a plan) message Rel { oneof rel_type { ReadRel read = 1; @@ -251,6 +364,22 @@ message Rel { } } +// The argument of a function +message FunctionArgument { + oneof arg_type { + Enum enum = 1; + Type type = 2; + Expression value = 3; + } + + message Enum { + oneof enum_kind { + string specified = 1; + google.protobuf.Empty unspecified = 2; + } + } +} + message Expression { oneof rex_type { Literal literal = 1; @@ -261,18 +390,26 @@ message Expression { SwitchExpression switch_expression = 7; SingularOrList singular_or_list = 8; MultiOrList multi_or_list = 9; - Enum enum = 10; Cast cast = 11; Subquery subquery = 12; + + // deprecated: enum literals are only sensible in the context of + // function arguments, for which FunctionArgument should now be + // used + Enum enum = 10 [deprecated = true]; } message Enum { + option deprecated = true; + oneof enum_kind { string specified = 1; Empty unspecified = 2; } - message Empty {} + message Empty { + option deprecated = true; + } } message Literal { @@ -307,6 +444,7 @@ message Expression { List list = 30; Type.List empty_list = 31; Type.Map empty_map = 32; + UserDefined user_defined = 33; } // whether the literal type should be treated as a nullable type. Applies to @@ -314,6 +452,11 @@ message Expression { // declare nullability). bool nullable = 50; + // optionally points to a type_variation_anchor defined in this plan. + // Applies to all members of union other than the Typed null (which should + // directly declare the type variation). + uint32 type_variation_reference = 51; + message VarChar { string value = 1; uint32 length = 2; @@ -347,6 +490,7 @@ message Expression { message IntervalDayToSecond { int32 days = 1; int32 seconds = 2; + int32 microseconds = 3; } message Struct { @@ -358,13 +502,29 @@ message Expression { // A homogeneously typed list of literals repeated Literal values = 1; } + + message UserDefined { + // points to a type_anchor defined in this plan + uint32 type_reference = 1; + + // The parameters to be bound to the type class, if the type class is + // parameterizable. + repeated Type.Parameter type_parameters = 3; + + // the value of the literal, serialized using some type-specific + // protobuf message + google.protobuf.Any value = 2; + } } message ScalarFunction { // points to a function_anchor defined in this plan uint32 function_reference = 1; - repeated Expression args = 2; + repeated FunctionArgument arguments = 4; Type output_type = 3; + + // deprecated; use args instead + repeated Expression args = 2 [deprecated = true]; } message WindowFunction { @@ -376,13 +536,19 @@ message Expression { Bound lower_bound = 5; AggregationPhase phase = 6; Type output_type = 7; - repeated Expression args = 8; + repeated FunctionArgument arguments = 9; - message Bound { + // deprecated; use args instead + repeated Expression args = 8 [deprecated = true]; - message Preceding { int64 offset = 1; } + message Bound { + message Preceding { + int64 offset = 1; + } - message Following { int64 offset = 1; } + message Following { + int64 offset = 1; + } message CurrentRow {} @@ -398,7 +564,6 @@ message Expression { } message IfThen { - repeated IfClause ifs = 1; Expression else = 2; @@ -411,9 +576,17 @@ message Expression { message Cast { Type type = 1; Expression input = 2; + FailureBehavior failure_behavior = 3; + + enum FailureBehavior { + FAILURE_BEHAVIOR_UNSPECIFIED = 0; + FAILURE_BEHAVIOR_RETURN_NULL = 1; + FAILURE_BEHAVIOR_THROW_EXCEPTION = 2; + } } message SwitchExpression { + Expression match = 3; repeated IfValue ifs = 1; Expression else = 2; @@ -432,7 +605,9 @@ message Expression { repeated Expression value = 1; repeated Record options = 2; - message Record { repeated Expression fields = 1; } + message Record { + repeated Expression fields = 1; + } } message EmbeddedFunction { @@ -462,7 +637,6 @@ message Expression { // (ordinalized in the internal representation here), [2] is a list offset // and ['my_map_key'] is a reference into a map field. message ReferenceSegment { - oneof reference_type { MapKey map_key = 1; StructField struct_field = 2; @@ -504,7 +678,6 @@ message Expression { // Note that this does not fundamentally alter the structure of data beyond // the elimination of unecessary elements. message MaskExpression { - StructSelect select = 1; bool maintain_singular_struct = 2; @@ -516,7 +689,9 @@ message Expression { } } - message StructSelect { repeated StructItem struct_items = 1; } + message StructSelect { + repeated StructItem struct_items = 1; + } message StructItem { int32 field = 1; @@ -524,7 +699,6 @@ message Expression { } message ListSelect { - repeated ListSelectItem selection = 1; Select child = 2; @@ -534,7 +708,9 @@ message Expression { ListSlice slice = 2; } - message ListElement { int32 field = 1; } + message ListElement { + int32 field = 1; + } message ListSlice { int32 start = 1; @@ -551,16 +727,19 @@ message Expression { Select child = 3; - message MapKey { string map_key = 1; } + message MapKey { + string map_key = 1; + } - message MapKeyExpression { string map_key_expression = 1; } + message MapKeyExpression { + string map_key_expression = 1; + } } } // A reference to an inner part of a complex object. Can reference reference a // single element or a masked version of elements message FieldReference { - // Whether this is composed of a single element reference or a masked // element subtree oneof reference_type { @@ -605,7 +784,9 @@ message Expression { // A subquery with one row and one column. This is often an aggregate // though not required to be. - message Scalar { Rel input = 1; } + message Scalar { + Rel input = 1; + } // Predicate checking that the left expression is contained in the right // subquery @@ -667,6 +848,7 @@ message Expression { } } +// The description of a field to sort on (including the direction of sorting and null semantics) message SortField { Expression expr = 1; @@ -695,8 +877,22 @@ enum AggregationPhase { message AggregateFunction { // points to a function_anchor defined in this plan uint32 function_reference = 1; - repeated Expression args = 2; + repeated FunctionArgument arguments = 7; repeated SortField sorts = 3; AggregationPhase phase = 4; Type output_type = 5; + AggregationInvocation invocation = 6; + + // deprecated; use args instead + repeated Expression args = 2 [deprecated = true]; + + enum AggregationInvocation { + AGGREGATION_INVOCATION_UNSPECIFIED = 0; + + // Use all values in aggregation calculation + AGGREGATION_INVOCATION_ALL = 1; + + // Use only distinct values in aggregation calculation + AGGREGATION_INVOCATION_DISTINCT = 2; + } } diff --git a/proto/substrait/capabilities.proto b/proto/substrait/capabilities.proto index 711f0ccb..35142718 100644 --- a/proto/substrait/capabilities.proto +++ b/proto/substrait/capabilities.proto @@ -1,14 +1,15 @@ +// SPDX-License-Identifier: Apache-2.0 syntax = "proto3"; package substrait; +option csharp_namespace = "Substrait.Protobuf"; +option go_package = "github.com/substrait-io/substrait-go/proto"; option java_multiple_files = true; option java_package = "io.substrait.proto"; -option csharp_namespace = "Substrait.Protobuf"; // Defines a set of Capabilities that a system (producer or consumer) supports. message Capabilities { - // List of Substrait versions this system supports repeated string substrait_versions = 1; diff --git a/proto/substrait/extensions/extensions.proto b/proto/substrait/extensions/extensions.proto index 3e8450b5..d3af5f3d 100644 --- a/proto/substrait/extensions/extensions.proto +++ b/proto/substrait/extensions/extensions.proto @@ -1,12 +1,14 @@ +// SPDX-License-Identifier: Apache-2.0 syntax = "proto3"; package substrait.extensions; +import "google/protobuf/any.proto"; + +option csharp_namespace = "Substrait.Protobuf"; +option go_package = "github.com/substrait-io/substrait-go/proto/extensions"; option java_multiple_files = true; option java_package = "io.substrait.proto"; -option csharp_namespace = "Substrait.Protobuf"; - -import "google/protobuf/any.proto"; message SimpleExtensionURI { // A surrogate key used in the context of a single plan used to reference the @@ -21,7 +23,6 @@ message SimpleExtensionURI { // Describes a mapping between a specific extension entity and the uri where // that extension can be found. message SimpleExtensionDeclaration { - oneof mapping_type { ExtensionType extension_type = 1; ExtensionTypeVariation extension_type_variation = 2; @@ -71,7 +72,6 @@ message SimpleExtensionDeclaration { // A generic object that can be used to embed additional extension information // into the serialized substrait plan. message AdvancedExtension { - // An optimization is helpful information that don't influence semantics. May // be ignored by a consumer. google.protobuf.Any optimization = 1; diff --git a/proto/substrait/function.proto b/proto/substrait/function.proto index af3b898c..123f4a1b 100644 --- a/proto/substrait/function.proto +++ b/proto/substrait/function.proto @@ -1,18 +1,19 @@ +// SPDX-License-Identifier: Apache-2.0 syntax = "proto3"; package substrait; -import "substrait/type.proto"; import "substrait/parameterized_types.proto"; +import "substrait/type.proto"; import "substrait/type_expressions.proto"; +option csharp_namespace = "Substrait.Protobuf"; +option go_package = "github.com/substrait-io/substrait-go/proto"; option java_multiple_files = true; option java_package = "io.substrait.proto"; -option csharp_namespace = "Substrait.Protobuf"; // List of function signatures available. message FunctionSignature { - message FinalArgVariadic { // the minimum number of arguments allowed for the list of final arguments // (inclusive). @@ -111,7 +112,6 @@ message FunctionSignature { } message Implementation { - Type type = 1; string uri = 2; @@ -136,7 +136,9 @@ message FunctionSignature { bool constant = 2; } - message TypeArgument { ParameterizedType type = 1; } + message TypeArgument { + ParameterizedType type = 1; + } message EnumArgument { repeated string options = 1; diff --git a/proto/substrait/parameterized_types.proto b/proto/substrait/parameterized_types.proto index a6b2bfbf..db066935 100644 --- a/proto/substrait/parameterized_types.proto +++ b/proto/substrait/parameterized_types.proto @@ -1,14 +1,16 @@ +// SPDX-License-Identifier: Apache-2.0 syntax = "proto3"; + package substrait; import "substrait/type.proto"; +option csharp_namespace = "Substrait.Protobuf"; +option go_package = "github.com/substrait-io/substrait-go/proto"; option java_multiple_files = true; option java_package = "io.substrait.proto"; -option csharp_namespace = "Substrait.Protobuf"; message ParameterizedType { - oneof kind { Type.Boolean bool = 1; Type.I8 i8 = 2; @@ -36,7 +38,12 @@ message ParameterizedType { ParameterizedList list = 27; ParameterizedMap map = 28; - uint32 user_defined_pointer = 31; + ParameterizedUserDefined user_defined = 30; + + // Deprecated in favor of user_defined, which allows nullability and + // variations to be specified. If user_defined_pointer is encountered, + // treat it as being non-nullable and having the default variation. + uint32 user_defined_pointer = 31 [deprecated = true]; TypeParameter type_parameter = 33; } @@ -52,7 +59,9 @@ message ParameterizedType { NullableInteger range_end_exclusive = 3; } - message NullableInteger { int64 value = 1; } + message NullableInteger { + int64 value = 1; + } message ParameterizedFixedChar { IntegerOption length = 1; @@ -104,6 +113,12 @@ message ParameterizedType { Type.Nullability nullability = 4; } + message ParameterizedUserDefined { + uint32 type_pointer = 1; + uint32 variation_pointer = 2; + Type.Nullability nullability = 3; + } + message IntegerOption { oneof integer_type { int32 literal = 1; diff --git a/proto/substrait/plan.proto b/proto/substrait/plan.proto index 050dc65e..8614e08e 100644 --- a/proto/substrait/plan.proto +++ b/proto/substrait/plan.proto @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: Apache-2.0 syntax = "proto3"; package substrait; @@ -5,14 +6,15 @@ package substrait; import "substrait/algebra.proto"; import "substrait/extensions/extensions.proto"; +option csharp_namespace = "Substrait.Protobuf"; +option go_package = "github.com/substrait-io/substrait-go/proto"; option java_multiple_files = true; option java_package = "io.substrait.proto"; -option csharp_namespace = "Substrait.Protobuf"; // Either a relation or root relation message PlanRel { oneof rel_type { - // Any relation + // Any relation (used for references and CTEs) Rel rel = 1; // The root of a relation tree RelRoot root = 2; @@ -22,7 +24,6 @@ message PlanRel { // Describe a set of operations to complete. // For compactness sake, identifiers are normalized at the plan level. message Plan { - // a list of yaml specifications this plan may depend on repeated substrait.extensions.SimpleExtensionURI extension_uris = 1; diff --git a/proto/substrait/type.proto b/proto/substrait/type.proto index a1c56caf..a7f1c665 100644 --- a/proto/substrait/type.proto +++ b/proto/substrait/type.proto @@ -1,12 +1,16 @@ +// SPDX-License-Identifier: Apache-2.0 syntax = "proto3"; + package substrait; +import "google/protobuf/empty.proto"; + +option csharp_namespace = "Substrait.Protobuf"; +option go_package = "github.com/substrait-io/substrait-go/proto"; option java_multiple_files = true; option java_package = "io.substrait.proto"; -option csharp_namespace = "Substrait.Protobuf"; message Type { - oneof kind { Boolean bool = 1; I8 i8 = 2; @@ -34,7 +38,13 @@ message Type { List list = 27; Map map = 28; - uint32 user_defined_type_reference = 31; + UserDefined user_defined = 30; + + // Deprecated in favor of user_defined, which allows nullability and + // variations to be specified. If user_defined_type_reference is + // encountered, treat it as being non-nullable and having the default + // variation. + uint32 user_defined_type_reference = 31 [deprecated = true]; } enum Nullability { @@ -47,6 +57,7 @@ message Type { uint32 type_variation_reference = 1; Nullability nullability = 2; } + message I8 { uint32 type_variation_reference = 1; Nullability nullability = 2; @@ -166,6 +177,30 @@ message Type { uint32 type_variation_reference = 3; Nullability nullability = 4; } + + message UserDefined { + uint32 type_reference = 1; + uint32 type_variation_reference = 2; + Nullability nullability = 3; + repeated Parameter type_parameters = 4; + } + + message Parameter { + oneof parameter { + // Explicitly null/unspecified parameter, to select the default value (if + // any). + google.protobuf.Empty null = 1; + + // Data type parameters, like the i32 in LIST. + Type data_type = 2; + + // Value parameters, like the 10 in VARCHAR<10>. + bool boolean = 3; + int64 integer = 4; + string enum = 5; + string string = 6; + } + } } // A message for modeling name/type pairs. diff --git a/proto/substrait/type_expressions.proto b/proto/substrait/type_expressions.proto index e089e8da..4be4aab4 100644 --- a/proto/substrait/type_expressions.proto +++ b/proto/substrait/type_expressions.proto @@ -1,14 +1,16 @@ +// SPDX-License-Identifier: Apache-2.0 syntax = "proto3"; + package substrait; import "substrait/type.proto"; +option csharp_namespace = "Substrait.Protobuf"; +option go_package = "github.com/substrait-io/substrait-go/proto"; option java_multiple_files = true; option java_package = "io.substrait.proto"; -option csharp_namespace = "Substrait.Protobuf"; message DerivationExpression { - oneof kind { Type.Boolean bool = 1; Type.I8 i8 = 2; @@ -36,7 +38,12 @@ message DerivationExpression { ExpressionList list = 27; ExpressionMap map = 28; - uint32 user_defined_pointer = 31; + ExpressionUserDefined user_defined = 30; + + // Deprecated in favor of user_defined, which allows nullability and + // variations to be specified. If user_defined_pointer is encountered, + // treat it as being non-nullable and having the default variation. + uint32 user_defined_pointer = 31 [deprecated = true]; string type_parameter_name = 33; string integer_parameter_name = 34; @@ -97,6 +104,12 @@ message DerivationExpression { Type.Nullability nullability = 4; } + message ExpressionUserDefined { + uint32 type_pointer = 1; + uint32 variation_pointer = 2; + Type.Nullability nullability = 3; + } + message IfElse { DerivationExpression if_condition = 1; DerivationExpression if_return = 2; @@ -114,7 +127,6 @@ message DerivationExpression { } message BinaryOp { - BinaryOpType op_type = 1; DerivationExpression arg1 = 2; DerivationExpression arg2 = 3;