From 94447a8a60be26251d9429a7e84298249d690c8d Mon Sep 17 00:00:00 2001 From: Leonhard Spiegelberg Date: Fri, 30 Aug 2024 10:29:00 -0700 Subject: [PATCH 1/7] fix udf_utils in snowpark for empty default values, add ast encoding support for udfs --- src/snowflake/snowpark/_internal/ast_utils.py | 3 + .../snowpark/_internal/proto/ast_pb2.py | 1351 +++++++++-------- .../_internal/proto/update-from-devvm.sh | 2 + src/snowflake/snowpark/_internal/udf_utils.py | 13 +- src/snowflake/snowpark/functions.py | 3 + src/snowflake/snowpark/udf.py | 97 +- tests/dummy.py | 14 + 7 files changed, 801 insertions(+), 682 deletions(-) create mode 100644 tests/dummy.py diff --git a/src/snowflake/snowpark/_internal/ast_utils.py b/src/snowflake/snowpark/_internal/ast_utils.py index 94699817cdf..b2b80e5416a 100644 --- a/src/snowflake/snowpark/_internal/ast_utils.py +++ b/src/snowflake/snowpark/_internal/ast_utils.py @@ -172,6 +172,9 @@ def build_expr_from_python_val(expr_builder: proto.Expr, obj: Any) -> None: raise NotImplementedError( "TODO SNOW-1629946: Implement TableFunctionCall with args." ) + elif isinstance(obj, snowflake.snowpark._internal.type_utils.DataType): + ast = with_src_position(expr_builder.sp_datatype_val) + obj._fill_ast(ast.datatype) else: raise NotImplementedError("not supported type: %s" % type(obj)) diff --git a/src/snowflake/snowpark/_internal/proto/ast_pb2.py b/src/snowflake/snowpark/_internal/proto/ast_pb2.py index 13ac12bacd8..6b02a9f2195 100644 --- a/src/snowflake/snowpark/_internal/proto/ast_pb2.py +++ b/src/snowflake/snowpark/_internal/proto/ast_pb2.py @@ -3,7 +3,8 @@ # # Generated by the protocol buffer compiler. DO NOT EDIT! -# source: Snowpark/proto/ast.proto +# source: proto/ast.proto +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import ( descriptor as _descriptor, @@ -22,677 +23,683 @@ import snowflake.snowpark._internal.proto.scalapb_pb2 as scalapb_dot_scalapb__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x18Snowpark/proto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x15scalapb/scalapb.proto"$\n\tList_Expr\x12\x17\n\x04list\x18\x01 \x03(\x0b\x32\t.ast.Expr"4\n\x11List_SpColumnExpr\x12\x1f\n\x04list\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr"\x1b\n\x0bList_String\x12\x0c\n\x04list\x18\x01 \x03(\t"3\n\rMap_Expr_Expr\x12"\n\x04list\x18\x01 \x03(\x0b\x32\x14.ast.Tuple_Expr_Expr"7\n\x0fMap_String_Expr\x12$\n\x04list\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"A\n\x14Map_String_SpVariant\x12)\n\x04list\x18\x01 \x03(\x0b\x32\x1b.ast.Tuple_String_SpVariant";\n\x11Map_String_String\x12&\n\x04list\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"?\n\x0fTuple_Expr_Expr\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"5\n\x10Tuple_Expr_Float\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\n\n\x02_2\x18\x02 \x01(\x01"6\n\x11Tuple_String_Expr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"2\n\x18Tuple_String_List_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x03(\t"F\n\x19Tuple_String_SpColumnExpr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1d\n\x02_2\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"@\n\x16Tuple_String_SpVariant\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"-\n\x13Tuple_String_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x01(\t"\xa4\x01\n\x08Language\x12*\n\rjava_language\x18\x01 \x01(\x0b\x32\x11.ast.JavaLanguageH\x00\x12.\n\x0fpython_language\x18\x02 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x03 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x42\x0e\n\x0csealed_value"/\n\x0ePythonLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version".\n\rScalaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"-\n\x0cJavaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"E\n\x07Version\x12\r\n\x05label\x18\x01 \x01(\t\x12\r\n\x05major\x18\x02 \x01(\x03\x12\r\n\x05minor\x18\x03 \x01(\x03\x12\r\n\x05patch\x18\x04 \x01(\x03"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"v\n\x06\x46nName\x12\'\n\x0c\x66n_name_flat\x18\x01 \x01(\x0b\x32\x0f.ast.FnNameFlatH\x00\x12\x33\n\x12\x66n_name_structured\x18\x02 \x01(\x0b\x32\x15.ast.FnNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1a\n\nFnNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t" \n\x10\x46nNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"\xc8\x01\n\x0fTableFnCallType\x12%\n\x1btable_fn_call_type__builtin\x18\x01 \x01(\x08H\x00\x12+\n!table_fn_call_type__call_table_fn\x18\x02 \x01(\x08H\x00\x12.\n$table_fn_call_type__session_table_fn\x18\x03 \x01(\x08H\x00\x12&\n\x1ctable_fn_call_type__table_fn\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xaa\x02\n\x18SpWindowRelativePosition\x12\x32\n(sp_window_relative_position__current_row\x18\x01 \x01(\x08H\x00\x12W\n%sp_window_relative_position__position\x18\x02 \x01(\x0b\x32&.ast.SpWindowRelativePosition_PositionH\x00\x12:\n0sp_window_relative_position__unbounded_following\x18\x03 \x01(\x08H\x00\x12:\n0sp_window_relative_position__unbounded_preceding\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant".\n!SpWindowRelativePosition_Position\x12\t\n\x01n\x18\x01 \x01(\x03"q\n\x0bPdIndexExpr\x12 \n\x08\x66lex_ord\x18\x01 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x02 \x01(\x0b\x32\x08.ast.KeyH\x00\x12\x17\n\x03ord\x18\x03 \x01(\x0b\x32\x08.ast.OrdH\x00\x42\x0e\n\x0csealed_value"\x1b\n\x03Ord\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1f\n\x07\x46lexOrd\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1b\n\x03Key\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\xb9\x02\n\x12PdProjectIndexExpr\x12/\n\x10\x62ool_filter_list\x18\x01 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x12)\n\rflex_ord_list\x18\x02 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12+\n\x0e\x66lex_ord_range\x18\x03 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12 \n\x08key_list\x18\x04 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12"\n\tkey_range\x18\x05 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x06 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12"\n\tord_range\x18\x07 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"Z\n\x0c\x46lexOrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"=\n\x08KeyRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr""\n\x07OrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr"&\n\x0b\x46lexOrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr""\n\x07KeyList\x12\x17\n\x04keys\x18\x01 \x01(\x0b\x32\t.ast.Expr"+\n\x0e\x42oolFilterList\x12\x19\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\t.ast.Expr"}\n\rSpFlattenMode\x12\x1f\n\x15sp_flatten_mode_array\x18\x01 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x02 \x01(\x08H\x00\x12 \n\x16sp_flatten_mode_object\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"P\n\x0eSpTableVariant\x12\x1a\n\x10sp_session_table\x18\x01 \x01(\x08H\x00\x12\x17\n\rsp_table_init\x18\x02 \x01(\x08H\x00\x42\t\n\x07variant"\xc0\x01\n\nSpSaveMode\x12\x1d\n\x13sp_save_mode_append\x18\x01 \x01(\x08H\x00\x12&\n\x1csp_save_mode_error_if_exists\x18\x02 \x01(\x08H\x00\x12\x1d\n\x13sp_save_mode_ignore\x18\x03 \x01(\x08H\x00\x12 \n\x16sp_save_mode_overwrite\x18\x04 \x01(\x08H\x00\x12\x1f\n\x15sp_save_mode_truncate\x18\x05 \x01(\x08H\x00\x42\t\n\x07variant"\x88\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__cross\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x02 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__inner\x18\x03 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x04 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x07 \x01(\x08H\x00\x42\t\n\x07variant"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x03 \x01(\x08H\x00\x12#\n\x19sp_timestamp_time_zone_tz\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xa2\x06\n\nSpDataType\x12)\n\rsp_array_type\x18\x01 \x01(\x0b\x32\x10.ast.SpArrayTypeH\x00\x12\x18\n\x0esp_binary_type\x18\x02 \x01(\x08H\x00\x12\x19\n\x0fsp_boolean_type\x18\x03 \x01(\x08H\x00\x12\x16\n\x0csp_byte_type\x18\x04 \x01(\x08H\x00\x12\x37\n\x14sp_column_identifier\x18\x05 \x01(\x0b\x32\x17.ast.SpColumnIdentifierH\x00\x12\x16\n\x0csp_date_type\x18\x06 \x01(\x08H\x00\x12-\n\x0fsp_decimal_type\x18\x07 \x01(\x0b\x32\x12.ast.SpDecimalTypeH\x00\x12\x18\n\x0esp_double_type\x18\x08 \x01(\x08H\x00\x12\x17\n\rsp_float_type\x18\t \x01(\x08H\x00\x12\x1b\n\x11sp_geography_type\x18\n \x01(\x08H\x00\x12\x1a\n\x10sp_geometry_type\x18\x0b \x01(\x08H\x00\x12\x19\n\x0fsp_integer_type\x18\x0c \x01(\x08H\x00\x12\x16\n\x0csp_long_type\x18\r \x01(\x08H\x00\x12%\n\x0bsp_map_type\x18\x0e \x01(\x0b\x32\x0e.ast.SpMapTypeH\x00\x12\x16\n\x0csp_null_type\x18\x0f \x01(\x08H\x00\x12\x17\n\rsp_short_type\x18\x10 \x01(\x08H\x00\x12+\n\x0esp_string_type\x18\x11 \x01(\x0b\x32\x11.ast.SpStringTypeH\x00\x12-\n\x0fsp_struct_field\x18\x12 \x01(\x0b\x32\x12.ast.SpStructFieldH\x00\x12+\n\x0esp_struct_type\x18\x13 \x01(\x0b\x32\x11.ast.SpStructTypeH\x00\x12\x16\n\x0csp_time_type\x18\x14 \x01(\x08H\x00\x12\x31\n\x11sp_timestamp_type\x18\x15 \x01(\x0b\x32\x14.ast.SpTimestampTypeH\x00\x12\x19\n\x0fsp_variant_type\x18\x16 \x01(\x08H\x00\x12+\n\x0esp_vector_type\x18\x17 \x01(\x0b\x32\x11.ast.SpVectorTypeH\x00\x42\t\n\x07variant">\n\x0bSpArrayType\x12\x12\n\nstructured\x18\x01 \x01(\x08\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType""\n\x12SpColumnIdentifier\x12\x0c\n\x04name\x18\x01 \x01(\t"1\n\rSpDecimalType\x12\x11\n\tprecision\x18\x01 \x01(\x03\x12\r\n\x05scale\x18\x02 \x01(\x03"c\n\tSpMapType\x12\x1f\n\x06key_ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08\x12!\n\x08value_ty\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType";\n\x0cSpStringType\x12+\n\x06length\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"y\n\rSpStructField\x12\x32\n\x11\x63olumn_identifier\x18\x01 \x01(\x0b\x32\x17.ast.SpColumnIdentifier\x12"\n\tdata_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x10\n\x08nullable\x18\x03 \x01(\x08"F\n\x0cSpStructType\x12"\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x12.ast.SpStructField\x12\x12\n\nstructured\x18\x02 \x01(\x08">\n\x0fSpTimestampType\x12+\n\ttime_zone\x18\x01 \x01(\x0b\x32\x18.ast.SpTimestampTimeZone">\n\x0cSpVectorType\x12\x11\n\tdimension\x18\x01 \x01(\x03\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType"\xc2\x05\n\tSpVariant\x12<\n\x17sp_variant__big_decimal\x18\x01 \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12\x34\n\x13sp_variant__big_int\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12/\n\x10sp_variant__bool\x18\x03 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x31\n\x11sp_variant__bytes\x18\x04 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12/\n\x10sp_variant__date\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12\x33\n\x12sp_variant__double\x18\x06 \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\x00\x12\x31\n\x11sp_variant__float\x18\x07 \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12-\n\x0fsp_variant__int\x18\x08 \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12/\n\x10sp_variant__list\x18\t \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x33\n\x12sp_variant__object\x18\n \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12\x33\n\x12sp_variant__string\x18\x0b \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__time\x18\x0c \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x39\n\x15sp_variant__timestamp\x18\r \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x42\x0e\n\x0csealed_value"7\n\x10SpVariant_Object\x12#\n\x01v\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"3\n\x0eSpVariant_List\x12!\n\x01v\x18\x01 \x03(\x0b\x32\x16.ast.Map_String_String" \n\x13SpVariant_Timestamp\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Date\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Time\x12\t\n\x01v\x18\x01 \x01(\x04"\x1c\n\x0fSpVariant_Bytes\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1d\n\x10SpVariant_String\x12\t\n\x01v\x18\x01 \x01(\t"\x1b\n\x0eSpVariant_Bool\x12\t\n\x01v\x18\x01 \x01(\x08"\x1d\n\x10SpVariant_BigInt\x12\t\n\x01v\x18\x01 \x01(\x0c"!\n\x14SpVariant_BigDecimal\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1a\n\rSpVariant_Int\x12\t\n\x01v\x18\x01 \x01(\x03"\x1c\n\x0fSpVariant_Float\x12\t\n\x01v\x18\x01 \x01(\x04"\x1d\n\x10SpVariant_Double\x12\t\n\x01v\x18\x01 \x01(\x04"\x91\x01\n\x0bSpTableName\x12\x32\n\x12sp_table_name_flat\x18\x01 \x01(\x0b\x32\x14.ast.SpTableNameFlatH\x00\x12>\n\x18sp_table_name_structured\x18\x02 \x01(\x0b\x32\x1a.ast.SpTableNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1f\n\x0fSpTableNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t"%\n\x15SpTableNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"=\n\x15StagedPandasDataframe\x12$\n\ntemp_table\x18\x01 \x01(\x0b\x32\x10.ast.SpTableName"\xe1\x01\n\x0fSpDataframeData\x12<\n\x17sp_dataframe_data__list\x18\x01 \x01(\x0b\x32\x19.ast.SpDataframeData_ListH\x00\x12@\n\x19sp_dataframe_data__pandas\x18\x02 \x01(\x0b\x32\x1b.ast.SpDataframeData_PandasH\x00\x12>\n\x18sp_dataframe_data__tuple\x18\x03 \x01(\x0b\x32\x1a.ast.SpDataframeData_TupleH\x00\x42\x0e\n\x0csealed_value"-\n\x14SpDataframeData_List\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr".\n\x15SpDataframeData_Tuple\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr"?\n\x16SpDataframeData_Pandas\x12%\n\x01v\x18\x01 \x01(\x0b\x32\x1a.ast.StagedPandasDataframe"\xab\x01\n\x11SpDataframeSchema\x12@\n\x19sp_dataframe_schema__list\x18\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSchema_ListH\x00\x12\x44\n\x1bsp_dataframe_schema__struct\x18\x02 \x01(\x0b\x32\x1d.ast.SpDataframeSchema_StructH\x00\x42\x0e\n\x0csealed_value"$\n\x16SpDataframeSchema_List\x12\n\n\x02vs\x18\x01 \x03(\t"8\n\x18SpDataframeSchema_Struct\x12\x1c\n\x01v\x18\x01 \x01(\x0b\x32\x11.ast.SpStructType"k\n\x0bSrcPosition\x12\x12\n\nend_column\x18\x01 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x02 \x01(\x03\x12\x0c\n\x04\x66ile\x18\x03 \x01(\t\x12\x14\n\x0cstart_column\x18\x04 \x01(\x03\x12\x12\n\nstart_line\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"\x8c\x01\n\x07Request\x12\x17\n\x04\x62ody\x18\x01 \x03(\x0b\x32\t.ast.Stmt\x12\x1a\n\x12\x63lient_ast_version\x18\x02 \x01(\x03\x12&\n\x0f\x63lient_language\x18\x03 \x01(\x0b\x32\r.ast.Language\x12$\n\x0e\x63lient_version\x18\x04 \x01(\x0b\x32\x0c.ast.Version"%\n\x08Response\x12\x19\n\x04\x62ody\x18\x01 \x03(\x0b\x32\x0b.ast.Result"\xaf\x05\n\x05\x43onst\x12-\n\x0f\x62ig_decimal_val\x18\x01 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x02 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x03 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x04 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x05 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x06 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x07 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\x08 \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\t \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\n \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0b \x01(\x0b\x32\x0c.ast.NullValH\x00\x12-\n\x0fpython_date_val\x18\x0c \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\r \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x0e \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12$\n\nstring_val\x18\x0f \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x10 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x11 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"(\n\x07NoneVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"(\n\x07NullVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"3\n\x07\x42oolVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x08"4\n\x08Int32Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"4\n\x08Int64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"6\n\nFloat64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x01"5\n\tBigIntVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"U\n\rBigDecimalVal\x12\r\n\x05scale\x18\x01 \x01(\x03\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x03 \x01(\x0c"5\n\tStringVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\t"5\n\tBinaryVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"8\n\x0cTimestampVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07\x44\x61teVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07TimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"\xc1\x01\n\x12PythonTimestampVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x03 \x01(\x03\x12\x0e\n\x06minute\x18\x04 \x01(\x03\x12\r\n\x05month\x18\x05 \x01(\x03\x12\x0e\n\x06second\x18\x06 \x01(\x03\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x08 \x01(\x0b\x32\x13.ast.PythonTimeZone\x12\x0c\n\x04year\x18\t \x01(\x03"X\n\rPythonDateVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\r\n\x05month\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x0c\n\x04hour\x18\x01 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x17\n\x04\x62ody\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x06IfExpr\x12\x17\n\x04\x63ond\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition">\n\x07SomeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Expr"@\n\x08TupleVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"?\n\x07ListVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"F\n\tSeqMapVal\x12\x1a\n\x03kvs\x18\x01 \x03(\x0b\x32\r.ast.TupleVal\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\tApplyExpr\x12\x1a\n\x02\x66n\x18\x01 \x01(\x0b\x32\x0e.ast.FnRefExpr\x12*\n\nnamed_args\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x1b\n\x08pos_args\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xda\x01\n\tFnRefExpr\x12$\n\nbuiltin_fn\x18\x01 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12/\n\x10session_table_fn\x18\x02 \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12\x30\n\x10stored_procedure\x18\x03 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12 \n\x08table_fn\x18\x04 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12\x17\n\x03udf\x18\x05 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"E\n\tBuiltinFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xb3\x01\n\x0fStoredProcedure\x12\x34\n\x10log_on_exception\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x30\n\x10statement_params\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"?\n\x03Udf\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"J\n\x0eSessionTableFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x07TableFn\x12\'\n\tcall_type\x18\x01 \x01(\x0b\x32\x14.ast.TableFnCallType\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"F\n\x07UnaryOp\x12\x17\n\x03neg\x18\x01 \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03not\x18\x02 \x01(\x0b\x32\x08.ast.NotH\x00\x42\t\n\x07variant"\xc6\x03\n\x05\x42inOp\x12\x17\n\x03\x61\x64\x64\x18\x01 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x02 \x01(\x0b\x32\x08.ast.AndH\x00\x12\x1e\n\x07\x62it_and\x18\x03 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x04 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x05 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12\x17\n\x03\x64iv\x18\x06 \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x07 \x01(\x0b\x32\x07.ast.EqH\x00\x12\x17\n\x03geq\x18\x08 \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18\t \x01(\x0b\x32\x07.ast.GtH\x00\x12\x17\n\x03leq\x18\n \x01(\x0b\x32\x08.ast.LeqH\x00\x12\x15\n\x02lt\x18\x0b \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18\x0c \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18\r \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neq\x18\x0e \x01(\x0b\x32\x08.ast.NeqH\x00\x12\x15\n\x02or\x18\x0f \x01(\x0b\x32\x07.ast.OrH\x00\x12\x17\n\x03pow\x18\x10 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x17\n\x03sub\x18\x11 \x01(\x0b\x32\x08.ast.SubH\x00\x42\t\n\x07variant"@\n\x03Not\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41nd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Or\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02\x45q\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Neq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Lt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Leq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Gt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Geq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"@\n\x03Neg\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41\x64\x64\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Sub\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mul\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x44iv\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mod\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Pow\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itAnd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x05\x42itOr\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itXor\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x08RangeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05start\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x04 \x01(\x0b\x32\t.ast.Expr"\xe3\x02\n\x10SpWindowSpecExpr\x12\x36\n\x14sp_window_spec_empty\x18\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12;\n\x17sp_window_spec_order_by\x18\x02 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x43\n\x1bsp_window_spec_partition_by\x18\x03 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x45\n\x1csp_window_spec_range_between\x18\x04 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x43\n\x1bsp_window_spec_rows_between\x18\x05 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x42\t\n\x07variant"V\n\x11SpWindowSpecEmpty\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x02 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"q\n\x13SpWindowSpecOrderBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"u\n\x17SpWindowSpecPartitionBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb7\x01\n\x18SpWindowSpecRangeBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb6\x01\n\x17SpWindowSpecRowsBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xcfW\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12+\n\x11trait_fn_ref_expr\x18\x03 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x05 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x06 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x07 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x08 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\t \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\n \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\x0b \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x0c \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\r \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12/\n\x13trait_sp_write_file\x18\x0e \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x0f \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x10 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x11 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x12 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x13 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x14 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x15 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x16 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x17 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x18 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x19 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x1a \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1b \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1c \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1d \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1e \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1f \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18 \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18! \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18" \x01(\x0b\x32\x07.ast.GtH\x00\x12\x1e\n\x07if_expr\x18# \x01(\x0b\x32\x0b.ast.IfExprH\x00\x12"\n\tint32_val\x18$ \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18% \x01(\x0b\x32\r.ast.Int64ValH\x00\x12\x17\n\x03leq\x18& \x01(\x0b\x32\x08.ast.LeqH\x00\x12 \n\x08list_val\x18\' \x01(\x0b\x32\x0c.ast.ListValH\x00\x12\x15\n\x02lt\x18( \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18) \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18* \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neg\x18+ \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03neq\x18, \x01(\x0b\x32\x08.ast.NeqH\x00\x12 \n\x08none_val\x18- \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12\x17\n\x03not\x18. \x01(\x0b\x32\x08.ast.NotH\x00\x12 \n\x08null_val\x18/ \x01(\x0b\x32\x0c.ast.NullValH\x00\x12\x15\n\x02or\x18\x30 \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x31 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x32 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x33 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x34 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x35 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x36 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x37 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x38 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x39 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18: \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18; \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18< \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18= \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18> \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18? \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18@ \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18\x41 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x42 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x43 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x44 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x45 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12\x34\n\x13sp_column_case_when\x18\x46 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12+\n\x0esp_column_cast\x18G \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18H \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18I \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18J \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18K \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18L \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18M \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18N \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18O \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18P \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18Q \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18R \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18S \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18T \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18U \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18V \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18W \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18X \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18Y \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18Z \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18[ \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18\\ \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18] \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18^ \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18_ \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18` \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x61 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x62 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x63 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x64 \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x65 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18\x66 \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18g \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18h \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18i \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18j \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18k \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18l \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18m \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18n \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18o \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18p \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18q \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18r \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18s \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18t \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18u \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18v \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18w \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18x \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18y \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18z \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18{ \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18| \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18} \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18~ \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x7f \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12Y\n&sp_dataframe_join__table_function__map\x18\x80\x01 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x34\n\x12sp_dataframe_limit\x18\x81\x01 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x46\n\x1csp_dataframe_na_drop__python\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x44\n\x1bsp_dataframe_na_drop__scala\x18\x83\x01 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x84\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x85\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x86\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x87\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x88\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x8a\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x8b\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x8c\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x8d\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x8e\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x8f\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x90\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x91\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x92\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x93\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x94\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x95\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x96\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x97\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x98\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x99\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x9a\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x9b\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x9c\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x9d\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x9e\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x9f\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\xa0\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\xa1\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\xa2\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12%\n\nsp_flatten\x18\xa3\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\xa4\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xa5\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xa6\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xa7\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xa8\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xa9\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xaa\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xab\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xac\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xad\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xae\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\xaf\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\xb0\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\xb1\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\xb2\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xb3\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xb4\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xb5\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xb6\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xb7\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xb8\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xb9\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xba\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_row\x18\xbb\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xbc\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xbd\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xbe\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xbf\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xc0\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xc1\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xc2\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xc3\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xc4\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xc5\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xc6\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xc7\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xc8\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xc9\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xca\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xcb\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xcc\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xcd\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"@\n\x03Ref\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"W\n\x08\x43\x61stExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03typ\x18\x02 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x95\x01\n\x0bPdDataframe\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x03 \x01(\x0b\x32\t.ast.Type\x12\x18\n\x05index\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x01\n\x08PdDropNa\x12\x17\n\x04\x61xis\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06subset\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06thresh\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x12PdDataframeSetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x0fPdDataframeILoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x06PdRepr\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\x12\x13\n\x0bmax_columns\x18\x02 \x01(\x03\x12\x10\n\x08max_rows\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x13\n\x01v\x18\x05 \x01(\x0b\x32\x08.ast.Ref"u\n\x0cPdReprResult\x12\x13\n\x0bnum_columns\x18\x01 \x01(\x03\x12\x18\n\x10num_head_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x10\n\x08num_rows\x18\x04 \x01(\x03\x12\r\n\x05value\x18\x05 \x01(\x0c"\x9e\x01\n\x06Result\x12!\n\x0btrait_error\x18\x01 \x01(\x0b\x32\n.ast.ErrorH\x00\x12\x1e\n\x07\x65val_ok\x18\x02 \x01(\x0b\x32\x0b.ast.EvalOkH\x00\x12\x46\n\x1csession_reset_required_error\x18\x03 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"\x84\x06\n\nEvalResult\x12!\n\x0btrait_const\x18\x01 \x01(\x0b\x32\n.ast.ConstH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x02 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x03 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x04 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x05 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x06 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x07 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x08 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\t \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\n \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\x0b \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0c \x01(\x0b\x32\x0c.ast.NullValH\x00\x12+\n\x0epd_repr_result\x18\r \x01(\x0b\x32\x11.ast.PdReprResultH\x00\x12-\n\x0fpython_date_val\x18\x0e \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x0f \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x10 \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12$\n\nstring_val\x18\x11 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x12 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x13 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"P\n\x06\x45valOk\x12\x1d\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x0f.ast.EvalResult\x12\x0b\n\x03uid\x18\x02 \x01(\x03\x12\x1a\n\x06var_id\x18\x03 \x01(\x0b\x32\n.ast.VarId"Z\n\x05\x45rror\x12\x46\n\x1csession_reset_required_error\x18\x01 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"D\n\x19SessionResetRequiredError\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xcc\x02\n\x0cSpColumnExpr\x12\x34\n\x13sp_column_case_when\x18\x01 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12\x36\n\x14sp_column_equal_null\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12)\n\rsp_column_ref\x18\x03 \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18\x04 \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x05 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\x06 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x42\t\n\x07variant"8\n\x0bSpColumnRef\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"m\n\x0fSpColumnSqlExpr\x12.\n\x08\x64\x66_alias\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\nSpCaseExpr\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05value\x18\x03 \x01(\x0b\x32\t.ast.Expr"Q\n\x10SpColumnCaseWhen\x12\x1e\n\x05\x63\x61ses\x18\x01 \x03(\x0b\x32\x0f.ast.SpCaseExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x91\n\n\nSpColumnFn\x12-\n\x0fsp_column_alias\x18\x01 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x03 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x04 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x05 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18\x06 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18\x07 \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18\x08 \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12<\n\x17sp_column_in__dataframe\x18\t \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18\n \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18\x0b \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18\x0c \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18\r \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18\x0e \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12>\n\x18sp_column_string_collate\x18\x0f \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18\x10 \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18\x11 \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18\x12 \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18\x13 \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18\x14 \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18\x15 \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18\x16 \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x17 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\\\n\x14SpColumnApply_String\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x0bSpColumnAsc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x0fSpColumnBetween\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"I\n\x10SpColumnEqualNan\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x11SpColumnEqualNull\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"o\n\x14SpColumnIn_Dataframe\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x0eSpColumnIn_Seq\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"G\n\x0eSpColumnIsNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x0cSpColumnName\x12\r\n\x05\x61lias\x18\x01 \x01(\t\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x0cSpColumnOver\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"l\n\x13SpColumnWithinGroup\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x04\x63ols\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"g\n\x12SpColumnStringLike\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x14SpColumnStringRegexp\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\nparameters\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x18SpColumnStringStartsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"j\n\x16SpColumnStringEndsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"}\n\x14SpColumnStringSubstr\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x15SpColumnStringCollate\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12!\n\x0e\x63ollation_spec\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"k\n\x16SpColumnStringContains\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xfa*\n\x0fSpDataframeExpr\x12H\n trait_sp_copyable_dataframe_expr\x18\x01 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x02 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x03 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12\'\n\x0csp_copy_into\x18\x04 \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18\x05 \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18\x06 \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18\x07 \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\x08 \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\t \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\n \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x0b \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x0c \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x37\n\x14sp_dataframe_collect\x18\r \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x33\n\x12sp_dataframe_count\x18\x0e \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12<\n\x17sp_dataframe_cross_join\x18\x0f \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x39\n\x15sp_dataframe_describe\x18\x10 \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\x11 \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18\x12 \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x13 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18\x14 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x15 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x16 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18\x17 \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12;\n\x16sp_dataframe_intersect\x18\x18 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18\x19 \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x1a \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x1b \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x1c \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x1d \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x1e \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18\x1f \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18! \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18" \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18# \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18$ \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18% \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18& \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x35\n\x13sp_dataframe_sample\x18\' \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18( \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x42\n\x1asp_dataframe_select__exprs\x18) \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x31\n\x11sp_dataframe_show\x18* \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x31\n\x11sp_dataframe_sort\x18+ \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12O\n!sp_dataframe_stat_approx_quantile\x18, \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12:\n\x16sp_dataframe_stat_corr\x18- \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x38\n\x15sp_dataframe_stat_cov\x18. \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x43\n\x1bsp_dataframe_stat_cross_tab\x18/ \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x43\n\x1bsp_dataframe_stat_sample_by\x18\x30 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18\x31 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18\x32 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18\x33 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18\x34 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18\x35 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18\x36 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18\x37 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12M\n sp_dataframe_with_column_renamed\x18\x38 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12@\n\x19sp_dataframe_with_columns\x18\x39 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_dataframe_write\x18: \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12$\n\nsp_flatten\x18; \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12(\n\x0csp_generator\x18< \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18= \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18> \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18? \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18@ \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x41 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x42 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x43 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x44 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12S\n#sp_relational_grouped_dataframe_agg\x18\x45 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\x46 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18G \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18H \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18I \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18J \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18K \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18L \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18M \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18N \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18O \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18P \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1c\n\x06sp_sql\x18Q \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18R \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18S \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18T \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12-\n\x0fsp_write_pandas\x18U \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"H\n\x0fSpDataframeShow\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8c\x01\n\x10SpDataframeCount\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xd1\x01\n\x12SpDataframeCollect\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x0e\x63\x61se_sensitive\x18\x02 \x01(\x08\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x18\n\x10log_on_exception\x18\x04 \x01(\x08\x12\x0f\n\x07no_wait\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String"~\n\x11SpCreateDataframe\x12"\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06schema\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeSchema\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x80\x03\n\rSpWritePandas\x12\x19\n\x11\x61uto_create_table\x18\x01 \x01(\x08\x12/\n\nchunk_size\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x13\n\x0b\x63ompression\x18\x03 \x01(\t\x12\x19\n\x11\x63reate_temp_table\x18\x04 \x01(\x08\x12 \n\x02\x64\x66\x18\x05 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06kwargs\x18\x06 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x10\n\x08on_error\x18\x07 \x01(\t\x12\x11\n\toverwrite\x18\x08 \x01(\x08\x12\x10\n\x08parallel\x18\t \x01(\x03\x12\x19\n\x11quote_identifiers\x18\n \x01(\x08\x12\x1d\n\x03src\x18\x0b \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\ntable_name\x18\x0c \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\r \x01(\t"\xb4\x01\n\tSpFlatten\x12\x18\n\x05input\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x02 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x03 \x01(\x08\x12*\n\x04path\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x0bSpGenerator\x12\x1a\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x12time_limit_seconds\x18\x04 \x01(\x03\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\x8c\x01\n\x07SpRange\x12(\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05start\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"P\n\x05SpSql\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\r\n\x05query\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"s\n\x11SpStoredProcedure\x12\x1c\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x91\x01\n\x07SpTable\x12!\n\x19is_temp_table_for_cleanup\x18\x01 \x01(\x08\x12\x1e\n\x04name\x18\x02 \x01(\x0b\x32\x10.ast.SpTableName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\x07variant\x18\x04 \x01(\x0b\x32\x13.ast.SpTableVariant"|\n\x0fSpTableFunction\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x87\x01\n\x17SpDataframeNaDrop_Scala\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x15min_non_nulls_per_row\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xb7\x01\n\x18SpDataframeNaDrop_Python\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03how\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12+\n\x06thresh\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"\xb9\x01\n\x11SpDataframeNaFill\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12\x18\n\x05value\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\'\n\tvalue_map\x18\x05 \x01(\x0b\x32\x14.ast.Map_String_Expr"\xae\x02\n\x14SpDataframeNaReplace\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12+\n\x0freplacement_map\x18\x02 \x01(\x0b\x32\x12.ast.Map_Expr_Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12\'\n\x0fto_replace_list\x18\x05 \x01(\x0b\x32\x0e.ast.List_Expr\x12#\n\x10to_replace_value\x18\x06 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05value\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x06values\x18\x08 \x01(\x0b\x32\x0e.ast.List_Expr"r\n\x0eSpDataframeAgg\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x05\x65xprs\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"a\n\x10SpDataframeAlias\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"e\n\x10SpDataframeApply\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\x0eSpDataframeCol\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xd9\x01\n\x14SpDataframeCrossJoin\x12!\n\x03lhs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeCube\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"v\n\x13SpDataframeDescribe\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x13SpDataframeDistinct\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeDrop\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x19SpDataframeDropDuplicates\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x11SpDataframeExcept\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x11SpDataframeFilter\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xdf\x01\n\x12SpDataframeFlatten\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05input\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x03 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x04 \x01(\x08\x12*\n\x04path\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x10SpDataframeFirst\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"u\n\x12SpDataframeGroupBy\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x14SpDataframeIntersect\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x02\n\x0fSpDataframeJoin\x12\x1c\n\tjoin_expr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12"\n\x0fmatch_condition\x18\x05 \x01(\x0b\x32\t.ast.Expr\x12!\n\x03rhs\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1f\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12(\n\njoin_exprs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\'\n\rusing_columns\x18\x05 \x01(\x0b\x32\x10.ast.List_String\x12\x10\n\x08variadic\x18\x06 \x01(\x08"n\n\x10SpDataframeLimit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x02 \x01(\x03\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa1\x01\n\x16SpDataframeNaturalJoin\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x17SpDataframePivot_Column\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc9\x01\n\x16SpDataframeRandomSplit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12)\n\x04seed\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0f\n\x07weights\x18\x05 \x03(\x01"\xa8\x01\n\x11SpDataframeRename\x12 \n\rcol_or_mapper\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x30\n\nnew_column\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"t\n\x11SpDataframeRollup\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x01\n\x11SpDataframeSample\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\x03num\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12:\n\x14probability_fraction\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"{\n\x17SpDataframeSelect_Exprs\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x65xprs\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xa0\x01\n\x0fSpDataframeSort\x12\x1c\n\tascending\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x02 \x03(\x0b\x32\t.ast.Expr\x12\x15\n\rcols_variadic\x18\x03 \x01(\x08\x12 \n\x02\x64\x66\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"x\n\x10SpDataframeUnion\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x13SpDataframeUnionAll\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x81\x01\n\x19SpDataframeUnionAllByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"~\n\x16SpDataframeUnionByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x10SpDataframeWhere\x12$\n\tcondition\x18\x01 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x82\x01\n\x15SpDataframeWithColumn\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x10\n\x08\x63ol_name\x18\x02 \x01(\t\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x1cSpDataframeWithColumnRenamed\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x16SpDataframeWithColumns\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x04 \x03(\x0b\x32\t.ast.Expr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x02 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"O\n\x0eSpGroupingSets\x12\x1e\n\x04sets\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xe4\x01\n\x1dSpDataframeAnalyticsMovingAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x10\n\x08order_by\x18\x05 \x03(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x0cwindow_sizes\x18\x07 \x03(\x03"\xe6\x01\n!SpDataframeAnalyticsCumulativeAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x12\n\nis_forward\x18\x05 \x01(\x08\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xc9\x01\n\x1eSpDataframeAnalyticsComputeLag\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x0c\n\x04lags\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xcb\x01\n\x1fSpDataframeAnalyticsComputeLead\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\r\n\x05leads\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xfd\x01\n!SpDataframeAnalyticsTimeSeriesAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x18\n\x10sliding_interval\x18\x05 \x01(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08time_col\x18\x07 \x01(\t\x12\x0f\n\x07windows\x18\x08 \x03(\t"\x84\x04\n\x17SpCopyableDataframeExpr\x12J\n!trait_sp_dataframe_reader_options\x18\x01 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x02 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12\'\n\x0csp_copy_into\x18\x03 \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\'\n\x0csp_read_avro\x18\x04 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x05 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x06 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x07 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x08 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\t \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\n \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x42\t\n\x07variant"6\n\x18SpDataframeReaderOptions\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"5\n\x17SpDataframeReaderSchema\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"9\n\nSpReadAvro\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadCsv\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"9\n\nSpReadJson\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadOrc\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"<\n\rSpReadParquet\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition":\n\x0bSpReadTable\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadXml\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xcb\x01\n\nSpCopyInto\x12*\n\x07options\x18\x01 \x01(\x0b\x32\x19.ast.Map_String_SpVariant\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x03 \x01(\t\x12-\n\x13target_column_names\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\xe1\x03\n\x11SpDataframeWriter\x12J\n!trait_sp_dataframe_writer_options\x18\x01 \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x02 \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12/\n\x13trait_sp_write_file\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12\x43\n\x1bsp_write_copy_into_location\x18\x04 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x05 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x06 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x07 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x08 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x42\t\n\x07variant"7\n\x19SpDataframeWriterSaveMode\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x18SpDataframeWriterOptions\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"w\n\x10SpDataframeWrite\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tsave_mode\x18\x02 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xe2\x01\n\x0bSpWriteFile\x12\x43\n\x1bsp_write_copy_into_location\x18\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x02 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x04 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x42\t\n\x07variant"\xae\x02\n\nSpWriteCsv\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xaf\x02\n\x0bSpWriteJson\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x02\n\x0eSpWriteParquet\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xea\x02\n\x0cSpWriteTable\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\'\n\x0f\x63lustering_keys\x18\x02 \x01(\x0b\x32\x0e.ast.List_Expr\x12\x14\n\x0c\x63olumn_order\x18\x03 \x01(\t\x12-\n\x07\x63omment\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x19\n\x11\x63reate_temp_table\x18\x05 \x01(\x08\x12\x16\n\x02id\x18\x06 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04mode\x18\x07 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String\x12$\n\ntable_name\x18\n \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\x0b \x01(\t"\xab\x03\n\x17SpWriteCopyIntoLocation\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x36\n\x10\x66ile_format_name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x66ile_format_type\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x13\x66ormat_type_options\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x06 \x01(\x08\x12\x16\n\x02id\x18\x07 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x08 \x01(\t\x12\x1f\n\x0cpartition_by\x18\t \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\n \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x0b \x03(\x0b\x32\x18.ast.Tuple_String_String"\xe3\x01\n\x1eSpDataframeCreateOrReplaceView\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07is_temp\x18\x03 \x01(\x08\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xfa\x01\n&SpDataframeCreateOrReplaceDynamicTable\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03lag\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x11\n\twarehouse\x18\x07 \x01(\t"\xb7\x03\n\x18SpDataframeCopyIntoTable\x12,\n\x0c\x63opy_options\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x66iles\x18\x03 \x03(\t\x12\x33\n\x13\x66ormat_type_options\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12-\n\x07pattern\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x12\n\ntable_name\x18\x08 \x03(\t\x12\x16\n\x0etarget_columns\x18\t \x03(\t\x12"\n\x0ftransformations\x18\n \x03(\x0b\x32\t.ast.Expr\x12\x35\n\x0fvalidation_mode\x18\x0b \x01(\x0b\x32\x1c.google.protobuf.StringValue"\x8d\x01\n\x16SpDataframeCacheResult\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb7\x01\n\x1dSpDataframeStatApproxQuantile\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x12\n\npercentile\x18\x03 \x03(\x01\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x01\n\x13SpDataframeStatCorr\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb1\x01\n\x12SpDataframeStatCov\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb6\x01\n\x17SpDataframeStatCrossTab\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x9c\x01\n\x17SpDataframeStatSampleBy\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\tfractions\x18\x03 \x03(\x0b\x32\x15.ast.Tuple_Expr_Float\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa8\x06\n SpRelationalGroupedDataframeExpr\x12\x31\n\x11sp_dataframe_cube\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x02 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x03 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x05 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x07 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x35\n\x13sp_dataframe_rollup\x18\x08 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\t \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12S\n#sp_relational_grouped_dataframe_ref\x18\x0b \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x42\t\n\x07variant"X\n\x1fSpRelationalGroupedDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xc9\x01\n#SpRelationalGroupedDataframeAgg_Map\x12 \n\x05\x65xprs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x02 \x01(\x08\x12\x39\n\ngrouped_df\x18\x03 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xb7\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12 \n\x05\x65xprs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x9c\x01\n\x1fSpRelationalGroupedDataframeAgg\x12\x1f\n\x05\x65xprs\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x10\n\x08\x61gg_name\x18\x01 \x01(\t\x12\x17\n\x04\x63ols\x18\x02 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x03 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"}\n!SpRelationalGroupedDataframeCount\x12\x39\n\ngrouped_df\x18\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"^\n\x05SpRow\x12\x1f\n\x05names\x18\x01 \x01(\x0b\x32\x10.ast.List_String\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x03 \x03(\x0b\x32\t.ast.Expr"8\n\x0b\x45xprArgList\x12\x17\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x02 \x01(\x08":\n\x0fSpDataframeType\x12\x0f\n\x07\x63olumns\x18\x01 \x03(\t\x12\x16\n\x03tys\x18\x02 \x03(\x0b\x32\t.ast.Type"F\n\x16SpGroupedDataframeType\x12\x15\n\rinner_columns\x18\x01 \x03(\t\x12\x15\n\router_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xad[\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x03 \x01(\x0b\x32\t.ast.ExprH\x00\x12+\n\x11trait_fn_ref_expr\x18\x04 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x05 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x06 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x07 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\t \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\n \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\x0b \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\x0c \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\r \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\x0e \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12:\n\x19trait_sp_window_spec_expr\x18\x0f \x01(\x0b\x32\x15.ast.SpWindowSpecExprH\x00\x12/\n\x13trait_sp_write_file\x18\x10 \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x11 \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x12 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x13 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x14 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x15 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x16 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x17 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x18 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x19 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x1a \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x1b \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x1c \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1d \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1e \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1f \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18 \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18! \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18" \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18# \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18$ \x01(\x0b\x32\x07.ast.GtH\x00\x12\x1e\n\x07if_expr\x18% \x01(\x0b\x32\x0b.ast.IfExprH\x00\x12"\n\tint32_val\x18& \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\' \x01(\x0b\x32\r.ast.Int64ValH\x00\x12\x17\n\x03leq\x18( \x01(\x0b\x32\x08.ast.LeqH\x00\x12 \n\x08list_val\x18) \x01(\x0b\x32\x0c.ast.ListValH\x00\x12\x15\n\x02lt\x18* \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18+ \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18, \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neg\x18- \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03neq\x18. \x01(\x0b\x32\x08.ast.NeqH\x00\x12 \n\x08none_val\x18/ \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12\x17\n\x03not\x18\x30 \x01(\x0b\x32\x08.ast.NotH\x00\x12 \n\x08null_val\x18\x31 \x01(\x0b\x32\x0c.ast.NullValH\x00\x12\x15\n\x02or\x18\x32 \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x33 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x35 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x36 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x37 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x38 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x39 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18: \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18; \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18< \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18= \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18> \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18? \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18@ \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18\x41 \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18\x42 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12\'\n\x0csp_case_expr\x18\x43 \x01(\x0b\x32\x0f.ast.SpCaseExprH\x00\x12-\n\x0fsp_column_alias\x18\x44 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x45 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x46 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18G \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18H \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12\x34\n\x13sp_column_case_when\x18I \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12+\n\x0esp_column_cast\x18J \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18K \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18L \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18M \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18N \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18O \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18P \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18Q \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18R \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18S \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18T \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18U \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18V \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18W \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18X \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18Y \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18Z \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18[ \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18\\ \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18] \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18^ \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18_ \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18` \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18\x61 \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18\x62 \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\x63 \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x64 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x65 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x66 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18g \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18h \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18i \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18j \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18k \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18l \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18m \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18n \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18o \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18p \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18q \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18r \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18s \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18t \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18u \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18v \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18w \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18x \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18y \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18z \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18{ \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18| \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18} \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18~ \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12]\n(sp_dataframe_join__dataframe__join_exprs\x18\x80\x01 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x63\n+sp_dataframe_join__dataframe__using_columns\x18\x81\x01 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12[\n\'sp_dataframe_join__table_function__list\x18\x82\x01 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12Y\n&sp_dataframe_join__table_function__map\x18\x83\x01 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x34\n\x12sp_dataframe_limit\x18\x84\x01 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x46\n\x1csp_dataframe_na_drop__python\x18\x85\x01 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x44\n\x1bsp_dataframe_na_drop__scala\x18\x86\x01 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x87\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x88\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x8a\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x8b\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x8c\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x8d\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x8e\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x8f\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x90\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x91\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x92\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x93\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x94\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x95\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x96\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x97\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x98\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x99\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x9a\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x9b\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x9c\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x9d\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x9e\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x9f\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\xa0\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\xa1\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\xa2\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\xa3\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\xa4\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\xa5\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12%\n\nsp_flatten\x18\xa6\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\xa7\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xa8\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xa9\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xaa\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xab\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xac\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xad\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xae\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xaf\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xb0\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xb1\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\xb2\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\xb3\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\xb4\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\xb5\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xb6\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xb7\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xb8\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xb9\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xba\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xbb\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xbc\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xbd\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_row\x18\xbe\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xbf\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xc0\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xc1\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xc2\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x37\n\x14sp_window_spec_empty\x18\xc3\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12<\n\x17sp_window_spec_order_by\x18\xc4\x01 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x44\n\x1bsp_window_spec_partition_by\x18\xc5\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x46\n\x1csp_window_spec_range_between\x18\xc6\x01 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x44\n\x1bsp_window_spec_rows_between\x18\xc7\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xc8\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xc9\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xca\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xcb\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xcc\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xcd\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xce\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xcf\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xd0\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xd1\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xd2\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xd3\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xd4\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xd5\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"K\n\x04Stmt\x12\x1d\n\x06\x61ssign\x18\x01 \x01(\x0b\x32\x0b.ast.AssignH\x00\x12\x19\n\x04\x65val\x18\x02 \x01(\x0b\x32\t.ast.EvalH\x00\x42\t\n\x07variant"x\n\x06\x41ssign\x12\x17\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03uid\x18\x03 \x01(\x03\x12\x1a\n\x06var_id\x18\x04 \x01(\x0b\x32\n.ast.VarId"/\n\x04\x45val\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xc0\x07\n\x04Type\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12,\n\x11trait_scalar_type\x18\x02 \x01(\x0b\x32\x0f.ast.ScalarTypeH\x00\x12 \n\x08\x61ny_type\x18\x03 \x01(\x0b\x32\x0c.ast.AnyTypeH\x00\x12"\n\tbool_type\x18\x04 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x05 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12\x1e\n\x07\x66n_type\x18\x06 \x01(\x0b\x32\x0b.ast.FnTypeH\x00\x12$\n\nint32_type\x18\x07 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x08 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12"\n\tlist_type\x18\t \x01(\x0b\x32\r.ast.ListTypeH\x00\x12 \n\x08map_type\x18\n \x01(\x0b\x32\x0c.ast.MapTypeH\x00\x12(\n\x0cnothing_type\x18\x0b \x01(\x0b\x32\x10.ast.NothingTypeH\x00\x12&\n\x0bnumber_type\x18\x0c \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12&\n\x0boption_type\x18\r \x01(\x0b\x32\x0f.ast.OptionTypeH\x00\x12\'\n\x0cpd_repr_type\x18\x0e \x01(\x0b\x32\x0f.ast.PdReprTypeH\x00\x12.\n\x10sp_col_expr_type\x18\x0f \x01(\x0b\x32\x12.ast.SpColExprTypeH\x00\x12\x31\n\x11sp_dataframe_type\x18\x10 \x01(\x0b\x32\x14.ast.SpDataframeTypeH\x00\x12@\n\x19sp_grouped_dataframe_type\x18\x11 \x01(\x0b\x32\x1b.ast.SpGroupedDataframeTypeH\x00\x12+\n\x0esp_window_type\x18\x12 \x01(\x0b\x32\x11.ast.SpWindowTypeH\x00\x12&\n\x0bstring_type\x18\x13 \x01(\x0b\x32\x0f.ast.StringTypeH\x00\x12$\n\ntuple_type\x18\x14 \x01(\x0b\x32\x0e.ast.TupleTypeH\x00\x12\x1c\n\x06ty_var\x18\x15 \x01(\x0b\x32\n.ast.TyVarH\x00\x12"\n\tunit_type\x18\x16 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x12(\n\x0cunknown_type\x18\x17 \x01(\x0b\x32\x10.ast.UnknownTypeH\x00\x42\t\n\x07variant"\r\n\x0bUnknownType"\t\n\x07\x41nyType"\xad\x02\n\nScalarType\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12"\n\tbool_type\x18\x02 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x03 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x04 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x05 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x06 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12"\n\tunit_type\x18\x07 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x42\t\n\x07variant"\xb6\x01\n\x0bNumericType\x12(\n\x0c\x66loat64_type\x18\x01 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x02 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x03 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x04 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x42\t\n\x07variant"\x0c\n\nNumberType"\r\n\x0bNothingType"\n\n\x08UnitType"\n\n\x08\x42oolType"\x0b\n\tInt32Type"\x0b\n\tInt64Type"\r\n\x0b\x46loat64Type"\x0c\n\nStringType"\x0c\n\nPdReprType";\n\x06\x46nType\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Type\x12\x16\n\x03ret\x18\x02 \x01(\x0b\x32\t.ast.Type"$\n\nOptionType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"#\n\tTupleType\x12\x16\n\x03tys\x18\x01 \x03(\x0b\x32\t.ast.Type""\n\x08ListType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"5\n\x07MapType\x12\x14\n\x01k\x18\x01 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Type"\x13\n\x05TyVar\x12\n\n\x02id\x18\x01 \x01(\t*8\n\x0b__Version__\x12\x18\n\x14PROTO3_REQUIRES_THIS\x10\x00\x12\x0f\n\x0bMAX_VERSION\x10\x01\x42%\n\x1c\x63om.snowflake.snowpark.proto\xe2?\x04H\x01X\x00\x62\x06proto3' + b'\n\x0fproto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x15scalapb/scalapb.proto"$\n\tList_Expr\x12\x17\n\x04list\x18\x01 \x03(\x0b\x32\t.ast.Expr"4\n\x11List_SpColumnExpr\x12\x1f\n\x04list\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr"0\n\x0fList_SpDataType\x12\x1d\n\x04list\x18\x01 \x03(\x0b\x32\x0f.ast.SpDataType"\x1b\n\x0bList_String\x12\x0c\n\x04list\x18\x01 \x03(\t"3\n\rMap_Expr_Expr\x12"\n\x04list\x18\x01 \x03(\x0b\x32\x14.ast.Tuple_Expr_Expr"7\n\x0fMap_String_Expr\x12$\n\x04list\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"A\n\x14Map_String_SpVariant\x12)\n\x04list\x18\x01 \x03(\x0b\x32\x1b.ast.Tuple_String_SpVariant";\n\x11Map_String_String\x12&\n\x04list\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"?\n\x0fTuple_Expr_Expr\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"5\n\x10Tuple_Expr_Float\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\n\n\x02_2\x18\x02 \x01(\x01"6\n\x11Tuple_String_Expr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"2\n\x18Tuple_String_List_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x03(\t"F\n\x19Tuple_String_SpColumnExpr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1d\n\x02_2\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"@\n\x16Tuple_String_SpVariant\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"-\n\x13Tuple_String_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x01(\t"\xa4\x01\n\x08Language\x12*\n\rjava_language\x18\x01 \x01(\x0b\x32\x11.ast.JavaLanguageH\x00\x12.\n\x0fpython_language\x18\x02 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x03 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x42\x0e\n\x0csealed_value"/\n\x0ePythonLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version".\n\rScalaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"-\n\x0cJavaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"E\n\x07Version\x12\r\n\x05label\x18\x01 \x01(\t\x12\r\n\x05major\x18\x02 \x01(\x03\x12\r\n\x05minor\x18\x03 \x01(\x03\x12\r\n\x05patch\x18\x04 \x01(\x03"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"v\n\x06\x46nName\x12\'\n\x0c\x66n_name_flat\x18\x01 \x01(\x0b\x32\x0f.ast.FnNameFlatH\x00\x12\x33\n\x12\x66n_name_structured\x18\x02 \x01(\x0b\x32\x15.ast.FnNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1a\n\nFnNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t" \n\x10\x46nNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"\xc8\x01\n\x0fTableFnCallType\x12%\n\x1btable_fn_call_type__builtin\x18\x01 \x01(\x08H\x00\x12+\n!table_fn_call_type__call_table_fn\x18\x02 \x01(\x08H\x00\x12.\n$table_fn_call_type__session_table_fn\x18\x03 \x01(\x08H\x00\x12&\n\x1ctable_fn_call_type__table_fn\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xaa\x02\n\x18SpWindowRelativePosition\x12\x32\n(sp_window_relative_position__current_row\x18\x01 \x01(\x08H\x00\x12W\n%sp_window_relative_position__position\x18\x02 \x01(\x0b\x32&.ast.SpWindowRelativePosition_PositionH\x00\x12:\n0sp_window_relative_position__unbounded_following\x18\x03 \x01(\x08H\x00\x12:\n0sp_window_relative_position__unbounded_preceding\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant".\n!SpWindowRelativePosition_Position\x12\t\n\x01n\x18\x01 \x01(\x03"q\n\x0bPdIndexExpr\x12 \n\x08\x66lex_ord\x18\x01 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x02 \x01(\x0b\x32\x08.ast.KeyH\x00\x12\x17\n\x03ord\x18\x03 \x01(\x0b\x32\x08.ast.OrdH\x00\x42\x0e\n\x0csealed_value"\x1b\n\x03Ord\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1f\n\x07\x46lexOrd\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1b\n\x03Key\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\xb9\x02\n\x12PdProjectIndexExpr\x12/\n\x10\x62ool_filter_list\x18\x01 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x12)\n\rflex_ord_list\x18\x02 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12+\n\x0e\x66lex_ord_range\x18\x03 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12 \n\x08key_list\x18\x04 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12"\n\tkey_range\x18\x05 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x06 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12"\n\tord_range\x18\x07 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"Z\n\x0c\x46lexOrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"=\n\x08KeyRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr""\n\x07OrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr"&\n\x0b\x46lexOrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr""\n\x07KeyList\x12\x17\n\x04keys\x18\x01 \x01(\x0b\x32\t.ast.Expr"+\n\x0e\x42oolFilterList\x12\x19\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\t.ast.Expr"}\n\rSpFlattenMode\x12\x1f\n\x15sp_flatten_mode_array\x18\x01 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x02 \x01(\x08H\x00\x12 \n\x16sp_flatten_mode_object\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"P\n\x0eSpTableVariant\x12\x1a\n\x10sp_session_table\x18\x01 \x01(\x08H\x00\x12\x17\n\rsp_table_init\x18\x02 \x01(\x08H\x00\x42\t\n\x07variant"\xc0\x01\n\nSpSaveMode\x12\x1d\n\x13sp_save_mode_append\x18\x01 \x01(\x08H\x00\x12&\n\x1csp_save_mode_error_if_exists\x18\x02 \x01(\x08H\x00\x12\x1d\n\x13sp_save_mode_ignore\x18\x03 \x01(\x08H\x00\x12 \n\x16sp_save_mode_overwrite\x18\x04 \x01(\x08H\x00\x12\x1f\n\x15sp_save_mode_truncate\x18\x05 \x01(\x08H\x00\x42\t\n\x07variant"\x88\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__cross\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x02 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__inner\x18\x03 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x04 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x07 \x01(\x08H\x00\x42\t\n\x07variant"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x03 \x01(\x08H\x00\x12#\n\x19sp_timestamp_time_zone_tz\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xa2\x06\n\nSpDataType\x12)\n\rsp_array_type\x18\x01 \x01(\x0b\x32\x10.ast.SpArrayTypeH\x00\x12\x18\n\x0esp_binary_type\x18\x02 \x01(\x08H\x00\x12\x19\n\x0fsp_boolean_type\x18\x03 \x01(\x08H\x00\x12\x16\n\x0csp_byte_type\x18\x04 \x01(\x08H\x00\x12\x37\n\x14sp_column_identifier\x18\x05 \x01(\x0b\x32\x17.ast.SpColumnIdentifierH\x00\x12\x16\n\x0csp_date_type\x18\x06 \x01(\x08H\x00\x12-\n\x0fsp_decimal_type\x18\x07 \x01(\x0b\x32\x12.ast.SpDecimalTypeH\x00\x12\x18\n\x0esp_double_type\x18\x08 \x01(\x08H\x00\x12\x17\n\rsp_float_type\x18\t \x01(\x08H\x00\x12\x1b\n\x11sp_geography_type\x18\n \x01(\x08H\x00\x12\x1a\n\x10sp_geometry_type\x18\x0b \x01(\x08H\x00\x12\x19\n\x0fsp_integer_type\x18\x0c \x01(\x08H\x00\x12\x16\n\x0csp_long_type\x18\r \x01(\x08H\x00\x12%\n\x0bsp_map_type\x18\x0e \x01(\x0b\x32\x0e.ast.SpMapTypeH\x00\x12\x16\n\x0csp_null_type\x18\x0f \x01(\x08H\x00\x12\x17\n\rsp_short_type\x18\x10 \x01(\x08H\x00\x12+\n\x0esp_string_type\x18\x11 \x01(\x0b\x32\x11.ast.SpStringTypeH\x00\x12-\n\x0fsp_struct_field\x18\x12 \x01(\x0b\x32\x12.ast.SpStructFieldH\x00\x12+\n\x0esp_struct_type\x18\x13 \x01(\x0b\x32\x11.ast.SpStructTypeH\x00\x12\x16\n\x0csp_time_type\x18\x14 \x01(\x08H\x00\x12\x31\n\x11sp_timestamp_type\x18\x15 \x01(\x0b\x32\x14.ast.SpTimestampTypeH\x00\x12\x19\n\x0fsp_variant_type\x18\x16 \x01(\x08H\x00\x12+\n\x0esp_vector_type\x18\x17 \x01(\x0b\x32\x11.ast.SpVectorTypeH\x00\x42\t\n\x07variant">\n\x0bSpArrayType\x12\x12\n\nstructured\x18\x01 \x01(\x08\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType""\n\x12SpColumnIdentifier\x12\x0c\n\x04name\x18\x01 \x01(\t"1\n\rSpDecimalType\x12\x11\n\tprecision\x18\x01 \x01(\x03\x12\r\n\x05scale\x18\x02 \x01(\x03"c\n\tSpMapType\x12\x1f\n\x06key_ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08\x12!\n\x08value_ty\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType";\n\x0cSpStringType\x12+\n\x06length\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"y\n\rSpStructField\x12\x32\n\x11\x63olumn_identifier\x18\x01 \x01(\x0b\x32\x17.ast.SpColumnIdentifier\x12"\n\tdata_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x10\n\x08nullable\x18\x03 \x01(\x08"F\n\x0cSpStructType\x12"\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x12.ast.SpStructField\x12\x12\n\nstructured\x18\x02 \x01(\x08">\n\x0fSpTimestampType\x12+\n\ttime_zone\x18\x01 \x01(\x0b\x32\x18.ast.SpTimestampTimeZone">\n\x0cSpVectorType\x12\x11\n\tdimension\x18\x01 \x01(\x03\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType"\xc2\x05\n\tSpVariant\x12<\n\x17sp_variant__big_decimal\x18\x01 \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12\x34\n\x13sp_variant__big_int\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12/\n\x10sp_variant__bool\x18\x03 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x31\n\x11sp_variant__bytes\x18\x04 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12/\n\x10sp_variant__date\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12\x33\n\x12sp_variant__double\x18\x06 \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\x00\x12\x31\n\x11sp_variant__float\x18\x07 \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12-\n\x0fsp_variant__int\x18\x08 \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12/\n\x10sp_variant__list\x18\t \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x33\n\x12sp_variant__object\x18\n \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12\x33\n\x12sp_variant__string\x18\x0b \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__time\x18\x0c \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x39\n\x15sp_variant__timestamp\x18\r \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x42\x0e\n\x0csealed_value"7\n\x10SpVariant_Object\x12#\n\x01v\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"3\n\x0eSpVariant_List\x12!\n\x01v\x18\x01 \x03(\x0b\x32\x16.ast.Map_String_String" \n\x13SpVariant_Timestamp\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Date\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Time\x12\t\n\x01v\x18\x01 \x01(\x04"\x1c\n\x0fSpVariant_Bytes\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1d\n\x10SpVariant_String\x12\t\n\x01v\x18\x01 \x01(\t"\x1b\n\x0eSpVariant_Bool\x12\t\n\x01v\x18\x01 \x01(\x08"\x1d\n\x10SpVariant_BigInt\x12\t\n\x01v\x18\x01 \x01(\x0c"!\n\x14SpVariant_BigDecimal\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1a\n\rSpVariant_Int\x12\t\n\x01v\x18\x01 \x01(\x03"\x1c\n\x0fSpVariant_Float\x12\t\n\x01v\x18\x01 \x01(\x04"\x1d\n\x10SpVariant_Double\x12\t\n\x01v\x18\x01 \x01(\x04"\x91\x01\n\x0bSpTableName\x12\x32\n\x12sp_table_name_flat\x18\x01 \x01(\x0b\x32\x14.ast.SpTableNameFlatH\x00\x12>\n\x18sp_table_name_structured\x18\x02 \x01(\x0b\x32\x1a.ast.SpTableNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1f\n\x0fSpTableNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t"%\n\x15SpTableNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"=\n\x15StagedPandasDataframe\x12$\n\ntemp_table\x18\x01 \x01(\x0b\x32\x10.ast.SpTableName"\xe1\x01\n\x0fSpDataframeData\x12<\n\x17sp_dataframe_data__list\x18\x01 \x01(\x0b\x32\x19.ast.SpDataframeData_ListH\x00\x12@\n\x19sp_dataframe_data__pandas\x18\x02 \x01(\x0b\x32\x1b.ast.SpDataframeData_PandasH\x00\x12>\n\x18sp_dataframe_data__tuple\x18\x03 \x01(\x0b\x32\x1a.ast.SpDataframeData_TupleH\x00\x42\x0e\n\x0csealed_value"-\n\x14SpDataframeData_List\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr".\n\x15SpDataframeData_Tuple\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr"?\n\x16SpDataframeData_Pandas\x12%\n\x01v\x18\x01 \x01(\x0b\x32\x1a.ast.StagedPandasDataframe"\xab\x01\n\x11SpDataframeSchema\x12@\n\x19sp_dataframe_schema__list\x18\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSchema_ListH\x00\x12\x44\n\x1bsp_dataframe_schema__struct\x18\x02 \x01(\x0b\x32\x1d.ast.SpDataframeSchema_StructH\x00\x42\x0e\n\x0csealed_value"$\n\x16SpDataframeSchema_List\x12\n\n\x02vs\x18\x01 \x03(\t"8\n\x18SpDataframeSchema_Struct\x12\x1c\n\x01v\x18\x01 \x01(\x0b\x32\x11.ast.SpStructType"&\n\nSpCallable\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t"k\n\x0bSrcPosition\x12\x12\n\nend_column\x18\x01 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x02 \x01(\x03\x12\x0c\n\x04\x66ile\x18\x03 \x01(\t\x12\x14\n\x0cstart_column\x18\x04 \x01(\x03\x12\x12\n\nstart_line\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"\x8c\x01\n\x07Request\x12\x17\n\x04\x62ody\x18\x01 \x03(\x0b\x32\t.ast.Stmt\x12\x1a\n\x12\x63lient_ast_version\x18\x02 \x01(\x03\x12&\n\x0f\x63lient_language\x18\x03 \x01(\x0b\x32\r.ast.Language\x12$\n\x0e\x63lient_version\x18\x04 \x01(\x0b\x32\x0c.ast.Version"%\n\x08Response\x12\x19\n\x04\x62ody\x18\x01 \x03(\x0b\x32\x0b.ast.Result"\xde\x05\n\x05\x43onst\x12-\n\x0f\x62ig_decimal_val\x18\x01 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x02 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x03 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x04 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x05 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x06 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x07 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\x08 \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\t \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\n \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0b \x01(\x0b\x32\x0c.ast.NullValH\x00\x12-\n\x0fpython_date_val\x18\x0c \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\r \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x0e \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12-\n\x0fsp_datatype_val\x18\x0f \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12$\n\nstring_val\x18\x10 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x11 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x12 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"(\n\x07NoneVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"(\n\x07NullVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"3\n\x07\x42oolVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x08"4\n\x08Int32Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"4\n\x08Int64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"6\n\nFloat64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x01"5\n\tBigIntVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"U\n\rBigDecimalVal\x12\r\n\x05scale\x18\x01 \x01(\x03\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x03 \x01(\x0c"5\n\tStringVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\t"5\n\tBinaryVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"8\n\x0cTimestampVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07\x44\x61teVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07TimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"\xc1\x01\n\x12PythonTimestampVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x03 \x01(\x03\x12\x0e\n\x06minute\x18\x04 \x01(\x03\x12\r\n\x05month\x18\x05 \x01(\x03\x12\x0e\n\x06second\x18\x06 \x01(\x03\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x08 \x01(\x0b\x32\x13.ast.PythonTimeZone\x12\x0c\n\x04year\x18\t \x01(\x03"X\n\rPythonDateVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\r\n\x05month\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x0c\n\x04hour\x18\x01 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x17\n\x04\x62ody\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"Q\n\rSpDatatypeVal\x12!\n\x08\x64\x61tatype\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x06IfExpr\x12\x17\n\x04\x63ond\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition">\n\x07SomeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Expr"@\n\x08TupleVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"?\n\x07ListVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"F\n\tSeqMapVal\x12\x1a\n\x03kvs\x18\x01 \x03(\x0b\x32\r.ast.TupleVal\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\tApplyExpr\x12\x1a\n\x02\x66n\x18\x01 \x01(\x0b\x32\x0e.ast.FnRefExpr\x12*\n\nnamed_args\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x1b\n\x08pos_args\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xda\x01\n\tFnRefExpr\x12$\n\nbuiltin_fn\x18\x01 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12/\n\x10session_table_fn\x18\x02 \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12\x30\n\x10stored_procedure\x18\x03 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12 \n\x08table_fn\x18\x04 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12\x17\n\x03udf\x18\x05 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"E\n\tBuiltinFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xb3\x01\n\x0fStoredProcedure\x12\x34\n\x10log_on_exception\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x30\n\x10statement_params\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"\xad\x05\n\x03Udf\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12$\n\x1c\x65xternal_access_integrations\x18\x02 \x03(\t\x12\x1d\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x0f.ast.SpCallable\x12\x15\n\rif_not_exists\x18\x04 \x01(\x08\x12\x11\n\timmutable\x18\x05 \x01(\x08\x12!\n\x07imports\x18\x06 \x03(\x0b\x32\x10.ast.SpTableName\x12)\n\x0binput_types\x18\x07 \x01(\x0b\x32\x14.ast.List_SpDataType\x12\x14\n\x0cis_permanent\x18\x08 \x01(\x08\x12&\n\x06kwargs\x18\t \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x33\n\x0emax_batch_size\x18\n \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x19\n\x04name\x18\x0b \x01(\x0b\x32\x0b.ast.FnName\x12\x10\n\x08packages\x18\x0c \x03(\t\x12\x10\n\x08parallel\x18\r \x01(\x03\x12\x0f\n\x07replace\x18\x0e \x01(\x08\x12$\n\x0breturn_type\x18\x0f \x01(\x0b\x32\x0f.ast.SpDataType\x12)\n\x07secrets\x18\x10 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06secure\x18\x11 \x01(\x08\x12\x1b\n\x13source_code_display\x18\x12 \x01(\x08\x12\x1d\n\x03src\x18\x13 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0estage_location\x18\x14 \x01(\t\x12\x32\n\x10statement_params\x18\x15 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06strict\x18\x16 \x01(\x08"J\n\x0eSessionTableFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x07TableFn\x12\'\n\tcall_type\x18\x01 \x01(\x0b\x32\x14.ast.TableFnCallType\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"F\n\x07UnaryOp\x12\x17\n\x03neg\x18\x01 \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03not\x18\x02 \x01(\x0b\x32\x08.ast.NotH\x00\x42\t\n\x07variant"\xc6\x03\n\x05\x42inOp\x12\x17\n\x03\x61\x64\x64\x18\x01 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x02 \x01(\x0b\x32\x08.ast.AndH\x00\x12\x1e\n\x07\x62it_and\x18\x03 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x04 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x05 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12\x17\n\x03\x64iv\x18\x06 \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x07 \x01(\x0b\x32\x07.ast.EqH\x00\x12\x17\n\x03geq\x18\x08 \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18\t \x01(\x0b\x32\x07.ast.GtH\x00\x12\x17\n\x03leq\x18\n \x01(\x0b\x32\x08.ast.LeqH\x00\x12\x15\n\x02lt\x18\x0b \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18\x0c \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18\r \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neq\x18\x0e \x01(\x0b\x32\x08.ast.NeqH\x00\x12\x15\n\x02or\x18\x0f \x01(\x0b\x32\x07.ast.OrH\x00\x12\x17\n\x03pow\x18\x10 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x17\n\x03sub\x18\x11 \x01(\x0b\x32\x08.ast.SubH\x00\x42\t\n\x07variant"@\n\x03Not\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41nd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Or\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02\x45q\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Neq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Lt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Leq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Gt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Geq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"@\n\x03Neg\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41\x64\x64\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Sub\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mul\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x44iv\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mod\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Pow\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itAnd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x05\x42itOr\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itXor\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x08RangeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05start\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x04 \x01(\x0b\x32\t.ast.Expr"\xe3\x02\n\x10SpWindowSpecExpr\x12\x36\n\x14sp_window_spec_empty\x18\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12;\n\x17sp_window_spec_order_by\x18\x02 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x43\n\x1bsp_window_spec_partition_by\x18\x03 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x45\n\x1csp_window_spec_range_between\x18\x04 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x43\n\x1bsp_window_spec_rows_between\x18\x05 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x42\t\n\x07variant"V\n\x11SpWindowSpecEmpty\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x02 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"q\n\x13SpWindowSpecOrderBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"u\n\x17SpWindowSpecPartitionBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb7\x01\n\x18SpWindowSpecRangeBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb6\x01\n\x17SpWindowSpecRowsBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xffW\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12+\n\x11trait_fn_ref_expr\x18\x03 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x05 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x06 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x07 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x08 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\t \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\n \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\x0b \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x0c \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\r \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12/\n\x13trait_sp_write_file\x18\x0e \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x0f \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x10 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x11 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x12 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x13 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x14 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x15 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x16 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x17 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x18 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x19 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x1a \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1b \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1c \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1d \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1e \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1f \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18 \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18! \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18" \x01(\x0b\x32\x07.ast.GtH\x00\x12\x1e\n\x07if_expr\x18# \x01(\x0b\x32\x0b.ast.IfExprH\x00\x12"\n\tint32_val\x18$ \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18% \x01(\x0b\x32\r.ast.Int64ValH\x00\x12\x17\n\x03leq\x18& \x01(\x0b\x32\x08.ast.LeqH\x00\x12 \n\x08list_val\x18\' \x01(\x0b\x32\x0c.ast.ListValH\x00\x12\x15\n\x02lt\x18( \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18) \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18* \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neg\x18+ \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03neq\x18, \x01(\x0b\x32\x08.ast.NeqH\x00\x12 \n\x08none_val\x18- \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12\x17\n\x03not\x18. \x01(\x0b\x32\x08.ast.NotH\x00\x12 \n\x08null_val\x18/ \x01(\x0b\x32\x0c.ast.NullValH\x00\x12\x15\n\x02or\x18\x30 \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x31 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x32 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x33 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x34 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x35 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x36 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x37 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x38 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x39 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18: \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18; \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18< \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18= \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18> \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18? \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18@ \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18\x41 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x42 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x43 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x44 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x45 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12\x34\n\x13sp_column_case_when\x18\x46 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12+\n\x0esp_column_cast\x18G \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18H \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18I \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18J \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18K \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18L \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18M \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18N \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18O \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18P \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18Q \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18R \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18S \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18T \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18U \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18V \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18W \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18X \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18Y \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18Z \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18[ \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18\\ \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18] \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18^ \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18_ \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18` \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x61 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x62 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x63 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x64 \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x65 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18\x66 \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18g \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18h \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18i \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18j \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18k \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18l \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18m \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18n \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18o \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18p \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18q \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18r \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18s \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18t \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18u \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18v \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18w \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18x \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18y \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18z \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18{ \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18| \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18} \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18~ \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x7f \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12Y\n&sp_dataframe_join__table_function__map\x18\x80\x01 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x34\n\x12sp_dataframe_limit\x18\x81\x01 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x46\n\x1csp_dataframe_na_drop__python\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x44\n\x1bsp_dataframe_na_drop__scala\x18\x83\x01 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x84\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x85\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x86\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x87\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x88\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x8a\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x8b\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x8c\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x8d\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x8e\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x8f\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x90\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x91\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x92\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x93\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x94\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x95\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x96\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x97\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x98\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x99\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x9a\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x9b\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x9c\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x9d\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x9e\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x9f\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\xa0\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\xa1\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\xa2\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12.\n\x0fsp_datatype_val\x18\xa3\x01 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12%\n\nsp_flatten\x18\xa4\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\xa5\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xa6\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xa7\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xa8\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xa9\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xaa\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xab\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xac\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xad\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xae\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xaf\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\xb0\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\xb1\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\xb2\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\xb3\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xb4\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xb5\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xb6\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xb7\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xb8\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xb9\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xba\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xbb\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_row\x18\xbc\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xbd\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xbe\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xbf\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xc0\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xc1\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xc2\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xc3\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xc4\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xc5\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xc6\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xc7\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xc8\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xc9\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xca\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xcb\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xcc\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xcd\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xce\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"@\n\x03Ref\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"W\n\x08\x43\x61stExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03typ\x18\x02 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x95\x01\n\x0bPdDataframe\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x03 \x01(\x0b\x32\t.ast.Type\x12\x18\n\x05index\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x01\n\x08PdDropNa\x12\x17\n\x04\x61xis\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06subset\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06thresh\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x12PdDataframeSetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x0fPdDataframeILoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x06PdRepr\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\x12\x13\n\x0bmax_columns\x18\x02 \x01(\x03\x12\x10\n\x08max_rows\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x13\n\x01v\x18\x05 \x01(\x0b\x32\x08.ast.Ref"u\n\x0cPdReprResult\x12\x13\n\x0bnum_columns\x18\x01 \x01(\x03\x12\x18\n\x10num_head_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x10\n\x08num_rows\x18\x04 \x01(\x03\x12\r\n\x05value\x18\x05 \x01(\x0c"\x9e\x01\n\x06Result\x12!\n\x0btrait_error\x18\x01 \x01(\x0b\x32\n.ast.ErrorH\x00\x12\x1e\n\x07\x65val_ok\x18\x02 \x01(\x0b\x32\x0b.ast.EvalOkH\x00\x12\x46\n\x1csession_reset_required_error\x18\x03 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"\xb3\x06\n\nEvalResult\x12!\n\x0btrait_const\x18\x01 \x01(\x0b\x32\n.ast.ConstH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x02 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x03 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x04 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x05 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x06 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x07 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x08 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\t \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\n \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\x0b \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0c \x01(\x0b\x32\x0c.ast.NullValH\x00\x12+\n\x0epd_repr_result\x18\r \x01(\x0b\x32\x11.ast.PdReprResultH\x00\x12-\n\x0fpython_date_val\x18\x0e \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x0f \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x10 \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12-\n\x0fsp_datatype_val\x18\x11 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12$\n\nstring_val\x18\x12 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x13 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x14 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"P\n\x06\x45valOk\x12\x1d\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x0f.ast.EvalResult\x12\x0b\n\x03uid\x18\x02 \x01(\x03\x12\x1a\n\x06var_id\x18\x03 \x01(\x0b\x32\n.ast.VarId"Z\n\x05\x45rror\x12\x46\n\x1csession_reset_required_error\x18\x01 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"D\n\x19SessionResetRequiredError\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xcc\x02\n\x0cSpColumnExpr\x12\x34\n\x13sp_column_case_when\x18\x01 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12\x36\n\x14sp_column_equal_null\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12)\n\rsp_column_ref\x18\x03 \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18\x04 \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x05 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\x06 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x42\t\n\x07variant"8\n\x0bSpColumnRef\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"m\n\x0fSpColumnSqlExpr\x12.\n\x08\x64\x66_alias\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\nSpCaseExpr\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05value\x18\x03 \x01(\x0b\x32\t.ast.Expr"Q\n\x10SpColumnCaseWhen\x12\x1e\n\x05\x63\x61ses\x18\x01 \x03(\x0b\x32\x0f.ast.SpCaseExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x91\n\n\nSpColumnFn\x12-\n\x0fsp_column_alias\x18\x01 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x03 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x04 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x05 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18\x06 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18\x07 \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18\x08 \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12<\n\x17sp_column_in__dataframe\x18\t \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18\n \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18\x0b \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18\x0c \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18\r \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18\x0e \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12>\n\x18sp_column_string_collate\x18\x0f \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18\x10 \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18\x11 \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18\x12 \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18\x13 \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18\x14 \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18\x15 \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18\x16 \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x17 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\\\n\x14SpColumnApply_String\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x0bSpColumnAsc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x0fSpColumnBetween\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"I\n\x10SpColumnEqualNan\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x11SpColumnEqualNull\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"o\n\x14SpColumnIn_Dataframe\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x0eSpColumnIn_Seq\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"G\n\x0eSpColumnIsNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x0cSpColumnName\x12\r\n\x05\x61lias\x18\x01 \x01(\t\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x0cSpColumnOver\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"l\n\x13SpColumnWithinGroup\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x04\x63ols\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"g\n\x12SpColumnStringLike\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x14SpColumnStringRegexp\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\nparameters\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x18SpColumnStringStartsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"j\n\x16SpColumnStringEndsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"}\n\x14SpColumnStringSubstr\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x15SpColumnStringCollate\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12!\n\x0e\x63ollation_spec\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"k\n\x16SpColumnStringContains\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xfa*\n\x0fSpDataframeExpr\x12H\n trait_sp_copyable_dataframe_expr\x18\x01 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x02 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x03 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12\'\n\x0csp_copy_into\x18\x04 \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18\x05 \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18\x06 \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18\x07 \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\x08 \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\t \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\n \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x0b \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x0c \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x37\n\x14sp_dataframe_collect\x18\r \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x33\n\x12sp_dataframe_count\x18\x0e \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12<\n\x17sp_dataframe_cross_join\x18\x0f \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x39\n\x15sp_dataframe_describe\x18\x10 \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\x11 \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18\x12 \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x13 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18\x14 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x15 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x16 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18\x17 \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12;\n\x16sp_dataframe_intersect\x18\x18 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18\x19 \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x1a \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x1b \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x1c \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x1d \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x1e \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18\x1f \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18! \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18" \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18# \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18$ \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18% \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18& \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x35\n\x13sp_dataframe_sample\x18\' \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18( \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x42\n\x1asp_dataframe_select__exprs\x18) \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x31\n\x11sp_dataframe_show\x18* \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x31\n\x11sp_dataframe_sort\x18+ \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12O\n!sp_dataframe_stat_approx_quantile\x18, \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12:\n\x16sp_dataframe_stat_corr\x18- \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x38\n\x15sp_dataframe_stat_cov\x18. \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x43\n\x1bsp_dataframe_stat_cross_tab\x18/ \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x43\n\x1bsp_dataframe_stat_sample_by\x18\x30 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18\x31 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18\x32 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18\x33 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18\x34 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18\x35 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18\x36 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18\x37 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12M\n sp_dataframe_with_column_renamed\x18\x38 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12@\n\x19sp_dataframe_with_columns\x18\x39 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_dataframe_write\x18: \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12$\n\nsp_flatten\x18; \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12(\n\x0csp_generator\x18< \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18= \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18> \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18? \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18@ \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x41 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x42 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x43 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x44 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12S\n#sp_relational_grouped_dataframe_agg\x18\x45 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\x46 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18G \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18H \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18I \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18J \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18K \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18L \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18M \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18N \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18O \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18P \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1c\n\x06sp_sql\x18Q \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18R \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18S \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18T \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12-\n\x0fsp_write_pandas\x18U \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"H\n\x0fSpDataframeShow\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8c\x01\n\x10SpDataframeCount\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xd1\x01\n\x12SpDataframeCollect\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x0e\x63\x61se_sensitive\x18\x02 \x01(\x08\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x18\n\x10log_on_exception\x18\x04 \x01(\x08\x12\x0f\n\x07no_wait\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String"~\n\x11SpCreateDataframe\x12"\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06schema\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeSchema\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x80\x03\n\rSpWritePandas\x12\x19\n\x11\x61uto_create_table\x18\x01 \x01(\x08\x12/\n\nchunk_size\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x13\n\x0b\x63ompression\x18\x03 \x01(\t\x12\x19\n\x11\x63reate_temp_table\x18\x04 \x01(\x08\x12 \n\x02\x64\x66\x18\x05 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06kwargs\x18\x06 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x10\n\x08on_error\x18\x07 \x01(\t\x12\x11\n\toverwrite\x18\x08 \x01(\x08\x12\x10\n\x08parallel\x18\t \x01(\x03\x12\x19\n\x11quote_identifiers\x18\n \x01(\x08\x12\x1d\n\x03src\x18\x0b \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\ntable_name\x18\x0c \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\r \x01(\t"\xb4\x01\n\tSpFlatten\x12\x18\n\x05input\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x02 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x03 \x01(\x08\x12*\n\x04path\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x0bSpGenerator\x12\x1a\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x12time_limit_seconds\x18\x04 \x01(\x03\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\x8c\x01\n\x07SpRange\x12(\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05start\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"P\n\x05SpSql\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\r\n\x05query\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"s\n\x11SpStoredProcedure\x12\x1c\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x91\x01\n\x07SpTable\x12!\n\x19is_temp_table_for_cleanup\x18\x01 \x01(\x08\x12\x1e\n\x04name\x18\x02 \x01(\x0b\x32\x10.ast.SpTableName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\x07variant\x18\x04 \x01(\x0b\x32\x13.ast.SpTableVariant"|\n\x0fSpTableFunction\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x87\x01\n\x17SpDataframeNaDrop_Scala\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x15min_non_nulls_per_row\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xb7\x01\n\x18SpDataframeNaDrop_Python\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03how\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12+\n\x06thresh\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"\xb9\x01\n\x11SpDataframeNaFill\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12\x18\n\x05value\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\'\n\tvalue_map\x18\x05 \x01(\x0b\x32\x14.ast.Map_String_Expr"\xae\x02\n\x14SpDataframeNaReplace\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12+\n\x0freplacement_map\x18\x02 \x01(\x0b\x32\x12.ast.Map_Expr_Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12\'\n\x0fto_replace_list\x18\x05 \x01(\x0b\x32\x0e.ast.List_Expr\x12#\n\x10to_replace_value\x18\x06 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05value\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x06values\x18\x08 \x01(\x0b\x32\x0e.ast.List_Expr"r\n\x0eSpDataframeAgg\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x05\x65xprs\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"a\n\x10SpDataframeAlias\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"e\n\x10SpDataframeApply\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\x0eSpDataframeCol\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xd9\x01\n\x14SpDataframeCrossJoin\x12!\n\x03lhs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeCube\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"v\n\x13SpDataframeDescribe\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x13SpDataframeDistinct\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeDrop\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x19SpDataframeDropDuplicates\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x11SpDataframeExcept\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x11SpDataframeFilter\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xdf\x01\n\x12SpDataframeFlatten\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05input\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x03 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x04 \x01(\x08\x12*\n\x04path\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x10SpDataframeFirst\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"u\n\x12SpDataframeGroupBy\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x14SpDataframeIntersect\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x02\n\x0fSpDataframeJoin\x12\x1c\n\tjoin_expr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12"\n\x0fmatch_condition\x18\x05 \x01(\x0b\x32\t.ast.Expr\x12!\n\x03rhs\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1f\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12(\n\njoin_exprs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\'\n\rusing_columns\x18\x05 \x01(\x0b\x32\x10.ast.List_String\x12\x10\n\x08variadic\x18\x06 \x01(\x08"n\n\x10SpDataframeLimit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x02 \x01(\x03\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa1\x01\n\x16SpDataframeNaturalJoin\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x17SpDataframePivot_Column\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc9\x01\n\x16SpDataframeRandomSplit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12)\n\x04seed\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0f\n\x07weights\x18\x05 \x03(\x01"\xa8\x01\n\x11SpDataframeRename\x12 \n\rcol_or_mapper\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x30\n\nnew_column\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"t\n\x11SpDataframeRollup\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x01\n\x11SpDataframeSample\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\x03num\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12:\n\x14probability_fraction\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"{\n\x17SpDataframeSelect_Exprs\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x65xprs\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xa0\x01\n\x0fSpDataframeSort\x12\x1c\n\tascending\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x02 \x03(\x0b\x32\t.ast.Expr\x12\x15\n\rcols_variadic\x18\x03 \x01(\x08\x12 \n\x02\x64\x66\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"x\n\x10SpDataframeUnion\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x13SpDataframeUnionAll\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x81\x01\n\x19SpDataframeUnionAllByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"~\n\x16SpDataframeUnionByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x10SpDataframeWhere\x12$\n\tcondition\x18\x01 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x82\x01\n\x15SpDataframeWithColumn\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x10\n\x08\x63ol_name\x18\x02 \x01(\t\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x1cSpDataframeWithColumnRenamed\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x16SpDataframeWithColumns\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x04 \x03(\x0b\x32\t.ast.Expr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x02 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"O\n\x0eSpGroupingSets\x12\x1e\n\x04sets\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xe4\x01\n\x1dSpDataframeAnalyticsMovingAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x10\n\x08order_by\x18\x05 \x03(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x0cwindow_sizes\x18\x07 \x03(\x03"\xe6\x01\n!SpDataframeAnalyticsCumulativeAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x12\n\nis_forward\x18\x05 \x01(\x08\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xc9\x01\n\x1eSpDataframeAnalyticsComputeLag\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x0c\n\x04lags\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xcb\x01\n\x1fSpDataframeAnalyticsComputeLead\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\r\n\x05leads\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xfd\x01\n!SpDataframeAnalyticsTimeSeriesAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x18\n\x10sliding_interval\x18\x05 \x01(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08time_col\x18\x07 \x01(\t\x12\x0f\n\x07windows\x18\x08 \x03(\t"\x84\x04\n\x17SpCopyableDataframeExpr\x12J\n!trait_sp_dataframe_reader_options\x18\x01 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x02 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12\'\n\x0csp_copy_into\x18\x03 \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\'\n\x0csp_read_avro\x18\x04 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x05 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x06 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x07 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x08 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\t \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\n \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x42\t\n\x07variant"6\n\x18SpDataframeReaderOptions\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"5\n\x17SpDataframeReaderSchema\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"9\n\nSpReadAvro\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadCsv\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"9\n\nSpReadJson\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadOrc\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"<\n\rSpReadParquet\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition":\n\x0bSpReadTable\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadXml\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xcb\x01\n\nSpCopyInto\x12*\n\x07options\x18\x01 \x01(\x0b\x32\x19.ast.Map_String_SpVariant\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x03 \x01(\t\x12-\n\x13target_column_names\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\xe1\x03\n\x11SpDataframeWriter\x12J\n!trait_sp_dataframe_writer_options\x18\x01 \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x02 \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12/\n\x13trait_sp_write_file\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12\x43\n\x1bsp_write_copy_into_location\x18\x04 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x05 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x06 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x07 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x08 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x42\t\n\x07variant"7\n\x19SpDataframeWriterSaveMode\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x18SpDataframeWriterOptions\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"w\n\x10SpDataframeWrite\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tsave_mode\x18\x02 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xe2\x01\n\x0bSpWriteFile\x12\x43\n\x1bsp_write_copy_into_location\x18\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x02 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x04 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x42\t\n\x07variant"\xae\x02\n\nSpWriteCsv\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xaf\x02\n\x0bSpWriteJson\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x02\n\x0eSpWriteParquet\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xea\x02\n\x0cSpWriteTable\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\'\n\x0f\x63lustering_keys\x18\x02 \x01(\x0b\x32\x0e.ast.List_Expr\x12\x14\n\x0c\x63olumn_order\x18\x03 \x01(\t\x12-\n\x07\x63omment\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x19\n\x11\x63reate_temp_table\x18\x05 \x01(\x08\x12\x16\n\x02id\x18\x06 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04mode\x18\x07 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String\x12$\n\ntable_name\x18\n \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\x0b \x01(\t"\xab\x03\n\x17SpWriteCopyIntoLocation\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x36\n\x10\x66ile_format_name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x66ile_format_type\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x13\x66ormat_type_options\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x06 \x01(\x08\x12\x16\n\x02id\x18\x07 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x08 \x01(\t\x12\x1f\n\x0cpartition_by\x18\t \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\n \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x0b \x03(\x0b\x32\x18.ast.Tuple_String_String"\xe3\x01\n\x1eSpDataframeCreateOrReplaceView\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07is_temp\x18\x03 \x01(\x08\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xfa\x01\n&SpDataframeCreateOrReplaceDynamicTable\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03lag\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x11\n\twarehouse\x18\x07 \x01(\t"\xb7\x03\n\x18SpDataframeCopyIntoTable\x12,\n\x0c\x63opy_options\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x66iles\x18\x03 \x03(\t\x12\x33\n\x13\x66ormat_type_options\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12-\n\x07pattern\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x12\n\ntable_name\x18\x08 \x03(\t\x12\x16\n\x0etarget_columns\x18\t \x03(\t\x12"\n\x0ftransformations\x18\n \x03(\x0b\x32\t.ast.Expr\x12\x35\n\x0fvalidation_mode\x18\x0b \x01(\x0b\x32\x1c.google.protobuf.StringValue"\x8d\x01\n\x16SpDataframeCacheResult\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb7\x01\n\x1dSpDataframeStatApproxQuantile\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x12\n\npercentile\x18\x03 \x03(\x01\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x01\n\x13SpDataframeStatCorr\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb1\x01\n\x12SpDataframeStatCov\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb6\x01\n\x17SpDataframeStatCrossTab\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x9c\x01\n\x17SpDataframeStatSampleBy\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\tfractions\x18\x03 \x03(\x0b\x32\x15.ast.Tuple_Expr_Float\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa8\x06\n SpRelationalGroupedDataframeExpr\x12\x31\n\x11sp_dataframe_cube\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x02 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x03 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x05 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x07 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x35\n\x13sp_dataframe_rollup\x18\x08 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\t \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12S\n#sp_relational_grouped_dataframe_ref\x18\x0b \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x42\t\n\x07variant"X\n\x1fSpRelationalGroupedDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xc9\x01\n#SpRelationalGroupedDataframeAgg_Map\x12 \n\x05\x65xprs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x02 \x01(\x08\x12\x39\n\ngrouped_df\x18\x03 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xb7\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12 \n\x05\x65xprs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x9c\x01\n\x1fSpRelationalGroupedDataframeAgg\x12\x1f\n\x05\x65xprs\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x10\n\x08\x61gg_name\x18\x01 \x01(\t\x12\x17\n\x04\x63ols\x18\x02 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x03 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"}\n!SpRelationalGroupedDataframeCount\x12\x39\n\ngrouped_df\x18\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"^\n\x05SpRow\x12\x1f\n\x05names\x18\x01 \x01(\x0b\x32\x10.ast.List_String\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x03 \x03(\x0b\x32\t.ast.Expr"8\n\x0b\x45xprArgList\x12\x17\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x02 \x01(\x08":\n\x0fSpDataframeType\x12\x0f\n\x07\x63olumns\x18\x01 \x03(\t\x12\x16\n\x03tys\x18\x02 \x03(\x0b\x32\t.ast.Type"F\n\x16SpGroupedDataframeType\x12\x15\n\rinner_columns\x18\x01 \x03(\t\x12\x15\n\router_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xdd[\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x03 \x01(\x0b\x32\t.ast.ExprH\x00\x12+\n\x11trait_fn_ref_expr\x18\x04 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x05 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x06 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x07 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\t \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\n \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\x0b \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\x0c \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\r \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\x0e \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12:\n\x19trait_sp_window_spec_expr\x18\x0f \x01(\x0b\x32\x15.ast.SpWindowSpecExprH\x00\x12/\n\x13trait_sp_write_file\x18\x10 \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x11 \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x12 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x13 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x14 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x15 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x16 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x17 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x18 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x19 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x1a \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x1b \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x1c \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1d \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1e \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1f \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18 \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18! \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18" \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18# \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18$ \x01(\x0b\x32\x07.ast.GtH\x00\x12\x1e\n\x07if_expr\x18% \x01(\x0b\x32\x0b.ast.IfExprH\x00\x12"\n\tint32_val\x18& \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\' \x01(\x0b\x32\r.ast.Int64ValH\x00\x12\x17\n\x03leq\x18( \x01(\x0b\x32\x08.ast.LeqH\x00\x12 \n\x08list_val\x18) \x01(\x0b\x32\x0c.ast.ListValH\x00\x12\x15\n\x02lt\x18* \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18+ \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18, \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neg\x18- \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03neq\x18. \x01(\x0b\x32\x08.ast.NeqH\x00\x12 \n\x08none_val\x18/ \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12\x17\n\x03not\x18\x30 \x01(\x0b\x32\x08.ast.NotH\x00\x12 \n\x08null_val\x18\x31 \x01(\x0b\x32\x0c.ast.NullValH\x00\x12\x15\n\x02or\x18\x32 \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x33 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x35 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x36 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x37 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x38 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x39 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18: \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18; \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18< \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18= \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18> \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18? \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18@ \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18\x41 \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18\x42 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12\'\n\x0csp_case_expr\x18\x43 \x01(\x0b\x32\x0f.ast.SpCaseExprH\x00\x12-\n\x0fsp_column_alias\x18\x44 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x45 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x46 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18G \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18H \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12\x34\n\x13sp_column_case_when\x18I \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12+\n\x0esp_column_cast\x18J \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18K \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18L \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18M \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18N \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18O \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18P \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18Q \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18R \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18S \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18T \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18U \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18V \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18W \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18X \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18Y \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18Z \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18[ \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18\\ \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18] \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18^ \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18_ \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18` \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18\x61 \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18\x62 \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\x63 \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x64 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x65 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x66 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18g \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18h \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18i \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18j \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18k \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18l \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18m \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18n \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18o \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18p \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18q \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18r \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18s \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18t \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18u \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18v \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18w \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18x \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18y \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18z \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18{ \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18| \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18} \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18~ \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12]\n(sp_dataframe_join__dataframe__join_exprs\x18\x80\x01 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x63\n+sp_dataframe_join__dataframe__using_columns\x18\x81\x01 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12[\n\'sp_dataframe_join__table_function__list\x18\x82\x01 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12Y\n&sp_dataframe_join__table_function__map\x18\x83\x01 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x34\n\x12sp_dataframe_limit\x18\x84\x01 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x46\n\x1csp_dataframe_na_drop__python\x18\x85\x01 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x44\n\x1bsp_dataframe_na_drop__scala\x18\x86\x01 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x87\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x88\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x8a\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x8b\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x8c\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x8d\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x8e\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x8f\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x90\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x91\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x92\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x93\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x94\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x95\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x96\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x97\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x98\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x99\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x9a\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x9b\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x9c\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x9d\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x9e\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x9f\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\xa0\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\xa1\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\xa2\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\xa3\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\xa4\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\xa5\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12.\n\x0fsp_datatype_val\x18\xa6\x01 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12%\n\nsp_flatten\x18\xa7\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\xa8\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xa9\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xaa\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xab\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xac\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xad\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xae\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xaf\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xb0\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xb1\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xb2\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\xb3\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\xb4\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\xb5\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\xb6\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xb7\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xb8\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xb9\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xba\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xbb\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xbc\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xbd\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xbe\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_row\x18\xbf\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xc0\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xc1\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xc2\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xc3\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x37\n\x14sp_window_spec_empty\x18\xc4\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12<\n\x17sp_window_spec_order_by\x18\xc5\x01 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x44\n\x1bsp_window_spec_partition_by\x18\xc6\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x46\n\x1csp_window_spec_range_between\x18\xc7\x01 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x44\n\x1bsp_window_spec_rows_between\x18\xc8\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xc9\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xca\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xcb\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xcc\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xcd\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xce\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xcf\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xd0\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xd1\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xd2\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xd3\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xd4\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xd5\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xd6\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"K\n\x04Stmt\x12\x1d\n\x06\x61ssign\x18\x01 \x01(\x0b\x32\x0b.ast.AssignH\x00\x12\x19\n\x04\x65val\x18\x02 \x01(\x0b\x32\t.ast.EvalH\x00\x42\t\n\x07variant"x\n\x06\x41ssign\x12\x17\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03uid\x18\x03 \x01(\x03\x12\x1a\n\x06var_id\x18\x04 \x01(\x0b\x32\n.ast.VarId"/\n\x04\x45val\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xc0\x07\n\x04Type\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12,\n\x11trait_scalar_type\x18\x02 \x01(\x0b\x32\x0f.ast.ScalarTypeH\x00\x12 \n\x08\x61ny_type\x18\x03 \x01(\x0b\x32\x0c.ast.AnyTypeH\x00\x12"\n\tbool_type\x18\x04 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x05 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12\x1e\n\x07\x66n_type\x18\x06 \x01(\x0b\x32\x0b.ast.FnTypeH\x00\x12$\n\nint32_type\x18\x07 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x08 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12"\n\tlist_type\x18\t \x01(\x0b\x32\r.ast.ListTypeH\x00\x12 \n\x08map_type\x18\n \x01(\x0b\x32\x0c.ast.MapTypeH\x00\x12(\n\x0cnothing_type\x18\x0b \x01(\x0b\x32\x10.ast.NothingTypeH\x00\x12&\n\x0bnumber_type\x18\x0c \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12&\n\x0boption_type\x18\r \x01(\x0b\x32\x0f.ast.OptionTypeH\x00\x12\'\n\x0cpd_repr_type\x18\x0e \x01(\x0b\x32\x0f.ast.PdReprTypeH\x00\x12.\n\x10sp_col_expr_type\x18\x0f \x01(\x0b\x32\x12.ast.SpColExprTypeH\x00\x12\x31\n\x11sp_dataframe_type\x18\x10 \x01(\x0b\x32\x14.ast.SpDataframeTypeH\x00\x12@\n\x19sp_grouped_dataframe_type\x18\x11 \x01(\x0b\x32\x1b.ast.SpGroupedDataframeTypeH\x00\x12+\n\x0esp_window_type\x18\x12 \x01(\x0b\x32\x11.ast.SpWindowTypeH\x00\x12&\n\x0bstring_type\x18\x13 \x01(\x0b\x32\x0f.ast.StringTypeH\x00\x12$\n\ntuple_type\x18\x14 \x01(\x0b\x32\x0e.ast.TupleTypeH\x00\x12\x1c\n\x06ty_var\x18\x15 \x01(\x0b\x32\n.ast.TyVarH\x00\x12"\n\tunit_type\x18\x16 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x12(\n\x0cunknown_type\x18\x17 \x01(\x0b\x32\x10.ast.UnknownTypeH\x00\x42\t\n\x07variant"\r\n\x0bUnknownType"\t\n\x07\x41nyType"\xad\x02\n\nScalarType\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12"\n\tbool_type\x18\x02 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x03 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x04 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x05 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x06 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12"\n\tunit_type\x18\x07 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x42\t\n\x07variant"\xb6\x01\n\x0bNumericType\x12(\n\x0c\x66loat64_type\x18\x01 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x02 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x03 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x04 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x42\t\n\x07variant"\x0c\n\nNumberType"\r\n\x0bNothingType"\n\n\x08UnitType"\n\n\x08\x42oolType"\x0b\n\tInt32Type"\x0b\n\tInt64Type"\r\n\x0b\x46loat64Type"\x0c\n\nStringType"\x0c\n\nPdReprType";\n\x06\x46nType\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Type\x12\x16\n\x03ret\x18\x02 \x01(\x0b\x32\t.ast.Type"$\n\nOptionType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"#\n\tTupleType\x12\x16\n\x03tys\x18\x01 \x03(\x0b\x32\t.ast.Type""\n\x08ListType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"5\n\x07MapType\x12\x14\n\x01k\x18\x01 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Type"\x13\n\x05TyVar\x12\n\n\x02id\x18\x01 \x01(\t*8\n\x0b__Version__\x12\x18\n\x14PROTO3_REQUIRES_THIS\x10\x00\x12\x0f\n\x0bMAX_VERSION\x10\x01\x42%\n\x1c\x63om.snowflake.snowpark.proto\xe2?\x04H\x01X\x00\x62\x06proto3' ) -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "Snowpark.proto.ast_pb2", globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = ( - b"\n\034com.snowflake.snowpark.proto\342?\004H\001X\000" - ) - ___VERSION__._serialized_start = 71579 - ___VERSION__._serialized_end = 71635 - _LIST_EXPR._serialized_start = 88 - _LIST_EXPR._serialized_end = 124 - _LIST_SPCOLUMNEXPR._serialized_start = 126 - _LIST_SPCOLUMNEXPR._serialized_end = 178 - _LIST_STRING._serialized_start = 180 - _LIST_STRING._serialized_end = 207 - _MAP_EXPR_EXPR._serialized_start = 209 - _MAP_EXPR_EXPR._serialized_end = 260 - _MAP_STRING_EXPR._serialized_start = 262 - _MAP_STRING_EXPR._serialized_end = 317 - _MAP_STRING_SPVARIANT._serialized_start = 319 - _MAP_STRING_SPVARIANT._serialized_end = 384 - _MAP_STRING_STRING._serialized_start = 386 - _MAP_STRING_STRING._serialized_end = 445 - _TUPLE_EXPR_EXPR._serialized_start = 447 - _TUPLE_EXPR_EXPR._serialized_end = 510 - _TUPLE_EXPR_FLOAT._serialized_start = 512 - _TUPLE_EXPR_FLOAT._serialized_end = 565 - _TUPLE_STRING_EXPR._serialized_start = 567 - _TUPLE_STRING_EXPR._serialized_end = 621 - _TUPLE_STRING_LIST_STRING._serialized_start = 623 - _TUPLE_STRING_LIST_STRING._serialized_end = 673 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_start = 675 - _TUPLE_STRING_SPCOLUMNEXPR._serialized_end = 745 - _TUPLE_STRING_SPVARIANT._serialized_start = 747 - _TUPLE_STRING_SPVARIANT._serialized_end = 811 - _TUPLE_STRING_STRING._serialized_start = 813 - _TUPLE_STRING_STRING._serialized_end = 858 - _LANGUAGE._serialized_start = 861 - _LANGUAGE._serialized_end = 1025 - _PYTHONLANGUAGE._serialized_start = 1027 - _PYTHONLANGUAGE._serialized_end = 1074 - _SCALALANGUAGE._serialized_start = 1076 - _SCALALANGUAGE._serialized_end = 1122 - _JAVALANGUAGE._serialized_start = 1124 - _JAVALANGUAGE._serialized_end = 1169 - _VERSION._serialized_start = 1171 - _VERSION._serialized_end = 1240 - _PYTHONTIMEZONE._serialized_start = 1242 - _PYTHONTIMEZONE._serialized_end = 1326 - _FNNAME._serialized_start = 1328 - _FNNAME._serialized_end = 1446 - _FNNAMEFLAT._serialized_start = 1448 - _FNNAMEFLAT._serialized_end = 1474 - _FNNAMESTRUCTURED._serialized_start = 1476 - _FNNAMESTRUCTURED._serialized_end = 1508 - _TABLEFNCALLTYPE._serialized_start = 1511 - _TABLEFNCALLTYPE._serialized_end = 1711 - _SPWINDOWRELATIVEPOSITION._serialized_start = 1714 - _SPWINDOWRELATIVEPOSITION._serialized_end = 2012 - _SPWINDOWRELATIVEPOSITION_POSITION._serialized_start = 2014 - _SPWINDOWRELATIVEPOSITION_POSITION._serialized_end = 2060 - _PDINDEXEXPR._serialized_start = 2062 - _PDINDEXEXPR._serialized_end = 2175 - _ORD._serialized_start = 2177 - _ORD._serialized_end = 2204 - _FLEXORD._serialized_start = 2206 - _FLEXORD._serialized_end = 2237 - _KEY._serialized_start = 2239 - _KEY._serialized_end = 2266 - _PDPROJECTINDEXEXPR._serialized_start = 2269 - _PDPROJECTINDEXEXPR._serialized_end = 2582 - _ORDRANGE._serialized_start = 2584 - _ORDRANGE._serialized_end = 2670 - _FLEXORDRANGE._serialized_start = 2672 - _FLEXORDRANGE._serialized_end = 2762 - _KEYRANGE._serialized_start = 2764 - _KEYRANGE._serialized_end = 2825 - _ORDLIST._serialized_start = 2827 - _ORDLIST._serialized_end = 2861 - _FLEXORDLIST._serialized_start = 2863 - _FLEXORDLIST._serialized_end = 2901 - _KEYLIST._serialized_start = 2903 - _KEYLIST._serialized_end = 2937 - _BOOLFILTERLIST._serialized_start = 2939 - _BOOLFILTERLIST._serialized_end = 2982 - _SPFLATTENMODE._serialized_start = 2984 - _SPFLATTENMODE._serialized_end = 3109 - _SPTABLEVARIANT._serialized_start = 3111 - _SPTABLEVARIANT._serialized_end = 3191 - _SPSAVEMODE._serialized_start = 3194 - _SPSAVEMODE._serialized_end = 3386 - _SPJOINTYPE._serialized_start = 3389 - _SPJOINTYPE._serialized_end = 3653 - _SPTIMESTAMPTIMEZONE._serialized_start = 3656 - _SPTIMESTAMPTIMEZONE._serialized_end = 3843 - _SPDATATYPE._serialized_start = 3846 - _SPDATATYPE._serialized_end = 4648 - _SPARRAYTYPE._serialized_start = 4650 - _SPARRAYTYPE._serialized_end = 4712 - _SPCOLUMNIDENTIFIER._serialized_start = 4714 - _SPCOLUMNIDENTIFIER._serialized_end = 4748 - _SPDECIMALTYPE._serialized_start = 4750 - _SPDECIMALTYPE._serialized_end = 4799 - _SPMAPTYPE._serialized_start = 4801 - _SPMAPTYPE._serialized_end = 4900 - _SPSTRINGTYPE._serialized_start = 4902 - _SPSTRINGTYPE._serialized_end = 4961 - _SPSTRUCTFIELD._serialized_start = 4963 - _SPSTRUCTFIELD._serialized_end = 5084 - _SPSTRUCTTYPE._serialized_start = 5086 - _SPSTRUCTTYPE._serialized_end = 5156 - _SPTIMESTAMPTYPE._serialized_start = 5158 - _SPTIMESTAMPTYPE._serialized_end = 5220 - _SPVECTORTYPE._serialized_start = 5222 - _SPVECTORTYPE._serialized_end = 5284 - _SPVARIANT._serialized_start = 5287 - _SPVARIANT._serialized_end = 5993 - _SPVARIANT_OBJECT._serialized_start = 5995 - _SPVARIANT_OBJECT._serialized_end = 6050 - _SPVARIANT_LIST._serialized_start = 6052 - _SPVARIANT_LIST._serialized_end = 6103 - _SPVARIANT_TIMESTAMP._serialized_start = 6105 - _SPVARIANT_TIMESTAMP._serialized_end = 6137 - _SPVARIANT_DATE._serialized_start = 6139 - _SPVARIANT_DATE._serialized_end = 6166 - _SPVARIANT_TIME._serialized_start = 6168 - _SPVARIANT_TIME._serialized_end = 6195 - _SPVARIANT_BYTES._serialized_start = 6197 - _SPVARIANT_BYTES._serialized_end = 6225 - _SPVARIANT_STRING._serialized_start = 6227 - _SPVARIANT_STRING._serialized_end = 6256 - _SPVARIANT_BOOL._serialized_start = 6258 - _SPVARIANT_BOOL._serialized_end = 6285 - _SPVARIANT_BIGINT._serialized_start = 6287 - _SPVARIANT_BIGINT._serialized_end = 6316 - _SPVARIANT_BIGDECIMAL._serialized_start = 6318 - _SPVARIANT_BIGDECIMAL._serialized_end = 6351 - _SPVARIANT_INT._serialized_start = 6353 - _SPVARIANT_INT._serialized_end = 6379 - _SPVARIANT_FLOAT._serialized_start = 6381 - _SPVARIANT_FLOAT._serialized_end = 6409 - _SPVARIANT_DOUBLE._serialized_start = 6411 - _SPVARIANT_DOUBLE._serialized_end = 6440 - _SPTABLENAME._serialized_start = 6443 - _SPTABLENAME._serialized_end = 6588 - _SPTABLENAMEFLAT._serialized_start = 6590 - _SPTABLENAMEFLAT._serialized_end = 6621 - _SPTABLENAMESTRUCTURED._serialized_start = 6623 - _SPTABLENAMESTRUCTURED._serialized_end = 6660 - _STAGEDPANDASDATAFRAME._serialized_start = 6662 - _STAGEDPANDASDATAFRAME._serialized_end = 6723 - _SPDATAFRAMEDATA._serialized_start = 6726 - _SPDATAFRAMEDATA._serialized_end = 6951 - _SPDATAFRAMEDATA_LIST._serialized_start = 6953 - _SPDATAFRAMEDATA_LIST._serialized_end = 6998 - _SPDATAFRAMEDATA_TUPLE._serialized_start = 7000 - _SPDATAFRAMEDATA_TUPLE._serialized_end = 7046 - _SPDATAFRAMEDATA_PANDAS._serialized_start = 7048 - _SPDATAFRAMEDATA_PANDAS._serialized_end = 7111 - _SPDATAFRAMESCHEMA._serialized_start = 7114 - _SPDATAFRAMESCHEMA._serialized_end = 7285 - _SPDATAFRAMESCHEMA_LIST._serialized_start = 7287 - _SPDATAFRAMESCHEMA_LIST._serialized_end = 7323 - _SPDATAFRAMESCHEMA_STRUCT._serialized_start = 7325 - _SPDATAFRAMESCHEMA_STRUCT._serialized_end = 7381 - _SRCPOSITION._serialized_start = 7383 - _SRCPOSITION._serialized_end = 7490 - _VARID._serialized_start = 7492 - _VARID._serialized_end = 7518 - _REQUEST._serialized_start = 7521 - _REQUEST._serialized_end = 7661 - _RESPONSE._serialized_start = 7663 - _RESPONSE._serialized_end = 7700 - _CONST._serialized_start = 7703 - _CONST._serialized_end = 8390 - _NONEVAL._serialized_start = 8392 - _NONEVAL._serialized_end = 8432 - _NULLVAL._serialized_start = 8434 - _NULLVAL._serialized_end = 8474 - _BOOLVAL._serialized_start = 8476 - _BOOLVAL._serialized_end = 8527 - _INT32VAL._serialized_start = 8529 - _INT32VAL._serialized_end = 8581 - _INT64VAL._serialized_start = 8583 - _INT64VAL._serialized_end = 8635 - _FLOAT64VAL._serialized_start = 8637 - _FLOAT64VAL._serialized_end = 8691 - _BIGINTVAL._serialized_start = 8693 - _BIGINTVAL._serialized_end = 8746 - _BIGDECIMALVAL._serialized_start = 8748 - _BIGDECIMALVAL._serialized_end = 8833 - _STRINGVAL._serialized_start = 8835 - _STRINGVAL._serialized_end = 8888 - _BINARYVAL._serialized_start = 8890 - _BINARYVAL._serialized_end = 8943 - _TIMESTAMPVAL._serialized_start = 8945 - _TIMESTAMPVAL._serialized_end = 9001 - _DATEVAL._serialized_start = 9003 - _DATEVAL._serialized_end = 9054 - _TIMEVAL._serialized_start = 9056 - _TIMEVAL._serialized_end = 9107 - _PYTHONTIMESTAMPVAL._serialized_start = 9110 - _PYTHONTIMESTAMPVAL._serialized_end = 9303 - _PYTHONDATEVAL._serialized_start = 9305 - _PYTHONDATEVAL._serialized_end = 9393 - _PYTHONTIMEVAL._serialized_start = 9396 - _PYTHONTIMEVAL._serialized_end = 9542 - _FNVAL._serialized_start = 9544 - _FNVAL._serialized_end = 9623 - _IFEXPR._serialized_start = 9625 - _IFEXPR._serialized_end = 9746 - _SOMEVAL._serialized_start = 9748 - _SOMEVAL._serialized_end = 9810 - _TUPLEVAL._serialized_start = 9812 - _TUPLEVAL._serialized_end = 9876 - _LISTVAL._serialized_start = 9878 - _LISTVAL._serialized_end = 9941 - _SEQMAPVAL._serialized_start = 9943 - _SEQMAPVAL._serialized_end = 10013 - _APPLYEXPR._serialized_start = 10016 - _APPLYEXPR._serialized_end = 10159 - _FNREFEXPR._serialized_start = 10162 - _FNREFEXPR._serialized_end = 10380 - _BUILTINFN._serialized_start = 10382 - _BUILTINFN._serialized_end = 10451 - _STOREDPROCEDURE._serialized_start = 10454 - _STOREDPROCEDURE._serialized_end = 10633 - _UDF._serialized_start = 10635 - _UDF._serialized_end = 10698 - _SESSIONTABLEFN._serialized_start = 10700 - _SESSIONTABLEFN._serialized_end = 10774 - _TABLEFN._serialized_start = 10776 - _TABLEFN._serialized_end = 10884 - _UNARYOP._serialized_start = 10886 - _UNARYOP._serialized_end = 10956 - _BINOP._serialized_start = 10959 - _BINOP._serialized_end = 11413 - _NOT._serialized_start = 11415 - _NOT._serialized_end = 11479 - _AND._serialized_start = 11481 - _AND._serialized_end = 11565 - _OR._serialized_start = 11567 - _OR._serialized_end = 11650 - _EQ._serialized_start = 11652 - _EQ._serialized_end = 11735 - _NEQ._serialized_start = 11737 - _NEQ._serialized_end = 11821 - _LT._serialized_start = 11823 - _LT._serialized_end = 11906 - _LEQ._serialized_start = 11908 - _LEQ._serialized_end = 11992 - _GT._serialized_start = 11994 - _GT._serialized_end = 12077 - _GEQ._serialized_start = 12079 - _GEQ._serialized_end = 12163 - _NEG._serialized_start = 12165 - _NEG._serialized_end = 12229 - _ADD._serialized_start = 12231 - _ADD._serialized_end = 12315 - _SUB._serialized_start = 12317 - _SUB._serialized_end = 12401 - _MUL._serialized_start = 12403 - _MUL._serialized_end = 12487 - _DIV._serialized_start = 12489 - _DIV._serialized_end = 12573 - _MOD._serialized_start = 12575 - _MOD._serialized_end = 12659 - _POW._serialized_start = 12661 - _POW._serialized_end = 12745 - _BITAND._serialized_start = 12747 - _BITAND._serialized_end = 12834 - _BITOR._serialized_start = 12836 - _BITOR._serialized_end = 12922 - _BITXOR._serialized_start = 12924 - _BITXOR._serialized_end = 13011 - _RANGEVAL._serialized_start = 13013 - _RANGEVAL._serialized_end = 13130 - _SPWINDOWSPECEXPR._serialized_start = 13133 - _SPWINDOWSPECEXPR._serialized_end = 13488 - _SPWINDOWSPECEMPTY._serialized_start = 13490 - _SPWINDOWSPECEMPTY._serialized_end = 13576 - _SPWINDOWSPECORDERBY._serialized_start = 13578 - _SPWINDOWSPECORDERBY._serialized_end = 13691 - _SPWINDOWSPECPARTITIONBY._serialized_start = 13693 - _SPWINDOWSPECPARTITIONBY._serialized_end = 13810 - _SPWINDOWSPECRANGEBETWEEN._serialized_start = 13813 - _SPWINDOWSPECRANGEBETWEEN._serialized_end = 13996 - _SPWINDOWSPECROWSBETWEEN._serialized_start = 13999 - _SPWINDOWSPECROWSBETWEEN._serialized_end = 14181 - _EXPR._serialized_start = 14184 - _EXPR._serialized_end = 25399 - _REF._serialized_start = 25401 - _REF._serialized_end = 25465 - _CASTEXPR._serialized_start = 25467 - _CASTEXPR._serialized_end = 25554 - _PDDATAFRAME._serialized_start = 25557 - _PDDATAFRAME._serialized_end = 25706 - _PDDROPNA._serialized_start = 25709 - _PDDROPNA._serialized_end = 25851 - _PDDATAFRAMEGETITEM._serialized_start = 25853 - _PDDATAFRAMEGETITEM._serialized_end = 25954 - _PDDATAFRAMESETITEM._serialized_start = 25956 - _PDDATAFRAMESETITEM._serialized_end = 26079 - _PDDATAFRAMELOC._serialized_start = 26081 - _PDDATAFRAMELOC._serialized_end = 26203 - _PDDATAFRAMEILOC._serialized_start = 26205 - _PDDATAFRAMEILOC._serialized_end = 26328 - _PDREPR._serialized_start = 26330 - _PDREPR._serialized_end = 26444 - _PDREPRRESULT._serialized_start = 26446 - _PDREPRRESULT._serialized_end = 26563 - _RESULT._serialized_start = 26566 - _RESULT._serialized_end = 26724 - _EVALRESULT._serialized_start = 26727 - _EVALRESULT._serialized_end = 27499 - _EVALOK._serialized_start = 27501 - _EVALOK._serialized_end = 27581 - _ERROR._serialized_start = 27583 - _ERROR._serialized_end = 27673 - _SESSIONRESETREQUIREDERROR._serialized_start = 27675 - _SESSIONRESETREQUIREDERROR._serialized_end = 27743 - _SPCOLUMNEXPR._serialized_start = 27746 - _SPCOLUMNEXPR._serialized_end = 28078 - _SPCOLUMNREF._serialized_start = 28080 - _SPCOLUMNREF._serialized_end = 28136 - _SPCOLUMNSQLEXPR._serialized_start = 28138 - _SPCOLUMNSQLEXPR._serialized_end = 28247 - _SPCASEEXPR._serialized_start = 28249 - _SPCASEEXPR._serialized_end = 28348 - _SPCOLUMNCASEWHEN._serialized_start = 28350 - _SPCOLUMNCASEWHEN._serialized_end = 28431 - _SPCOLUMNFN._serialized_start = 28434 - _SPCOLUMNFN._serialized_end = 29731 - _SPCOLUMNALIAS._serialized_start = 29734 - _SPCOLUMNALIAS._serialized_end = 29869 - _SPCOLUMNAPPLY_INT._serialized_start = 29871 - _SPCOLUMNAPPLY_INT._serialized_end = 29958 - _SPCOLUMNAPPLY_STRING._serialized_start = 29960 - _SPCOLUMNAPPLY_STRING._serialized_end = 30052 - _SPCOLUMNASC._serialized_start = 30054 - _SPCOLUMNASC._serialized_end = 30171 - _SPCOLUMNBETWEEN._serialized_start = 30174 - _SPCOLUMNBETWEEN._serialized_end = 30310 - _SPCOLUMNCAST._serialized_start = 30312 - _SPCOLUMNCAST._serialized_end = 30410 - _SPCOLUMNTRYCAST._serialized_start = 30412 - _SPCOLUMNTRYCAST._serialized_end = 30513 - _SPCOLUMNDESC._serialized_start = 30515 - _SPCOLUMNDESC._serialized_end = 30633 - _SPCOLUMNEQUALNAN._serialized_start = 30635 - _SPCOLUMNEQUALNAN._serialized_end = 30708 - _SPCOLUMNEQUALNULL._serialized_start = 30710 - _SPCOLUMNEQUALNULL._serialized_end = 30808 - _SPCOLUMNIN_DATAFRAME._serialized_start = 30810 - _SPCOLUMNIN_DATAFRAME._serialized_end = 30921 - _SPCOLUMNIN_SEQ._serialized_start = 30923 - _SPCOLUMNIN_SEQ._serialized_end = 31021 - _SPCOLUMNISNOTNULL._serialized_start = 31023 - _SPCOLUMNISNOTNULL._serialized_end = 31097 - _SPCOLUMNISNULL._serialized_start = 31099 - _SPCOLUMNISNULL._serialized_end = 31170 - _SPCOLUMNNAME._serialized_start = 31172 - _SPCOLUMNNAME._serialized_end = 31256 - _SPCOLUMNOVER._serialized_start = 31258 - _SPCOLUMNOVER._serialized_end = 31371 - _SPCOLUMNWITHINGROUP._serialized_start = 31373 - _SPCOLUMNWITHINGROUP._serialized_end = 31481 - _SPCOLUMNSTRINGLIKE._serialized_start = 31483 - _SPCOLUMNSTRINGLIKE._serialized_end = 31586 - _SPCOLUMNSTRINGREGEXP._serialized_start = 31589 - _SPCOLUMNSTRINGREGEXP._serialized_end = 31725 - _SPCOLUMNSTRINGSTARTSWITH._serialized_start = 31727 - _SPCOLUMNSTRINGSTARTSWITH._serialized_end = 31835 - _SPCOLUMNSTRINGENDSWITH._serialized_start = 31837 - _SPCOLUMNSTRINGENDSWITH._serialized_end = 31943 - _SPCOLUMNSTRINGSUBSTR._serialized_start = 31945 - _SPCOLUMNSTRINGSUBSTR._serialized_end = 32070 - _SPCOLUMNSTRINGCOLLATE._serialized_start = 32072 - _SPCOLUMNSTRINGCOLLATE._serialized_end = 32185 - _SPCOLUMNSTRINGCONTAINS._serialized_start = 32187 - _SPCOLUMNSTRINGCONTAINS._serialized_end = 32294 - _SPDATAFRAMEEXPR._serialized_start = 32297 - _SPDATAFRAMEEXPR._serialized_end = 37795 - _SPDATAFRAMEREF._serialized_start = 37797 - _SPDATAFRAMEREF._serialized_end = 37868 - _SPDATAFRAMESHOW._serialized_start = 37870 - _SPDATAFRAMESHOW._serialized_end = 37942 - _SPDATAFRAMECOUNT._serialized_start = 37945 - _SPDATAFRAMECOUNT._serialized_end = 38085 - _SPDATAFRAMECOLLECT._serialized_start = 38088 - _SPDATAFRAMECOLLECT._serialized_end = 38297 - _SPCREATEDATAFRAME._serialized_start = 38299 - _SPCREATEDATAFRAME._serialized_end = 38425 - _SPWRITEPANDAS._serialized_start = 38428 - _SPWRITEPANDAS._serialized_end = 38812 - _SPFLATTEN._serialized_start = 38815 - _SPFLATTEN._serialized_end = 38995 - _SPGENERATOR._serialized_start = 38998 - _SPGENERATOR._serialized_end = 39135 - _SPRANGE._serialized_start = 39138 - _SPRANGE._serialized_end = 39278 - _SPSQL._serialized_start = 39280 - _SPSQL._serialized_end = 39360 - _SPSTOREDPROCEDURE._serialized_start = 39362 - _SPSTOREDPROCEDURE._serialized_end = 39477 - _SPTABLE._serialized_start = 39480 - _SPTABLE._serialized_end = 39625 - _SPTABLEFUNCTION._serialized_start = 39627 - _SPTABLEFUNCTION._serialized_end = 39751 - _SPDATAFRAMETODF._serialized_start = 39753 - _SPDATAFRAMETODF._serialized_end = 39872 - _SPDATAFRAMENADROP_SCALA._serialized_start = 39875 - _SPDATAFRAMENADROP_SCALA._serialized_end = 40010 - _SPDATAFRAMENADROP_PYTHON._serialized_start = 40013 - _SPDATAFRAMENADROP_PYTHON._serialized_end = 40196 - _SPDATAFRAMENAFILL._serialized_start = 40199 - _SPDATAFRAMENAFILL._serialized_end = 40384 - _SPDATAFRAMENAREPLACE._serialized_start = 40387 - _SPDATAFRAMENAREPLACE._serialized_end = 40689 - _SPDATAFRAMEAGG._serialized_start = 40691 - _SPDATAFRAMEAGG._serialized_end = 40805 - _SPDATAFRAMEALIAS._serialized_start = 40807 - _SPDATAFRAMEALIAS._serialized_end = 40904 - _SPDATAFRAMEAPPLY._serialized_start = 40906 - _SPDATAFRAMEAPPLY._serialized_end = 41007 - _SPDATAFRAMECOL._serialized_start = 41009 - _SPDATAFRAMECOL._serialized_end = 41108 - _SPDATAFRAMECROSSJOIN._serialized_start = 41111 - _SPDATAFRAMECROSSJOIN._serialized_end = 41328 - _SPDATAFRAMECUBE._serialized_start = 41330 - _SPDATAFRAMECUBE._serialized_end = 41444 - _SPDATAFRAMEDESCRIBE._serialized_start = 41446 - _SPDATAFRAMEDESCRIBE._serialized_end = 41564 - _SPDATAFRAMEDISTINCT._serialized_start = 41566 - _SPDATAFRAMEDISTINCT._serialized_end = 41652 - _SPDATAFRAMEDROP._serialized_start = 41654 - _SPDATAFRAMEDROP._serialized_end = 41768 - _SPDATAFRAMEDROPDUPLICATES._serialized_start = 41770 - _SPDATAFRAMEDROPDUPLICATES._serialized_end = 41894 - _SPDATAFRAMEEXCEPT._serialized_start = 41896 - _SPDATAFRAMEEXCEPT._serialized_end = 42017 - _SPDATAFRAMEFILTER._serialized_start = 42019 - _SPDATAFRAMEFILTER._serialized_end = 42133 - _SPDATAFRAMEFLATTEN._serialized_start = 42136 - _SPDATAFRAMEFLATTEN._serialized_end = 42359 - _SPDATAFRAMEFIRST._serialized_start = 42362 - _SPDATAFRAMEFIRST._serialized_end = 42525 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_start = 42528 - _SPDATAFRAMEGROUPBY_COLUMNS._serialized_end = 42672 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_start = 42674 - _SPDATAFRAMEGROUPBY_STRINGS._serialized_end = 42799 - _SPDATAFRAMEGROUPBY._serialized_start = 42801 - _SPDATAFRAMEGROUPBY._serialized_end = 42918 - _SPDATAFRAMEINTERSECT._serialized_start = 42920 - _SPDATAFRAMEINTERSECT._serialized_end = 43044 - _SPDATAFRAMEJOIN._serialized_start = 43047 - _SPDATAFRAMEJOIN._serialized_end = 43361 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_start = 43364 - _SPDATAFRAMEJOIN_TABLEFUNCTION_MAP._serialized_end = 43634 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_start = 43637 - _SPDATAFRAMEJOIN_TABLEFUNCTION_LIST._serialized_end = 43913 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_start = 43916 - _SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS._serialized_end = 44132 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_start = 44135 - _SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS._serialized_end = 44371 - _SPDATAFRAMELIMIT._serialized_start = 44373 - _SPDATAFRAMELIMIT._serialized_end = 44483 - _SPDATAFRAMENATURALJOIN._serialized_start = 44486 - _SPDATAFRAMENATURALJOIN._serialized_end = 44647 - _SPDATAFRAMEPIVOT_COLUMN._serialized_start = 44650 - _SPDATAFRAMEPIVOT_COLUMN._serialized_end = 44813 - _SPDATAFRAMEPIVOT_STRING._serialized_start = 44816 - _SPDATAFRAMEPIVOT_STRING._serialized_end = 44960 - _SPDATAFRAMERANDOMSPLIT._serialized_start = 44963 - _SPDATAFRAMERANDOMSPLIT._serialized_end = 45164 - _SPDATAFRAMERENAME._serialized_start = 45167 - _SPDATAFRAMERENAME._serialized_end = 45335 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_start = 45338 - _SPDATAFRAMEROLLUP_COLUMNS._serialized_end = 45481 - _SPDATAFRAMEROLLUP_STRINGS._serialized_start = 45483 - _SPDATAFRAMEROLLUP_STRINGS._serialized_end = 45607 - _SPDATAFRAMEROLLUP._serialized_start = 45609 - _SPDATAFRAMEROLLUP._serialized_end = 45725 - _SPDATAFRAMESAMPLE._serialized_start = 45728 - _SPDATAFRAMESAMPLE._serialized_end = 45914 - _SPDATAFRAMESELECT_COLUMNS._serialized_start = 45917 - _SPDATAFRAMESELECT_COLUMNS._serialized_end = 46052 - _SPDATAFRAMESELECT_EXPRS._serialized_start = 46054 - _SPDATAFRAMESELECT_EXPRS._serialized_end = 46177 - _SPDATAFRAMESORT._serialized_start = 46180 - _SPDATAFRAMESORT._serialized_end = 46340 - _SPDATAFRAMEUNION._serialized_start = 46342 - _SPDATAFRAMEUNION._serialized_end = 46462 - _SPDATAFRAMEUNIONALL._serialized_start = 46464 - _SPDATAFRAMEUNIONALL._serialized_end = 46587 - _SPDATAFRAMEUNIONALLBYNAME._serialized_start = 46590 - _SPDATAFRAMEUNIONALLBYNAME._serialized_end = 46719 - _SPDATAFRAMEUNIONBYNAME._serialized_start = 46721 - _SPDATAFRAMEUNIONBYNAME._serialized_end = 46847 - _SPDATAFRAMEWHERE._serialized_start = 46849 - _SPDATAFRAMEWHERE._serialized_end = 46970 - _SPDATAFRAMEWITHCOLUMN._serialized_start = 46973 - _SPDATAFRAMEWITHCOLUMN._serialized_end = 47103 - _SPDATAFRAMEWITHCOLUMNRENAMED._serialized_start = 47106 - _SPDATAFRAMEWITHCOLUMNRENAMED._serialized_end = 47243 - _SPDATAFRAMEWITHCOLUMNS._serialized_start = 47246 - _SPDATAFRAMEWITHCOLUMNS._serialized_end = 47381 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_start = 47384 - _SPDATAFRAMEGROUPBYGROUPINGSETS._serialized_end = 47543 - _SPGROUPINGSETS._serialized_start = 47545 - _SPGROUPINGSETS._serialized_end = 47624 - _SPDATAFRAMEANALYTICSMOVINGAGG._serialized_start = 47627 - _SPDATAFRAMEANALYTICSMOVINGAGG._serialized_end = 47855 - _SPDATAFRAMEANALYTICSCUMULATIVEAGG._serialized_start = 47858 - _SPDATAFRAMEANALYTICSCUMULATIVEAGG._serialized_end = 48088 - _SPDATAFRAMEANALYTICSCOMPUTELAG._serialized_start = 48091 - _SPDATAFRAMEANALYTICSCOMPUTELAG._serialized_end = 48292 - _SPDATAFRAMEANALYTICSCOMPUTELEAD._serialized_start = 48295 - _SPDATAFRAMEANALYTICSCOMPUTELEAD._serialized_end = 48498 - _SPDATAFRAMEANALYTICSTIMESERIESAGG._serialized_start = 48501 - _SPDATAFRAMEANALYTICSTIMESERIESAGG._serialized_end = 48754 - _SPCOPYABLEDATAFRAMEEXPR._serialized_start = 48757 - _SPCOPYABLEDATAFRAMEEXPR._serialized_end = 49273 - _SPDATAFRAMEREADEROPTIONS._serialized_start = 49275 - _SPDATAFRAMEREADEROPTIONS._serialized_end = 49329 - _SPDATAFRAMEREADERSCHEMA._serialized_start = 49331 - _SPDATAFRAMEREADERSCHEMA._serialized_end = 49384 - _SPREADAVRO._serialized_start = 49386 - _SPREADAVRO._serialized_end = 49443 - _SPREADCSV._serialized_start = 49445 - _SPREADCSV._serialized_end = 49501 - _SPREADJSON._serialized_start = 49503 - _SPREADJSON._serialized_end = 49560 - _SPREADORC._serialized_start = 49562 - _SPREADORC._serialized_end = 49618 - _SPREADPARQUET._serialized_start = 49620 - _SPREADPARQUET._serialized_end = 49680 - _SPREADTABLE._serialized_start = 49682 - _SPREADTABLE._serialized_end = 49740 - _SPREADXML._serialized_start = 49742 - _SPREADXML._serialized_end = 49798 - _SPCOPYINTO._serialized_start = 49801 - _SPCOPYINTO._serialized_end = 50004 - _SPDATAFRAMEWRITER._serialized_start = 50007 - _SPDATAFRAMEWRITER._serialized_end = 50488 - _SPDATAFRAMEWRITERSAVEMODE._serialized_start = 50490 - _SPDATAFRAMEWRITERSAVEMODE._serialized_end = 50545 - _SPDATAFRAMEWRITEROPTIONS._serialized_start = 50547 - _SPDATAFRAMEWRITEROPTIONS._serialized_end = 50601 - _SPDATAFRAMEWRITE._serialized_start = 50603 - _SPDATAFRAMEWRITE._serialized_end = 50722 - _SPWRITEFILE._serialized_start = 50725 - _SPWRITEFILE._serialized_end = 50951 - _SPWRITECSV._serialized_start = 50954 - _SPWRITECSV._serialized_end = 51256 - _SPWRITEJSON._serialized_start = 51259 - _SPWRITEJSON._serialized_end = 51562 - _SPWRITEPARQUET._serialized_start = 51565 - _SPWRITEPARQUET._serialized_end = 51871 - _SPWRITETABLE._serialized_start = 51874 - _SPWRITETABLE._serialized_end = 52236 - _SPWRITECOPYINTOLOCATION._serialized_start = 52239 - _SPWRITECOPYINTOLOCATION._serialized_end = 52666 - _SPDATAFRAMECREATEORREPLACEVIEW._serialized_start = 52669 - _SPDATAFRAMECREATEORREPLACEVIEW._serialized_end = 52896 - _SPDATAFRAMECREATEORREPLACEDYNAMICTABLE._serialized_start = 52899 - _SPDATAFRAMECREATEORREPLACEDYNAMICTABLE._serialized_end = 53149 - _SPDATAFRAMECOPYINTOTABLE._serialized_start = 53152 - _SPDATAFRAMECOPYINTOTABLE._serialized_end = 53591 - _SPDATAFRAMECACHERESULT._serialized_start = 53594 - _SPDATAFRAMECACHERESULT._serialized_end = 53735 - _SPDATAFRAMESTATAPPROXQUANTILE._serialized_start = 53738 - _SPDATAFRAMESTATAPPROXQUANTILE._serialized_end = 53921 - _SPDATAFRAMESTATCORR._serialized_start = 53924 - _SPDATAFRAMESTATCORR._serialized_end = 54102 - _SPDATAFRAMESTATCOV._serialized_start = 54105 - _SPDATAFRAMESTATCOV._serialized_end = 54282 - _SPDATAFRAMESTATCROSSTAB._serialized_start = 54285 - _SPDATAFRAMESTATCROSSTAB._serialized_end = 54467 - _SPDATAFRAMESTATSAMPLEBY._serialized_start = 54470 - _SPDATAFRAMESTATSAMPLEBY._serialized_end = 54626 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_start = 54629 - _SPRELATIONALGROUPEDDATAFRAMEEXPR._serialized_end = 55437 - _SPRELATIONALGROUPEDDATAFRAMEREF._serialized_start = 55439 - _SPRELATIONALGROUPEDDATAFRAMEREF._serialized_end = 55527 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_start = 55530 - _SPRELATIONALGROUPEDDATAFRAMEAGG_MAP._serialized_end = 55731 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_start = 55734 - _SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS._serialized_end = 55917 - _SPRELATIONALGROUPEDDATAFRAMEAGG._serialized_start = 55920 - _SPRELATIONALGROUPEDDATAFRAMEAGG._serialized_end = 56076 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_start = 56079 - _SPRELATIONALGROUPEDDATAFRAMEANYVALUE._serialized_end = 56232 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_start = 56235 - _SPRELATIONALGROUPEDDATAFRAMEAVG._serialized_end = 56383 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_start = 56386 - _SPRELATIONALGROUPEDDATAFRAMEBUILTIN._serialized_end = 56556 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_start = 56558 - _SPRELATIONALGROUPEDDATAFRAMECOUNT._serialized_end = 56683 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_start = 56686 - _SPRELATIONALGROUPEDDATAFRAMEMAX._serialized_end = 56834 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_start = 56837 - _SPRELATIONALGROUPEDDATAFRAMEMEAN._serialized_end = 56986 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_start = 56989 - _SPRELATIONALGROUPEDDATAFRAMEMEDIAN._serialized_end = 57140 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_start = 57143 - _SPRELATIONALGROUPEDDATAFRAMEMIN._serialized_end = 57291 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_start = 57294 - _SPRELATIONALGROUPEDDATAFRAMESUM._serialized_end = 57442 - _SPROW._serialized_start = 57444 - _SPROW._serialized_end = 57538 - _EXPRARGLIST._serialized_start = 57540 - _EXPRARGLIST._serialized_end = 57596 - _SPDATAFRAMETYPE._serialized_start = 57598 - _SPDATAFRAMETYPE._serialized_end = 57656 - _SPGROUPEDDATAFRAMETYPE._serialized_start = 57658 - _SPGROUPEDDATAFRAMETYPE._serialized_end = 57728 - _SPWINDOWTYPE._serialized_start = 57730 - _SPWINDOWTYPE._serialized_end = 57744 - _SPCOLEXPRTYPE._serialized_start = 57746 - _SPCOLEXPRTYPE._serialized_end = 57785 - _HASSRCPOSITION._serialized_start = 57788 - _HASSRCPOSITION._serialized_end = 69481 - _STMT._serialized_start = 69483 - _STMT._serialized_end = 69558 - _ASSIGN._serialized_start = 69560 - _ASSIGN._serialized_end = 69680 - _EVAL._serialized_start = 69682 - _EVAL._serialized_end = 69729 - _TYPE._serialized_start = 69732 - _TYPE._serialized_end = 70692 - _UNKNOWNTYPE._serialized_start = 70694 - _UNKNOWNTYPE._serialized_end = 70707 - _ANYTYPE._serialized_start = 70709 - _ANYTYPE._serialized_end = 70718 - _SCALARTYPE._serialized_start = 70721 - _SCALARTYPE._serialized_end = 71022 - _NUMERICTYPE._serialized_start = 71025 - _NUMERICTYPE._serialized_end = 71207 - _NUMBERTYPE._serialized_start = 71209 - _NUMBERTYPE._serialized_end = 71221 - _NOTHINGTYPE._serialized_start = 71223 - _NOTHINGTYPE._serialized_end = 71236 - _UNITTYPE._serialized_start = 71238 - _UNITTYPE._serialized_end = 71248 - _BOOLTYPE._serialized_start = 71250 - _BOOLTYPE._serialized_end = 71260 - _INT32TYPE._serialized_start = 71262 - _INT32TYPE._serialized_end = 71273 - _INT64TYPE._serialized_start = 71275 - _INT64TYPE._serialized_end = 71286 - _FLOAT64TYPE._serialized_start = 71288 - _FLOAT64TYPE._serialized_end = 71301 - _STRINGTYPE._serialized_start = 71303 - _STRINGTYPE._serialized_end = 71315 - _PDREPRTYPE._serialized_start = 71317 - _PDREPRTYPE._serialized_end = 71329 - _FNTYPE._serialized_start = 71331 - _FNTYPE._serialized_end = 71390 - _OPTIONTYPE._serialized_start = 71392 - _OPTIONTYPE._serialized_end = 71428 - _TUPLETYPE._serialized_start = 71430 - _TUPLETYPE._serialized_end = 71465 - _LISTTYPE._serialized_start = 71467 - _LISTTYPE._serialized_end = 71501 - _MAPTYPE._serialized_start = 71503 - _MAPTYPE._serialized_end = 71556 - _TYVAR._serialized_start = 71558 - _TYVAR._serialized_end = 71577 +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "proto.ast_pb2", _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals["DESCRIPTOR"]._loaded_options = None + _globals[ + "DESCRIPTOR" + ]._serialized_options = b"\n\034com.snowflake.snowpark.proto\342?\004H\001X\000" + _globals["___VERSION__"]._serialized_start = 72556 + _globals["___VERSION__"]._serialized_end = 72612 + _globals["_LIST_EXPR"]._serialized_start = 79 + _globals["_LIST_EXPR"]._serialized_end = 115 + _globals["_LIST_SPCOLUMNEXPR"]._serialized_start = 117 + _globals["_LIST_SPCOLUMNEXPR"]._serialized_end = 169 + _globals["_LIST_SPDATATYPE"]._serialized_start = 171 + _globals["_LIST_SPDATATYPE"]._serialized_end = 219 + _globals["_LIST_STRING"]._serialized_start = 221 + _globals["_LIST_STRING"]._serialized_end = 248 + _globals["_MAP_EXPR_EXPR"]._serialized_start = 250 + _globals["_MAP_EXPR_EXPR"]._serialized_end = 301 + _globals["_MAP_STRING_EXPR"]._serialized_start = 303 + _globals["_MAP_STRING_EXPR"]._serialized_end = 358 + _globals["_MAP_STRING_SPVARIANT"]._serialized_start = 360 + _globals["_MAP_STRING_SPVARIANT"]._serialized_end = 425 + _globals["_MAP_STRING_STRING"]._serialized_start = 427 + _globals["_MAP_STRING_STRING"]._serialized_end = 486 + _globals["_TUPLE_EXPR_EXPR"]._serialized_start = 488 + _globals["_TUPLE_EXPR_EXPR"]._serialized_end = 551 + _globals["_TUPLE_EXPR_FLOAT"]._serialized_start = 553 + _globals["_TUPLE_EXPR_FLOAT"]._serialized_end = 606 + _globals["_TUPLE_STRING_EXPR"]._serialized_start = 608 + _globals["_TUPLE_STRING_EXPR"]._serialized_end = 662 + _globals["_TUPLE_STRING_LIST_STRING"]._serialized_start = 664 + _globals["_TUPLE_STRING_LIST_STRING"]._serialized_end = 714 + _globals["_TUPLE_STRING_SPCOLUMNEXPR"]._serialized_start = 716 + _globals["_TUPLE_STRING_SPCOLUMNEXPR"]._serialized_end = 786 + _globals["_TUPLE_STRING_SPVARIANT"]._serialized_start = 788 + _globals["_TUPLE_STRING_SPVARIANT"]._serialized_end = 852 + _globals["_TUPLE_STRING_STRING"]._serialized_start = 854 + _globals["_TUPLE_STRING_STRING"]._serialized_end = 899 + _globals["_LANGUAGE"]._serialized_start = 902 + _globals["_LANGUAGE"]._serialized_end = 1066 + _globals["_PYTHONLANGUAGE"]._serialized_start = 1068 + _globals["_PYTHONLANGUAGE"]._serialized_end = 1115 + _globals["_SCALALANGUAGE"]._serialized_start = 1117 + _globals["_SCALALANGUAGE"]._serialized_end = 1163 + _globals["_JAVALANGUAGE"]._serialized_start = 1165 + _globals["_JAVALANGUAGE"]._serialized_end = 1210 + _globals["_VERSION"]._serialized_start = 1212 + _globals["_VERSION"]._serialized_end = 1281 + _globals["_PYTHONTIMEZONE"]._serialized_start = 1283 + _globals["_PYTHONTIMEZONE"]._serialized_end = 1367 + _globals["_FNNAME"]._serialized_start = 1369 + _globals["_FNNAME"]._serialized_end = 1487 + _globals["_FNNAMEFLAT"]._serialized_start = 1489 + _globals["_FNNAMEFLAT"]._serialized_end = 1515 + _globals["_FNNAMESTRUCTURED"]._serialized_start = 1517 + _globals["_FNNAMESTRUCTURED"]._serialized_end = 1549 + _globals["_TABLEFNCALLTYPE"]._serialized_start = 1552 + _globals["_TABLEFNCALLTYPE"]._serialized_end = 1752 + _globals["_SPWINDOWRELATIVEPOSITION"]._serialized_start = 1755 + _globals["_SPWINDOWRELATIVEPOSITION"]._serialized_end = 2053 + _globals["_SPWINDOWRELATIVEPOSITION_POSITION"]._serialized_start = 2055 + _globals["_SPWINDOWRELATIVEPOSITION_POSITION"]._serialized_end = 2101 + _globals["_PDINDEXEXPR"]._serialized_start = 2103 + _globals["_PDINDEXEXPR"]._serialized_end = 2216 + _globals["_ORD"]._serialized_start = 2218 + _globals["_ORD"]._serialized_end = 2245 + _globals["_FLEXORD"]._serialized_start = 2247 + _globals["_FLEXORD"]._serialized_end = 2278 + _globals["_KEY"]._serialized_start = 2280 + _globals["_KEY"]._serialized_end = 2307 + _globals["_PDPROJECTINDEXEXPR"]._serialized_start = 2310 + _globals["_PDPROJECTINDEXEXPR"]._serialized_end = 2623 + _globals["_ORDRANGE"]._serialized_start = 2625 + _globals["_ORDRANGE"]._serialized_end = 2711 + _globals["_FLEXORDRANGE"]._serialized_start = 2713 + _globals["_FLEXORDRANGE"]._serialized_end = 2803 + _globals["_KEYRANGE"]._serialized_start = 2805 + _globals["_KEYRANGE"]._serialized_end = 2866 + _globals["_ORDLIST"]._serialized_start = 2868 + _globals["_ORDLIST"]._serialized_end = 2902 + _globals["_FLEXORDLIST"]._serialized_start = 2904 + _globals["_FLEXORDLIST"]._serialized_end = 2942 + _globals["_KEYLIST"]._serialized_start = 2944 + _globals["_KEYLIST"]._serialized_end = 2978 + _globals["_BOOLFILTERLIST"]._serialized_start = 2980 + _globals["_BOOLFILTERLIST"]._serialized_end = 3023 + _globals["_SPFLATTENMODE"]._serialized_start = 3025 + _globals["_SPFLATTENMODE"]._serialized_end = 3150 + _globals["_SPTABLEVARIANT"]._serialized_start = 3152 + _globals["_SPTABLEVARIANT"]._serialized_end = 3232 + _globals["_SPSAVEMODE"]._serialized_start = 3235 + _globals["_SPSAVEMODE"]._serialized_end = 3427 + _globals["_SPJOINTYPE"]._serialized_start = 3430 + _globals["_SPJOINTYPE"]._serialized_end = 3694 + _globals["_SPTIMESTAMPTIMEZONE"]._serialized_start = 3697 + _globals["_SPTIMESTAMPTIMEZONE"]._serialized_end = 3884 + _globals["_SPDATATYPE"]._serialized_start = 3887 + _globals["_SPDATATYPE"]._serialized_end = 4689 + _globals["_SPARRAYTYPE"]._serialized_start = 4691 + _globals["_SPARRAYTYPE"]._serialized_end = 4753 + _globals["_SPCOLUMNIDENTIFIER"]._serialized_start = 4755 + _globals["_SPCOLUMNIDENTIFIER"]._serialized_end = 4789 + _globals["_SPDECIMALTYPE"]._serialized_start = 4791 + _globals["_SPDECIMALTYPE"]._serialized_end = 4840 + _globals["_SPMAPTYPE"]._serialized_start = 4842 + _globals["_SPMAPTYPE"]._serialized_end = 4941 + _globals["_SPSTRINGTYPE"]._serialized_start = 4943 + _globals["_SPSTRINGTYPE"]._serialized_end = 5002 + _globals["_SPSTRUCTFIELD"]._serialized_start = 5004 + _globals["_SPSTRUCTFIELD"]._serialized_end = 5125 + _globals["_SPSTRUCTTYPE"]._serialized_start = 5127 + _globals["_SPSTRUCTTYPE"]._serialized_end = 5197 + _globals["_SPTIMESTAMPTYPE"]._serialized_start = 5199 + _globals["_SPTIMESTAMPTYPE"]._serialized_end = 5261 + _globals["_SPVECTORTYPE"]._serialized_start = 5263 + _globals["_SPVECTORTYPE"]._serialized_end = 5325 + _globals["_SPVARIANT"]._serialized_start = 5328 + _globals["_SPVARIANT"]._serialized_end = 6034 + _globals["_SPVARIANT_OBJECT"]._serialized_start = 6036 + _globals["_SPVARIANT_OBJECT"]._serialized_end = 6091 + _globals["_SPVARIANT_LIST"]._serialized_start = 6093 + _globals["_SPVARIANT_LIST"]._serialized_end = 6144 + _globals["_SPVARIANT_TIMESTAMP"]._serialized_start = 6146 + _globals["_SPVARIANT_TIMESTAMP"]._serialized_end = 6178 + _globals["_SPVARIANT_DATE"]._serialized_start = 6180 + _globals["_SPVARIANT_DATE"]._serialized_end = 6207 + _globals["_SPVARIANT_TIME"]._serialized_start = 6209 + _globals["_SPVARIANT_TIME"]._serialized_end = 6236 + _globals["_SPVARIANT_BYTES"]._serialized_start = 6238 + _globals["_SPVARIANT_BYTES"]._serialized_end = 6266 + _globals["_SPVARIANT_STRING"]._serialized_start = 6268 + _globals["_SPVARIANT_STRING"]._serialized_end = 6297 + _globals["_SPVARIANT_BOOL"]._serialized_start = 6299 + _globals["_SPVARIANT_BOOL"]._serialized_end = 6326 + _globals["_SPVARIANT_BIGINT"]._serialized_start = 6328 + _globals["_SPVARIANT_BIGINT"]._serialized_end = 6357 + _globals["_SPVARIANT_BIGDECIMAL"]._serialized_start = 6359 + _globals["_SPVARIANT_BIGDECIMAL"]._serialized_end = 6392 + _globals["_SPVARIANT_INT"]._serialized_start = 6394 + _globals["_SPVARIANT_INT"]._serialized_end = 6420 + _globals["_SPVARIANT_FLOAT"]._serialized_start = 6422 + _globals["_SPVARIANT_FLOAT"]._serialized_end = 6450 + _globals["_SPVARIANT_DOUBLE"]._serialized_start = 6452 + _globals["_SPVARIANT_DOUBLE"]._serialized_end = 6481 + _globals["_SPTABLENAME"]._serialized_start = 6484 + _globals["_SPTABLENAME"]._serialized_end = 6629 + _globals["_SPTABLENAMEFLAT"]._serialized_start = 6631 + _globals["_SPTABLENAMEFLAT"]._serialized_end = 6662 + _globals["_SPTABLENAMESTRUCTURED"]._serialized_start = 6664 + _globals["_SPTABLENAMESTRUCTURED"]._serialized_end = 6701 + _globals["_STAGEDPANDASDATAFRAME"]._serialized_start = 6703 + _globals["_STAGEDPANDASDATAFRAME"]._serialized_end = 6764 + _globals["_SPDATAFRAMEDATA"]._serialized_start = 6767 + _globals["_SPDATAFRAMEDATA"]._serialized_end = 6992 + _globals["_SPDATAFRAMEDATA_LIST"]._serialized_start = 6994 + _globals["_SPDATAFRAMEDATA_LIST"]._serialized_end = 7039 + _globals["_SPDATAFRAMEDATA_TUPLE"]._serialized_start = 7041 + _globals["_SPDATAFRAMEDATA_TUPLE"]._serialized_end = 7087 + _globals["_SPDATAFRAMEDATA_PANDAS"]._serialized_start = 7089 + _globals["_SPDATAFRAMEDATA_PANDAS"]._serialized_end = 7152 + _globals["_SPDATAFRAMESCHEMA"]._serialized_start = 7155 + _globals["_SPDATAFRAMESCHEMA"]._serialized_end = 7326 + _globals["_SPDATAFRAMESCHEMA_LIST"]._serialized_start = 7328 + _globals["_SPDATAFRAMESCHEMA_LIST"]._serialized_end = 7364 + _globals["_SPDATAFRAMESCHEMA_STRUCT"]._serialized_start = 7366 + _globals["_SPDATAFRAMESCHEMA_STRUCT"]._serialized_end = 7422 + _globals["_SPCALLABLE"]._serialized_start = 7424 + _globals["_SPCALLABLE"]._serialized_end = 7462 + _globals["_SRCPOSITION"]._serialized_start = 7464 + _globals["_SRCPOSITION"]._serialized_end = 7571 + _globals["_VARID"]._serialized_start = 7573 + _globals["_VARID"]._serialized_end = 7599 + _globals["_REQUEST"]._serialized_start = 7602 + _globals["_REQUEST"]._serialized_end = 7742 + _globals["_RESPONSE"]._serialized_start = 7744 + _globals["_RESPONSE"]._serialized_end = 7781 + _globals["_CONST"]._serialized_start = 7784 + _globals["_CONST"]._serialized_end = 8518 + _globals["_NONEVAL"]._serialized_start = 8520 + _globals["_NONEVAL"]._serialized_end = 8560 + _globals["_NULLVAL"]._serialized_start = 8562 + _globals["_NULLVAL"]._serialized_end = 8602 + _globals["_BOOLVAL"]._serialized_start = 8604 + _globals["_BOOLVAL"]._serialized_end = 8655 + _globals["_INT32VAL"]._serialized_start = 8657 + _globals["_INT32VAL"]._serialized_end = 8709 + _globals["_INT64VAL"]._serialized_start = 8711 + _globals["_INT64VAL"]._serialized_end = 8763 + _globals["_FLOAT64VAL"]._serialized_start = 8765 + _globals["_FLOAT64VAL"]._serialized_end = 8819 + _globals["_BIGINTVAL"]._serialized_start = 8821 + _globals["_BIGINTVAL"]._serialized_end = 8874 + _globals["_BIGDECIMALVAL"]._serialized_start = 8876 + _globals["_BIGDECIMALVAL"]._serialized_end = 8961 + _globals["_STRINGVAL"]._serialized_start = 8963 + _globals["_STRINGVAL"]._serialized_end = 9016 + _globals["_BINARYVAL"]._serialized_start = 9018 + _globals["_BINARYVAL"]._serialized_end = 9071 + _globals["_TIMESTAMPVAL"]._serialized_start = 9073 + _globals["_TIMESTAMPVAL"]._serialized_end = 9129 + _globals["_DATEVAL"]._serialized_start = 9131 + _globals["_DATEVAL"]._serialized_end = 9182 + _globals["_TIMEVAL"]._serialized_start = 9184 + _globals["_TIMEVAL"]._serialized_end = 9235 + _globals["_PYTHONTIMESTAMPVAL"]._serialized_start = 9238 + _globals["_PYTHONTIMESTAMPVAL"]._serialized_end = 9431 + _globals["_PYTHONDATEVAL"]._serialized_start = 9433 + _globals["_PYTHONDATEVAL"]._serialized_end = 9521 + _globals["_PYTHONTIMEVAL"]._serialized_start = 9524 + _globals["_PYTHONTIMEVAL"]._serialized_end = 9670 + _globals["_FNVAL"]._serialized_start = 9672 + _globals["_FNVAL"]._serialized_end = 9751 + _globals["_SPDATATYPEVAL"]._serialized_start = 9753 + _globals["_SPDATATYPEVAL"]._serialized_end = 9834 + _globals["_IFEXPR"]._serialized_start = 9836 + _globals["_IFEXPR"]._serialized_end = 9957 + _globals["_SOMEVAL"]._serialized_start = 9959 + _globals["_SOMEVAL"]._serialized_end = 10021 + _globals["_TUPLEVAL"]._serialized_start = 10023 + _globals["_TUPLEVAL"]._serialized_end = 10087 + _globals["_LISTVAL"]._serialized_start = 10089 + _globals["_LISTVAL"]._serialized_end = 10152 + _globals["_SEQMAPVAL"]._serialized_start = 10154 + _globals["_SEQMAPVAL"]._serialized_end = 10224 + _globals["_APPLYEXPR"]._serialized_start = 10227 + _globals["_APPLYEXPR"]._serialized_end = 10370 + _globals["_FNREFEXPR"]._serialized_start = 10373 + _globals["_FNREFEXPR"]._serialized_end = 10591 + _globals["_BUILTINFN"]._serialized_start = 10593 + _globals["_BUILTINFN"]._serialized_end = 10662 + _globals["_STOREDPROCEDURE"]._serialized_start = 10665 + _globals["_STOREDPROCEDURE"]._serialized_end = 10844 + _globals["_UDF"]._serialized_start = 10847 + _globals["_UDF"]._serialized_end = 11532 + _globals["_SESSIONTABLEFN"]._serialized_start = 11534 + _globals["_SESSIONTABLEFN"]._serialized_end = 11608 + _globals["_TABLEFN"]._serialized_start = 11610 + _globals["_TABLEFN"]._serialized_end = 11718 + _globals["_UNARYOP"]._serialized_start = 11720 + _globals["_UNARYOP"]._serialized_end = 11790 + _globals["_BINOP"]._serialized_start = 11793 + _globals["_BINOP"]._serialized_end = 12247 + _globals["_NOT"]._serialized_start = 12249 + _globals["_NOT"]._serialized_end = 12313 + _globals["_AND"]._serialized_start = 12315 + _globals["_AND"]._serialized_end = 12399 + _globals["_OR"]._serialized_start = 12401 + _globals["_OR"]._serialized_end = 12484 + _globals["_EQ"]._serialized_start = 12486 + _globals["_EQ"]._serialized_end = 12569 + _globals["_NEQ"]._serialized_start = 12571 + _globals["_NEQ"]._serialized_end = 12655 + _globals["_LT"]._serialized_start = 12657 + _globals["_LT"]._serialized_end = 12740 + _globals["_LEQ"]._serialized_start = 12742 + _globals["_LEQ"]._serialized_end = 12826 + _globals["_GT"]._serialized_start = 12828 + _globals["_GT"]._serialized_end = 12911 + _globals["_GEQ"]._serialized_start = 12913 + _globals["_GEQ"]._serialized_end = 12997 + _globals["_NEG"]._serialized_start = 12999 + _globals["_NEG"]._serialized_end = 13063 + _globals["_ADD"]._serialized_start = 13065 + _globals["_ADD"]._serialized_end = 13149 + _globals["_SUB"]._serialized_start = 13151 + _globals["_SUB"]._serialized_end = 13235 + _globals["_MUL"]._serialized_start = 13237 + _globals["_MUL"]._serialized_end = 13321 + _globals["_DIV"]._serialized_start = 13323 + _globals["_DIV"]._serialized_end = 13407 + _globals["_MOD"]._serialized_start = 13409 + _globals["_MOD"]._serialized_end = 13493 + _globals["_POW"]._serialized_start = 13495 + _globals["_POW"]._serialized_end = 13579 + _globals["_BITAND"]._serialized_start = 13581 + _globals["_BITAND"]._serialized_end = 13668 + _globals["_BITOR"]._serialized_start = 13670 + _globals["_BITOR"]._serialized_end = 13756 + _globals["_BITXOR"]._serialized_start = 13758 + _globals["_BITXOR"]._serialized_end = 13845 + _globals["_RANGEVAL"]._serialized_start = 13847 + _globals["_RANGEVAL"]._serialized_end = 13964 + _globals["_SPWINDOWSPECEXPR"]._serialized_start = 13967 + _globals["_SPWINDOWSPECEXPR"]._serialized_end = 14322 + _globals["_SPWINDOWSPECEMPTY"]._serialized_start = 14324 + _globals["_SPWINDOWSPECEMPTY"]._serialized_end = 14410 + _globals["_SPWINDOWSPECORDERBY"]._serialized_start = 14412 + _globals["_SPWINDOWSPECORDERBY"]._serialized_end = 14525 + _globals["_SPWINDOWSPECPARTITIONBY"]._serialized_start = 14527 + _globals["_SPWINDOWSPECPARTITIONBY"]._serialized_end = 14644 + _globals["_SPWINDOWSPECRANGEBETWEEN"]._serialized_start = 14647 + _globals["_SPWINDOWSPECRANGEBETWEEN"]._serialized_end = 14830 + _globals["_SPWINDOWSPECROWSBETWEEN"]._serialized_start = 14833 + _globals["_SPWINDOWSPECROWSBETWEEN"]._serialized_end = 15015 + _globals["_EXPR"]._serialized_start = 15018 + _globals["_EXPR"]._serialized_end = 26281 + _globals["_REF"]._serialized_start = 26283 + _globals["_REF"]._serialized_end = 26347 + _globals["_CASTEXPR"]._serialized_start = 26349 + _globals["_CASTEXPR"]._serialized_end = 26436 + _globals["_PDDATAFRAME"]._serialized_start = 26439 + _globals["_PDDATAFRAME"]._serialized_end = 26588 + _globals["_PDDROPNA"]._serialized_start = 26591 + _globals["_PDDROPNA"]._serialized_end = 26733 + _globals["_PDDATAFRAMEGETITEM"]._serialized_start = 26735 + _globals["_PDDATAFRAMEGETITEM"]._serialized_end = 26836 + _globals["_PDDATAFRAMESETITEM"]._serialized_start = 26838 + _globals["_PDDATAFRAMESETITEM"]._serialized_end = 26961 + _globals["_PDDATAFRAMELOC"]._serialized_start = 26963 + _globals["_PDDATAFRAMELOC"]._serialized_end = 27085 + _globals["_PDDATAFRAMEILOC"]._serialized_start = 27087 + _globals["_PDDATAFRAMEILOC"]._serialized_end = 27210 + _globals["_PDREPR"]._serialized_start = 27212 + _globals["_PDREPR"]._serialized_end = 27326 + _globals["_PDREPRRESULT"]._serialized_start = 27328 + _globals["_PDREPRRESULT"]._serialized_end = 27445 + _globals["_RESULT"]._serialized_start = 27448 + _globals["_RESULT"]._serialized_end = 27606 + _globals["_EVALRESULT"]._serialized_start = 27609 + _globals["_EVALRESULT"]._serialized_end = 28428 + _globals["_EVALOK"]._serialized_start = 28430 + _globals["_EVALOK"]._serialized_end = 28510 + _globals["_ERROR"]._serialized_start = 28512 + _globals["_ERROR"]._serialized_end = 28602 + _globals["_SESSIONRESETREQUIREDERROR"]._serialized_start = 28604 + _globals["_SESSIONRESETREQUIREDERROR"]._serialized_end = 28672 + _globals["_SPCOLUMNEXPR"]._serialized_start = 28675 + _globals["_SPCOLUMNEXPR"]._serialized_end = 29007 + _globals["_SPCOLUMNREF"]._serialized_start = 29009 + _globals["_SPCOLUMNREF"]._serialized_end = 29065 + _globals["_SPCOLUMNSQLEXPR"]._serialized_start = 29067 + _globals["_SPCOLUMNSQLEXPR"]._serialized_end = 29176 + _globals["_SPCASEEXPR"]._serialized_start = 29178 + _globals["_SPCASEEXPR"]._serialized_end = 29277 + _globals["_SPCOLUMNCASEWHEN"]._serialized_start = 29279 + _globals["_SPCOLUMNCASEWHEN"]._serialized_end = 29360 + _globals["_SPCOLUMNFN"]._serialized_start = 29363 + _globals["_SPCOLUMNFN"]._serialized_end = 30660 + _globals["_SPCOLUMNALIAS"]._serialized_start = 30663 + _globals["_SPCOLUMNALIAS"]._serialized_end = 30798 + _globals["_SPCOLUMNAPPLY_INT"]._serialized_start = 30800 + _globals["_SPCOLUMNAPPLY_INT"]._serialized_end = 30887 + _globals["_SPCOLUMNAPPLY_STRING"]._serialized_start = 30889 + _globals["_SPCOLUMNAPPLY_STRING"]._serialized_end = 30981 + _globals["_SPCOLUMNASC"]._serialized_start = 30983 + _globals["_SPCOLUMNASC"]._serialized_end = 31100 + _globals["_SPCOLUMNBETWEEN"]._serialized_start = 31103 + _globals["_SPCOLUMNBETWEEN"]._serialized_end = 31239 + _globals["_SPCOLUMNCAST"]._serialized_start = 31241 + _globals["_SPCOLUMNCAST"]._serialized_end = 31339 + _globals["_SPCOLUMNTRYCAST"]._serialized_start = 31341 + _globals["_SPCOLUMNTRYCAST"]._serialized_end = 31442 + _globals["_SPCOLUMNDESC"]._serialized_start = 31444 + _globals["_SPCOLUMNDESC"]._serialized_end = 31562 + _globals["_SPCOLUMNEQUALNAN"]._serialized_start = 31564 + _globals["_SPCOLUMNEQUALNAN"]._serialized_end = 31637 + _globals["_SPCOLUMNEQUALNULL"]._serialized_start = 31639 + _globals["_SPCOLUMNEQUALNULL"]._serialized_end = 31737 + _globals["_SPCOLUMNIN_DATAFRAME"]._serialized_start = 31739 + _globals["_SPCOLUMNIN_DATAFRAME"]._serialized_end = 31850 + _globals["_SPCOLUMNIN_SEQ"]._serialized_start = 31852 + _globals["_SPCOLUMNIN_SEQ"]._serialized_end = 31950 + _globals["_SPCOLUMNISNOTNULL"]._serialized_start = 31952 + _globals["_SPCOLUMNISNOTNULL"]._serialized_end = 32026 + _globals["_SPCOLUMNISNULL"]._serialized_start = 32028 + _globals["_SPCOLUMNISNULL"]._serialized_end = 32099 + _globals["_SPCOLUMNNAME"]._serialized_start = 32101 + _globals["_SPCOLUMNNAME"]._serialized_end = 32185 + _globals["_SPCOLUMNOVER"]._serialized_start = 32187 + _globals["_SPCOLUMNOVER"]._serialized_end = 32300 + _globals["_SPCOLUMNWITHINGROUP"]._serialized_start = 32302 + _globals["_SPCOLUMNWITHINGROUP"]._serialized_end = 32410 + _globals["_SPCOLUMNSTRINGLIKE"]._serialized_start = 32412 + _globals["_SPCOLUMNSTRINGLIKE"]._serialized_end = 32515 + _globals["_SPCOLUMNSTRINGREGEXP"]._serialized_start = 32518 + _globals["_SPCOLUMNSTRINGREGEXP"]._serialized_end = 32654 + _globals["_SPCOLUMNSTRINGSTARTSWITH"]._serialized_start = 32656 + _globals["_SPCOLUMNSTRINGSTARTSWITH"]._serialized_end = 32764 + _globals["_SPCOLUMNSTRINGENDSWITH"]._serialized_start = 32766 + _globals["_SPCOLUMNSTRINGENDSWITH"]._serialized_end = 32872 + _globals["_SPCOLUMNSTRINGSUBSTR"]._serialized_start = 32874 + _globals["_SPCOLUMNSTRINGSUBSTR"]._serialized_end = 32999 + _globals["_SPCOLUMNSTRINGCOLLATE"]._serialized_start = 33001 + _globals["_SPCOLUMNSTRINGCOLLATE"]._serialized_end = 33114 + _globals["_SPCOLUMNSTRINGCONTAINS"]._serialized_start = 33116 + _globals["_SPCOLUMNSTRINGCONTAINS"]._serialized_end = 33223 + _globals["_SPDATAFRAMEEXPR"]._serialized_start = 33226 + _globals["_SPDATAFRAMEEXPR"]._serialized_end = 38724 + _globals["_SPDATAFRAMEREF"]._serialized_start = 38726 + _globals["_SPDATAFRAMEREF"]._serialized_end = 38797 + _globals["_SPDATAFRAMESHOW"]._serialized_start = 38799 + _globals["_SPDATAFRAMESHOW"]._serialized_end = 38871 + _globals["_SPDATAFRAMECOUNT"]._serialized_start = 38874 + _globals["_SPDATAFRAMECOUNT"]._serialized_end = 39014 + _globals["_SPDATAFRAMECOLLECT"]._serialized_start = 39017 + _globals["_SPDATAFRAMECOLLECT"]._serialized_end = 39226 + _globals["_SPCREATEDATAFRAME"]._serialized_start = 39228 + _globals["_SPCREATEDATAFRAME"]._serialized_end = 39354 + _globals["_SPWRITEPANDAS"]._serialized_start = 39357 + _globals["_SPWRITEPANDAS"]._serialized_end = 39741 + _globals["_SPFLATTEN"]._serialized_start = 39744 + _globals["_SPFLATTEN"]._serialized_end = 39924 + _globals["_SPGENERATOR"]._serialized_start = 39927 + _globals["_SPGENERATOR"]._serialized_end = 40064 + _globals["_SPRANGE"]._serialized_start = 40067 + _globals["_SPRANGE"]._serialized_end = 40207 + _globals["_SPSQL"]._serialized_start = 40209 + _globals["_SPSQL"]._serialized_end = 40289 + _globals["_SPSTOREDPROCEDURE"]._serialized_start = 40291 + _globals["_SPSTOREDPROCEDURE"]._serialized_end = 40406 + _globals["_SPTABLE"]._serialized_start = 40409 + _globals["_SPTABLE"]._serialized_end = 40554 + _globals["_SPTABLEFUNCTION"]._serialized_start = 40556 + _globals["_SPTABLEFUNCTION"]._serialized_end = 40680 + _globals["_SPDATAFRAMETODF"]._serialized_start = 40682 + _globals["_SPDATAFRAMETODF"]._serialized_end = 40801 + _globals["_SPDATAFRAMENADROP_SCALA"]._serialized_start = 40804 + _globals["_SPDATAFRAMENADROP_SCALA"]._serialized_end = 40939 + _globals["_SPDATAFRAMENADROP_PYTHON"]._serialized_start = 40942 + _globals["_SPDATAFRAMENADROP_PYTHON"]._serialized_end = 41125 + _globals["_SPDATAFRAMENAFILL"]._serialized_start = 41128 + _globals["_SPDATAFRAMENAFILL"]._serialized_end = 41313 + _globals["_SPDATAFRAMENAREPLACE"]._serialized_start = 41316 + _globals["_SPDATAFRAMENAREPLACE"]._serialized_end = 41618 + _globals["_SPDATAFRAMEAGG"]._serialized_start = 41620 + _globals["_SPDATAFRAMEAGG"]._serialized_end = 41734 + _globals["_SPDATAFRAMEALIAS"]._serialized_start = 41736 + _globals["_SPDATAFRAMEALIAS"]._serialized_end = 41833 + _globals["_SPDATAFRAMEAPPLY"]._serialized_start = 41835 + _globals["_SPDATAFRAMEAPPLY"]._serialized_end = 41936 + _globals["_SPDATAFRAMECOL"]._serialized_start = 41938 + _globals["_SPDATAFRAMECOL"]._serialized_end = 42037 + _globals["_SPDATAFRAMECROSSJOIN"]._serialized_start = 42040 + _globals["_SPDATAFRAMECROSSJOIN"]._serialized_end = 42257 + _globals["_SPDATAFRAMECUBE"]._serialized_start = 42259 + _globals["_SPDATAFRAMECUBE"]._serialized_end = 42373 + _globals["_SPDATAFRAMEDESCRIBE"]._serialized_start = 42375 + _globals["_SPDATAFRAMEDESCRIBE"]._serialized_end = 42493 + _globals["_SPDATAFRAMEDISTINCT"]._serialized_start = 42495 + _globals["_SPDATAFRAMEDISTINCT"]._serialized_end = 42581 + _globals["_SPDATAFRAMEDROP"]._serialized_start = 42583 + _globals["_SPDATAFRAMEDROP"]._serialized_end = 42697 + _globals["_SPDATAFRAMEDROPDUPLICATES"]._serialized_start = 42699 + _globals["_SPDATAFRAMEDROPDUPLICATES"]._serialized_end = 42823 + _globals["_SPDATAFRAMEEXCEPT"]._serialized_start = 42825 + _globals["_SPDATAFRAMEEXCEPT"]._serialized_end = 42946 + _globals["_SPDATAFRAMEFILTER"]._serialized_start = 42948 + _globals["_SPDATAFRAMEFILTER"]._serialized_end = 43062 + _globals["_SPDATAFRAMEFLATTEN"]._serialized_start = 43065 + _globals["_SPDATAFRAMEFLATTEN"]._serialized_end = 43288 + _globals["_SPDATAFRAMEFIRST"]._serialized_start = 43291 + _globals["_SPDATAFRAMEFIRST"]._serialized_end = 43454 + _globals["_SPDATAFRAMEGROUPBY_COLUMNS"]._serialized_start = 43457 + _globals["_SPDATAFRAMEGROUPBY_COLUMNS"]._serialized_end = 43601 + _globals["_SPDATAFRAMEGROUPBY_STRINGS"]._serialized_start = 43603 + _globals["_SPDATAFRAMEGROUPBY_STRINGS"]._serialized_end = 43728 + _globals["_SPDATAFRAMEGROUPBY"]._serialized_start = 43730 + _globals["_SPDATAFRAMEGROUPBY"]._serialized_end = 43847 + _globals["_SPDATAFRAMEINTERSECT"]._serialized_start = 43849 + _globals["_SPDATAFRAMEINTERSECT"]._serialized_end = 43973 + _globals["_SPDATAFRAMEJOIN"]._serialized_start = 43976 + _globals["_SPDATAFRAMEJOIN"]._serialized_end = 44290 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_MAP"]._serialized_start = 44293 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_MAP"]._serialized_end = 44563 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_LIST"]._serialized_start = 44566 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_LIST"]._serialized_end = 44842 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS"]._serialized_start = 44845 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS"]._serialized_end = 45061 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS"]._serialized_start = 45064 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS"]._serialized_end = 45300 + _globals["_SPDATAFRAMELIMIT"]._serialized_start = 45302 + _globals["_SPDATAFRAMELIMIT"]._serialized_end = 45412 + _globals["_SPDATAFRAMENATURALJOIN"]._serialized_start = 45415 + _globals["_SPDATAFRAMENATURALJOIN"]._serialized_end = 45576 + _globals["_SPDATAFRAMEPIVOT_COLUMN"]._serialized_start = 45579 + _globals["_SPDATAFRAMEPIVOT_COLUMN"]._serialized_end = 45742 + _globals["_SPDATAFRAMEPIVOT_STRING"]._serialized_start = 45745 + _globals["_SPDATAFRAMEPIVOT_STRING"]._serialized_end = 45889 + _globals["_SPDATAFRAMERANDOMSPLIT"]._serialized_start = 45892 + _globals["_SPDATAFRAMERANDOMSPLIT"]._serialized_end = 46093 + _globals["_SPDATAFRAMERENAME"]._serialized_start = 46096 + _globals["_SPDATAFRAMERENAME"]._serialized_end = 46264 + _globals["_SPDATAFRAMEROLLUP_COLUMNS"]._serialized_start = 46267 + _globals["_SPDATAFRAMEROLLUP_COLUMNS"]._serialized_end = 46410 + _globals["_SPDATAFRAMEROLLUP_STRINGS"]._serialized_start = 46412 + _globals["_SPDATAFRAMEROLLUP_STRINGS"]._serialized_end = 46536 + _globals["_SPDATAFRAMEROLLUP"]._serialized_start = 46538 + _globals["_SPDATAFRAMEROLLUP"]._serialized_end = 46654 + _globals["_SPDATAFRAMESAMPLE"]._serialized_start = 46657 + _globals["_SPDATAFRAMESAMPLE"]._serialized_end = 46843 + _globals["_SPDATAFRAMESELECT_COLUMNS"]._serialized_start = 46846 + _globals["_SPDATAFRAMESELECT_COLUMNS"]._serialized_end = 46981 + _globals["_SPDATAFRAMESELECT_EXPRS"]._serialized_start = 46983 + _globals["_SPDATAFRAMESELECT_EXPRS"]._serialized_end = 47106 + _globals["_SPDATAFRAMESORT"]._serialized_start = 47109 + _globals["_SPDATAFRAMESORT"]._serialized_end = 47269 + _globals["_SPDATAFRAMEUNION"]._serialized_start = 47271 + _globals["_SPDATAFRAMEUNION"]._serialized_end = 47391 + _globals["_SPDATAFRAMEUNIONALL"]._serialized_start = 47393 + _globals["_SPDATAFRAMEUNIONALL"]._serialized_end = 47516 + _globals["_SPDATAFRAMEUNIONALLBYNAME"]._serialized_start = 47519 + _globals["_SPDATAFRAMEUNIONALLBYNAME"]._serialized_end = 47648 + _globals["_SPDATAFRAMEUNIONBYNAME"]._serialized_start = 47650 + _globals["_SPDATAFRAMEUNIONBYNAME"]._serialized_end = 47776 + _globals["_SPDATAFRAMEWHERE"]._serialized_start = 47778 + _globals["_SPDATAFRAMEWHERE"]._serialized_end = 47899 + _globals["_SPDATAFRAMEWITHCOLUMN"]._serialized_start = 47902 + _globals["_SPDATAFRAMEWITHCOLUMN"]._serialized_end = 48032 + _globals["_SPDATAFRAMEWITHCOLUMNRENAMED"]._serialized_start = 48035 + _globals["_SPDATAFRAMEWITHCOLUMNRENAMED"]._serialized_end = 48172 + _globals["_SPDATAFRAMEWITHCOLUMNS"]._serialized_start = 48175 + _globals["_SPDATAFRAMEWITHCOLUMNS"]._serialized_end = 48310 + _globals["_SPDATAFRAMEGROUPBYGROUPINGSETS"]._serialized_start = 48313 + _globals["_SPDATAFRAMEGROUPBYGROUPINGSETS"]._serialized_end = 48472 + _globals["_SPGROUPINGSETS"]._serialized_start = 48474 + _globals["_SPGROUPINGSETS"]._serialized_end = 48553 + _globals["_SPDATAFRAMEANALYTICSMOVINGAGG"]._serialized_start = 48556 + _globals["_SPDATAFRAMEANALYTICSMOVINGAGG"]._serialized_end = 48784 + _globals["_SPDATAFRAMEANALYTICSCUMULATIVEAGG"]._serialized_start = 48787 + _globals["_SPDATAFRAMEANALYTICSCUMULATIVEAGG"]._serialized_end = 49017 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELAG"]._serialized_start = 49020 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELAG"]._serialized_end = 49221 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELEAD"]._serialized_start = 49224 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELEAD"]._serialized_end = 49427 + _globals["_SPDATAFRAMEANALYTICSTIMESERIESAGG"]._serialized_start = 49430 + _globals["_SPDATAFRAMEANALYTICSTIMESERIESAGG"]._serialized_end = 49683 + _globals["_SPCOPYABLEDATAFRAMEEXPR"]._serialized_start = 49686 + _globals["_SPCOPYABLEDATAFRAMEEXPR"]._serialized_end = 50202 + _globals["_SPDATAFRAMEREADEROPTIONS"]._serialized_start = 50204 + _globals["_SPDATAFRAMEREADEROPTIONS"]._serialized_end = 50258 + _globals["_SPDATAFRAMEREADERSCHEMA"]._serialized_start = 50260 + _globals["_SPDATAFRAMEREADERSCHEMA"]._serialized_end = 50313 + _globals["_SPREADAVRO"]._serialized_start = 50315 + _globals["_SPREADAVRO"]._serialized_end = 50372 + _globals["_SPREADCSV"]._serialized_start = 50374 + _globals["_SPREADCSV"]._serialized_end = 50430 + _globals["_SPREADJSON"]._serialized_start = 50432 + _globals["_SPREADJSON"]._serialized_end = 50489 + _globals["_SPREADORC"]._serialized_start = 50491 + _globals["_SPREADORC"]._serialized_end = 50547 + _globals["_SPREADPARQUET"]._serialized_start = 50549 + _globals["_SPREADPARQUET"]._serialized_end = 50609 + _globals["_SPREADTABLE"]._serialized_start = 50611 + _globals["_SPREADTABLE"]._serialized_end = 50669 + _globals["_SPREADXML"]._serialized_start = 50671 + _globals["_SPREADXML"]._serialized_end = 50727 + _globals["_SPCOPYINTO"]._serialized_start = 50730 + _globals["_SPCOPYINTO"]._serialized_end = 50933 + _globals["_SPDATAFRAMEWRITER"]._serialized_start = 50936 + _globals["_SPDATAFRAMEWRITER"]._serialized_end = 51417 + _globals["_SPDATAFRAMEWRITERSAVEMODE"]._serialized_start = 51419 + _globals["_SPDATAFRAMEWRITERSAVEMODE"]._serialized_end = 51474 + _globals["_SPDATAFRAMEWRITEROPTIONS"]._serialized_start = 51476 + _globals["_SPDATAFRAMEWRITEROPTIONS"]._serialized_end = 51530 + _globals["_SPDATAFRAMEWRITE"]._serialized_start = 51532 + _globals["_SPDATAFRAMEWRITE"]._serialized_end = 51651 + _globals["_SPWRITEFILE"]._serialized_start = 51654 + _globals["_SPWRITEFILE"]._serialized_end = 51880 + _globals["_SPWRITECSV"]._serialized_start = 51883 + _globals["_SPWRITECSV"]._serialized_end = 52185 + _globals["_SPWRITEJSON"]._serialized_start = 52188 + _globals["_SPWRITEJSON"]._serialized_end = 52491 + _globals["_SPWRITEPARQUET"]._serialized_start = 52494 + _globals["_SPWRITEPARQUET"]._serialized_end = 52800 + _globals["_SPWRITETABLE"]._serialized_start = 52803 + _globals["_SPWRITETABLE"]._serialized_end = 53165 + _globals["_SPWRITECOPYINTOLOCATION"]._serialized_start = 53168 + _globals["_SPWRITECOPYINTOLOCATION"]._serialized_end = 53595 + _globals["_SPDATAFRAMECREATEORREPLACEVIEW"]._serialized_start = 53598 + _globals["_SPDATAFRAMECREATEORREPLACEVIEW"]._serialized_end = 53825 + _globals["_SPDATAFRAMECREATEORREPLACEDYNAMICTABLE"]._serialized_start = 53828 + _globals["_SPDATAFRAMECREATEORREPLACEDYNAMICTABLE"]._serialized_end = 54078 + _globals["_SPDATAFRAMECOPYINTOTABLE"]._serialized_start = 54081 + _globals["_SPDATAFRAMECOPYINTOTABLE"]._serialized_end = 54520 + _globals["_SPDATAFRAMECACHERESULT"]._serialized_start = 54523 + _globals["_SPDATAFRAMECACHERESULT"]._serialized_end = 54664 + _globals["_SPDATAFRAMESTATAPPROXQUANTILE"]._serialized_start = 54667 + _globals["_SPDATAFRAMESTATAPPROXQUANTILE"]._serialized_end = 54850 + _globals["_SPDATAFRAMESTATCORR"]._serialized_start = 54853 + _globals["_SPDATAFRAMESTATCORR"]._serialized_end = 55031 + _globals["_SPDATAFRAMESTATCOV"]._serialized_start = 55034 + _globals["_SPDATAFRAMESTATCOV"]._serialized_end = 55211 + _globals["_SPDATAFRAMESTATCROSSTAB"]._serialized_start = 55214 + _globals["_SPDATAFRAMESTATCROSSTAB"]._serialized_end = 55396 + _globals["_SPDATAFRAMESTATSAMPLEBY"]._serialized_start = 55399 + _globals["_SPDATAFRAMESTATSAMPLEBY"]._serialized_end = 55555 + _globals["_SPRELATIONALGROUPEDDATAFRAMEEXPR"]._serialized_start = 55558 + _globals["_SPRELATIONALGROUPEDDATAFRAMEEXPR"]._serialized_end = 56366 + _globals["_SPRELATIONALGROUPEDDATAFRAMEREF"]._serialized_start = 56368 + _globals["_SPRELATIONALGROUPEDDATAFRAMEREF"]._serialized_end = 56456 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_MAP"]._serialized_start = 56459 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_MAP"]._serialized_end = 56660 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS"]._serialized_start = 56663 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS"]._serialized_end = 56846 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG"]._serialized_start = 56849 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG"]._serialized_end = 57005 + _globals["_SPRELATIONALGROUPEDDATAFRAMEANYVALUE"]._serialized_start = 57008 + _globals["_SPRELATIONALGROUPEDDATAFRAMEANYVALUE"]._serialized_end = 57161 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAVG"]._serialized_start = 57164 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAVG"]._serialized_end = 57312 + _globals["_SPRELATIONALGROUPEDDATAFRAMEBUILTIN"]._serialized_start = 57315 + _globals["_SPRELATIONALGROUPEDDATAFRAMEBUILTIN"]._serialized_end = 57485 + _globals["_SPRELATIONALGROUPEDDATAFRAMECOUNT"]._serialized_start = 57487 + _globals["_SPRELATIONALGROUPEDDATAFRAMECOUNT"]._serialized_end = 57612 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMAX"]._serialized_start = 57615 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMAX"]._serialized_end = 57763 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMEAN"]._serialized_start = 57766 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMEAN"]._serialized_end = 57915 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMEDIAN"]._serialized_start = 57918 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMEDIAN"]._serialized_end = 58069 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMIN"]._serialized_start = 58072 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMIN"]._serialized_end = 58220 + _globals["_SPRELATIONALGROUPEDDATAFRAMESUM"]._serialized_start = 58223 + _globals["_SPRELATIONALGROUPEDDATAFRAMESUM"]._serialized_end = 58371 + _globals["_SPROW"]._serialized_start = 58373 + _globals["_SPROW"]._serialized_end = 58467 + _globals["_EXPRARGLIST"]._serialized_start = 58469 + _globals["_EXPRARGLIST"]._serialized_end = 58525 + _globals["_SPDATAFRAMETYPE"]._serialized_start = 58527 + _globals["_SPDATAFRAMETYPE"]._serialized_end = 58585 + _globals["_SPGROUPEDDATAFRAMETYPE"]._serialized_start = 58587 + _globals["_SPGROUPEDDATAFRAMETYPE"]._serialized_end = 58657 + _globals["_SPWINDOWTYPE"]._serialized_start = 58659 + _globals["_SPWINDOWTYPE"]._serialized_end = 58673 + _globals["_SPCOLEXPRTYPE"]._serialized_start = 58675 + _globals["_SPCOLEXPRTYPE"]._serialized_end = 58714 + _globals["_HASSRCPOSITION"]._serialized_start = 58717 + _globals["_HASSRCPOSITION"]._serialized_end = 70458 + _globals["_STMT"]._serialized_start = 70460 + _globals["_STMT"]._serialized_end = 70535 + _globals["_ASSIGN"]._serialized_start = 70537 + _globals["_ASSIGN"]._serialized_end = 70657 + _globals["_EVAL"]._serialized_start = 70659 + _globals["_EVAL"]._serialized_end = 70706 + _globals["_TYPE"]._serialized_start = 70709 + _globals["_TYPE"]._serialized_end = 71669 + _globals["_UNKNOWNTYPE"]._serialized_start = 71671 + _globals["_UNKNOWNTYPE"]._serialized_end = 71684 + _globals["_ANYTYPE"]._serialized_start = 71686 + _globals["_ANYTYPE"]._serialized_end = 71695 + _globals["_SCALARTYPE"]._serialized_start = 71698 + _globals["_SCALARTYPE"]._serialized_end = 71999 + _globals["_NUMERICTYPE"]._serialized_start = 72002 + _globals["_NUMERICTYPE"]._serialized_end = 72184 + _globals["_NUMBERTYPE"]._serialized_start = 72186 + _globals["_NUMBERTYPE"]._serialized_end = 72198 + _globals["_NOTHINGTYPE"]._serialized_start = 72200 + _globals["_NOTHINGTYPE"]._serialized_end = 72213 + _globals["_UNITTYPE"]._serialized_start = 72215 + _globals["_UNITTYPE"]._serialized_end = 72225 + _globals["_BOOLTYPE"]._serialized_start = 72227 + _globals["_BOOLTYPE"]._serialized_end = 72237 + _globals["_INT32TYPE"]._serialized_start = 72239 + _globals["_INT32TYPE"]._serialized_end = 72250 + _globals["_INT64TYPE"]._serialized_start = 72252 + _globals["_INT64TYPE"]._serialized_end = 72263 + _globals["_FLOAT64TYPE"]._serialized_start = 72265 + _globals["_FLOAT64TYPE"]._serialized_end = 72278 + _globals["_STRINGTYPE"]._serialized_start = 72280 + _globals["_STRINGTYPE"]._serialized_end = 72292 + _globals["_PDREPRTYPE"]._serialized_start = 72294 + _globals["_PDREPRTYPE"]._serialized_end = 72306 + _globals["_FNTYPE"]._serialized_start = 72308 + _globals["_FNTYPE"]._serialized_end = 72367 + _globals["_OPTIONTYPE"]._serialized_start = 72369 + _globals["_OPTIONTYPE"]._serialized_end = 72405 + _globals["_TUPLETYPE"]._serialized_start = 72407 + _globals["_TUPLETYPE"]._serialized_end = 72442 + _globals["_LISTTYPE"]._serialized_start = 72444 + _globals["_LISTTYPE"]._serialized_end = 72478 + _globals["_MAPTYPE"]._serialized_start = 72480 + _globals["_MAPTYPE"]._serialized_end = 72533 + _globals["_TYVAR"]._serialized_start = 72535 + _globals["_TYVAR"]._serialized_end = 72554 # @@protoc_insertion_point(module_scope) diff --git a/src/snowflake/snowpark/_internal/proto/update-from-devvm.sh b/src/snowflake/snowpark/_internal/proto/update-from-devvm.sh index 8b05a26eed8..3f4dbbec21c 100755 --- a/src/snowflake/snowpark/_internal/proto/update-from-devvm.sh +++ b/src/snowflake/snowpark/_internal/proto/update-from-devvm.sh @@ -27,6 +27,8 @@ set -euxo pipefail SCRIPT_DIR=$(dirname "$0") +# Note: If changes are not reflected, run `bazel clean --expunge` first. + # Step 1: Build the python proto file from scratch via bazel ssh $HOST "bash -c 'cd Snowflake/trunk;bazel build //Snowpark:ast && bazel build //Snowpark:py_proto'" diff --git a/src/snowflake/snowpark/_internal/udf_utils.py b/src/snowflake/snowpark/_internal/udf_utils.py index b79fcdcf9c9..8ed1de526db 100644 --- a/src/snowflake/snowpark/_internal/udf_utils.py +++ b/src/snowflake/snowpark/_internal/udf_utils.py @@ -397,7 +397,7 @@ def build_default_values_result( input_types: List[DataType], convert_python_str_to_object: bool, ) -> List[Optional[str]]: - num_optional_args = len(default_values) + num_optional_args = len(default_values) if default_values is not None else 0 num_positional_args = len(input_types) - num_optional_args input_types_for_default_args = input_types[-num_optional_args:] if convert_python_str_to_object: @@ -406,10 +406,13 @@ def build_default_values_result( for value, tp in zip(default_values, input_types_for_default_args) ] - default_values_to_sql_str = [ - to_sql(value, datatype) - for value, datatype in zip(default_values, input_types_for_default_args) - ] + if num_optional_args != 0: + default_values_to_sql_str = [ + to_sql(value, datatype) + for value, datatype in zip(default_values, input_types_for_default_args) + ] + else: + default_values_to_sql_str = [] return [None] * num_positional_args + default_values_to_sql_str def get_opt_arg_defaults_from_callable(): diff --git a/src/snowflake/snowpark/functions.py b/src/snowflake/snowpark/functions.py index caa738e568b..8d275aa401f 100644 --- a/src/snowflake/snowpark/functions.py +++ b/src/snowflake/snowpark/functions.py @@ -7331,6 +7331,7 @@ def udf( secrets: Optional[Dict[str, str]] = None, immutable: bool = False, comment: Optional[str] = None, + _emit_ast: bool = True, **kwargs, ) -> Union[UserDefinedFunction, functools.partial]: """Registers a Python function as a Snowflake Python UDF and returns the UDF. @@ -7519,6 +7520,7 @@ def udf( secrets=secrets, immutable=immutable, comment=comment, + _emit_ast=_emit_ast, **kwargs, ) else: @@ -7543,6 +7545,7 @@ def udf( secrets=secrets, immutable=immutable, comment=comment, + _emit_ast=_emit_ast, **kwargs, ) diff --git a/src/snowflake/snowpark/udf.py b/src/snowflake/snowpark/udf.py index 3c60bed2933..472fa883374 100644 --- a/src/snowflake/snowpark/udf.py +++ b/src/snowflake/snowpark/udf.py @@ -19,8 +19,14 @@ from typing import Any, Callable, Dict, List, Optional, Tuple, Union import snowflake.snowpark +import snowflake.snowpark._internal.proto.ast_pb2 as proto from snowflake.connector import ProgrammingError from snowflake.snowpark._internal.analyzer.expression import Expression, SnowflakeUDF +from snowflake.snowpark._internal.ast_utils import ( + _set_fn_name, + build_expr_from_python_val, + build_udf_apply, +) from snowflake.snowpark._internal.error_message import SnowparkClientExceptionMessages from snowflake.snowpark._internal.open_telemetry import ( open_telemetry_udf_context_manager, @@ -88,9 +94,11 @@ def __init__( self._is_return_nullable = is_return_nullable self._packages = packages + # If None, no ast will be emitted. Else, passed whenever udf is invoked. + self._ast = None + def __call__( - self, - *cols: Union[ColumnOrName, Iterable[ColumnOrName]], + self, *cols: Union[ColumnOrName, Iterable[ColumnOrName]], _emit_ast: bool = True ) -> Column: if len(cols) >= 1 and isinstance(cols[0], (list, tuple)): warning( @@ -110,9 +118,16 @@ def __call__( f"The input of UDF {self.name} must be Column, column name, or a list of them" ) - raise NotImplementedError("TODO SNOW-1514712: support UDxFs") + udf_expr = None + if _emit_ast: + assert ( + self._ast is not None + ), "Need to ensure _emit_ast is True when registering UDF." + udf_expr = proto.Expr() + build_udf_apply(udf_expr, "", *cols) + udf_expr.apply_expr.fn.udf.CopyFrom(self._ast) - return Column(self._create_udf_expression(exprs)) + return Column(self._create_udf_expression(exprs), ast=udf_expr) def _create_udf_expression(self, exprs: List[Expression]) -> SnowflakeUDF: # len(exprs) can be less than len(self._input_types) if udf has @@ -510,6 +525,7 @@ def register( *, statement_params: Optional[Dict[str, str]] = None, source_code_display: bool = True, + _emit_ast: bool = True, **kwargs, ) -> UserDefinedFunction: """ @@ -639,6 +655,7 @@ def register( api_call_source="UDFRegistration.register" + ("[pandas_udf]" if _from_pandas else ""), is_permanent=is_permanent, + _emit_ast=_emit_ast, ) def register_from_file( @@ -665,6 +682,7 @@ def register_from_file( statement_params: Optional[Dict[str, str]] = None, source_code_display: bool = True, skip_upload_on_content_match: bool = False, + _emit_ast: bool = True, ) -> UserDefinedFunction: """ Registers a Python function as a Snowflake Python UDF from a Python or zip file, @@ -794,6 +812,7 @@ def register_from_file( api_call_source="UDFRegistration.register_from_file", skip_upload_on_content_match=skip_upload_on_content_match, is_permanent=is_permanent, + _emit_ast=_emit_ast, ) def _do_register_udf( @@ -823,7 +842,71 @@ def _do_register_udf( api_call_source: str, skip_upload_on_content_match: bool = False, is_permanent: bool = False, + _emit_ast: bool = True, + **kwargs, ) -> UserDefinedFunction: + + # AST. Capture original parameters, before any pre-processing. + ast = None + if _emit_ast: + ast = proto.Udf() + if name is not None: + _set_fn_name(name, ast) + else: + # infer from callable, i.e. done for an anonymous function + _set_fn_name(repr(func), ast) + + if return_type is not None: + return_type._fill_ast(ast.return_type) + if input_types is not None and len(input_types) != 0: + for input_type in input_types: + input_type._fill_ast(ast.input_types.list.add()) + ast.is_permanent = is_permanent + if stage_location is not None: + ast.stage_location = stage_location + if imports is not None and len(imports) != 0: + raise NotImplementedError + if packages is not None and len(packages) != 0: + for package in packages: + if isinstance(package, ModuleType): + raise NotImplementedError + p = ast.packages.add() # noqa: F841 + p = package # noqa: F841 + ast.replace = replace + ast.if_not_exists = if_not_exists + ast.parallel = parallel + if max_batch_size is not None: + ast.max_batch_size = max_batch_size + + if statement_params is not None and len(statement_params) != 0: + for k, v in statement_params.items(): + t = ast.statement_params.add() + t._1 = k + t._2 = v + + ast.source_code_display = source_code_display + ast.strict = strict + ast.secure = secure + if ( + external_access_integrations is not None + and len(external_access_integrations) != 0 + ): + for e in external_access_integrations: + p_e = ast.external_access_integrations.add() # noqa: F841 + p_e = e # noqa: F841 + if secrets is not None and len(secrets) != 0: + for k, v in secrets.items(): + t = ast.secrets.add() + t._1 = k + t._2 = v + ast.immutable = immutable + if comment is not None: + ast.comment = comment + for k, v in kwargs.items(): + t = ast.kwargs.add() + t._1 = k + build_expr_from_python_val(t._2, v) + # get the udf name, return and input types ( udf_name, @@ -928,6 +1011,10 @@ def _do_register_udf( self._session, upload_file_stage_location, stage_location ) - return UserDefinedFunction( + udf = UserDefinedFunction( func, return_type, input_types, udf_name, packages=packages ) + + udf._ast = ast + + return udf diff --git a/tests/dummy.py b/tests/dummy.py new file mode 100644 index 00000000000..996c7c13312 --- /dev/null +++ b/tests/dummy.py @@ -0,0 +1,14 @@ +# +# Copyright (c) 2012-2024 Snowflake Computing Inc. All rights reserved. +# + +from snowflake.snowpark import Session +from snowflake.snowpark.functions import col, udf +from snowflake.snowpark.types import IntegerType + +session = Session.builder.getOrCreate() +add_one = udf(lambda x: x + 1, return_type=IntegerType(), input_types=[IntegerType()]) +df = session.create_dataframe([1, 2, 3], schema=["a"]) +ans = df.select(add_one(col("a")).as_("ans")).collect() + +print(ans) From 67c5dd52ac2a65c04453732b4f574873c9aea3ea Mon Sep 17 00:00:00 2001 From: Leonhard Spiegelberg Date: Fri, 30 Aug 2024 11:42:08 -0700 Subject: [PATCH 2/7] initial udf draft. Most importantly: Fixed in conftest.py localtest session setup. --- src/snowflake/snowpark/_internal/ast_utils.py | 88 +++++++++++++++++- src/snowflake/snowpark/dataframe.py | 4 + src/snowflake/snowpark/functions.py | 1 + src/snowflake/snowpark/mock/_udf.py | 38 +++++++- src/snowflake/snowpark/udf.py | 93 +++++++------------ tests/ast/conftest.py | 5 +- tests/ast/data/col_udf.test | 17 ++++ 7 files changed, 180 insertions(+), 66 deletions(-) create mode 100644 tests/ast/data/col_udf.test diff --git a/src/snowflake/snowpark/_internal/ast_utils.py b/src/snowflake/snowpark/_internal/ast_utils.py index b2b80e5416a..3b9c725491a 100644 --- a/src/snowflake/snowpark/_internal/ast_utils.py +++ b/src/snowflake/snowpark/_internal/ast_utils.py @@ -9,7 +9,8 @@ import sys from functools import reduce from pathlib import Path -from typing import Any, Dict, Iterable, Optional, Tuple, Union +from types import ModuleType +from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple, Union import snowflake.snowpark import snowflake.snowpark._internal.proto.ast_pb2 as proto @@ -31,6 +32,7 @@ ColumnOrSqlExpr, ) from snowflake.snowpark._internal.utils import str_to_enum +from snowflake.snowpark.types import DataType # This flag causes an explicit error to be raised if any Snowpark object instance is missing an AST or field, when this # AST or field is required to populate the AST field of a different Snowpark object instance. @@ -725,3 +727,87 @@ def fill_sp_write_file( t = expr.copy_options.add() t._1 = k build_expr_from_python_val(t._2, v) + + +def build_udf( + ast: proto.Udf, + func: Union[Callable, Tuple[str, str]], + return_type: Optional[DataType], + input_types: Optional[List[DataType]], + name: Optional[str], + stage_location: Optional[str] = None, + imports: Optional[List[Union[str, Tuple[str, str]]]] = None, + packages: Optional[List[Union[str, ModuleType]]] = None, + replace: bool = False, + if_not_exists: bool = False, + parallel: int = 4, + max_batch_size: Optional[int] = None, + strict: bool = False, + secure: bool = False, + external_access_integrations: Optional[List[str]] = None, + secrets: Optional[Dict[str, str]] = None, + immutable: bool = False, + comment: Optional[str] = None, + *, + statement_params: Optional[Dict[str, str]] = None, + source_code_display: bool = True, + is_permanent: bool = False, + **kwargs, +): + """Helper function to encode UDF parameters (used in both regular and mock UDFRegistration).""" + if name is not None: + _set_fn_name(name, ast) + else: + # infer from callable, i.e. done for an anonymous function + _set_fn_name(repr(func), ast) + + if return_type is not None: + return_type._fill_ast(ast.return_type) + if input_types is not None and len(input_types) != 0: + for input_type in input_types: + input_type._fill_ast(ast.input_types.list.add()) + ast.is_permanent = is_permanent + if stage_location is not None: + ast.stage_location = stage_location + if imports is not None and len(imports) != 0: + raise NotImplementedError + if packages is not None and len(packages) != 0: + for package in packages: + if isinstance(package, ModuleType): + raise NotImplementedError + p = ast.packages.add() # noqa: F841 + p = package # noqa: F841 + ast.replace = replace + ast.if_not_exists = if_not_exists + ast.parallel = parallel + if max_batch_size is not None: + ast.max_batch_size = max_batch_size + + if statement_params is not None and len(statement_params) != 0: + for k, v in statement_params.items(): + t = ast.statement_params.add() + t._1 = k + t._2 = v + + ast.source_code_display = source_code_display + ast.strict = strict + ast.secure = secure + if ( + external_access_integrations is not None + and len(external_access_integrations) != 0 + ): + for e in external_access_integrations: + p_e = ast.external_access_integrations.add() # noqa: F841 + p_e = e # noqa: F841 + if secrets is not None and len(secrets) != 0: + for k, v in secrets.items(): + t = ast.secrets.add() + t._1 = k + t._2 = v + ast.immutable = immutable + if comment is not None: + ast.comment = comment + for k, v in kwargs.items(): + t = ast.kwargs.add() + t._1 = k + build_expr_from_python_val(t._2, v) diff --git a/src/snowflake/snowpark/dataframe.py b/src/snowflake/snowpark/dataframe.py index 3f1059d030c..4e6a393745f 100644 --- a/src/snowflake/snowpark/dataframe.py +++ b/src/snowflake/snowpark/dataframe.py @@ -5117,6 +5117,10 @@ def _with_plan(self, plan, ast_stmt=None) -> "DataFrame": """ df = DataFrame(self._session, plan, ast_stmt=ast_stmt) df._statement_params = self._statement_params + + if ast_stmt is not None: + df._ast_id = ast_stmt.var_id.bitfield1 + return df def _get_column_names_from_column_or_name_list( diff --git a/src/snowflake/snowpark/functions.py b/src/snowflake/snowpark/functions.py index 8d275aa401f..4d30f206997 100644 --- a/src/snowflake/snowpark/functions.py +++ b/src/snowflake/snowpark/functions.py @@ -7493,6 +7493,7 @@ def udf( session = snowflake.snowpark.session._get_sandbox_conditional_active_session( session ) + if session is None: udf_registration_method = UDFRegistration(session=session).register else: diff --git a/src/snowflake/snowpark/mock/_udf.py b/src/snowflake/snowpark/mock/_udf.py index 7cedf0de660..2eab2eab9e4 100644 --- a/src/snowflake/snowpark/mock/_udf.py +++ b/src/snowflake/snowpark/mock/_udf.py @@ -4,6 +4,8 @@ from types import ModuleType from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union +import snowflake.snowpark._internal.proto.ast_pb2 as proto +from snowflake.snowpark._internal.ast_utils import build_udf from snowflake.snowpark._internal.udf_utils import ( check_python_runtime_version, process_registration_inputs, @@ -105,7 +107,38 @@ def _do_register_udf( skip_upload_on_content_match: bool = False, is_permanent: bool = False, native_app_params: Optional[Dict[str, Any]] = None, + _emit_ast: bool = True, + **kwargs, ) -> UserDefinedFunction: + + ast = None + if _emit_ast: + ast = proto.Udf() + build_udf( + ast, + func, + return_type, + input_types, + name, + stage_location, + imports, + packages, + replace, + if_not_exists, + parallel, + max_batch_size, + strict, + secure, + external_access_integrations, + secrets, + immutable, + comment, + statement_params=statement_params, + source_code_display=source_code_display, + is_permanent=is_permanent, + **kwargs, + ) + if is_permanent: self._session._conn.log_not_supported_error( external_feature_name="udf", @@ -148,7 +181,9 @@ def _do_register_udf( raise ValueError("options replace and if_not_exists are incompatible") if udf_name in self._registry and if_not_exists: - return self._registry[udf_name] + ans = self._registry[udf_name] + ans._ast = ast + return ans if udf_name in self._registry and not replace: raise SnowparkSQLException( @@ -168,6 +203,7 @@ def _do_register_udf( strict=strict, packages=packages, use_session_imports=imports is None, + _ast=ast, ) if type(func) is tuple: # update file registration diff --git a/src/snowflake/snowpark/udf.py b/src/snowflake/snowpark/udf.py index 472fa883374..8d516bec191 100644 --- a/src/snowflake/snowpark/udf.py +++ b/src/snowflake/snowpark/udf.py @@ -22,11 +22,7 @@ import snowflake.snowpark._internal.proto.ast_pb2 as proto from snowflake.connector import ProgrammingError from snowflake.snowpark._internal.analyzer.expression import Expression, SnowflakeUDF -from snowflake.snowpark._internal.ast_utils import ( - _set_fn_name, - build_expr_from_python_val, - build_udf_apply, -) +from snowflake.snowpark._internal.ast_utils import build_udf, build_udf_apply from snowflake.snowpark._internal.error_message import SnowparkClientExceptionMessages from snowflake.snowpark._internal.open_telemetry import ( open_telemetry_udf_context_manager, @@ -83,6 +79,7 @@ def __init__( name: str, is_return_nullable: bool = False, packages: Optional[List[Union[str, ModuleType]]] = None, + _ast: Optional[proto.Udf] = None, ) -> None: #: The Python function or a tuple containing the Python file path and the function name. self.func: Union[Callable, Tuple[str, str]] = func @@ -95,7 +92,7 @@ def __init__( self._packages = packages # If None, no ast will be emitted. Else, passed whenever udf is invoked. - self._ast = None + self._ast = _ast def __call__( self, *cols: Union[ColumnOrName, Iterable[ColumnOrName]], _emit_ast: bool = True @@ -850,62 +847,34 @@ def _do_register_udf( ast = None if _emit_ast: ast = proto.Udf() - if name is not None: - _set_fn_name(name, ast) - else: - # infer from callable, i.e. done for an anonymous function - _set_fn_name(repr(func), ast) - - if return_type is not None: - return_type._fill_ast(ast.return_type) - if input_types is not None and len(input_types) != 0: - for input_type in input_types: - input_type._fill_ast(ast.input_types.list.add()) - ast.is_permanent = is_permanent - if stage_location is not None: - ast.stage_location = stage_location - if imports is not None and len(imports) != 0: - raise NotImplementedError - if packages is not None and len(packages) != 0: - for package in packages: - if isinstance(package, ModuleType): - raise NotImplementedError - p = ast.packages.add() # noqa: F841 - p = package # noqa: F841 - ast.replace = replace - ast.if_not_exists = if_not_exists - ast.parallel = parallel - if max_batch_size is not None: - ast.max_batch_size = max_batch_size - - if statement_params is not None and len(statement_params) != 0: - for k, v in statement_params.items(): - t = ast.statement_params.add() - t._1 = k - t._2 = v - - ast.source_code_display = source_code_display - ast.strict = strict - ast.secure = secure - if ( - external_access_integrations is not None - and len(external_access_integrations) != 0 - ): - for e in external_access_integrations: - p_e = ast.external_access_integrations.add() # noqa: F841 - p_e = e # noqa: F841 - if secrets is not None and len(secrets) != 0: - for k, v in secrets.items(): - t = ast.secrets.add() - t._1 = k - t._2 = v - ast.immutable = immutable - if comment is not None: - ast.comment = comment - for k, v in kwargs.items(): - t = ast.kwargs.add() - t._1 = k - build_expr_from_python_val(t._2, v) + build_udf( + ast, + func, + return_type, + input_types, + name, + stage_location, + imports, + packages, + replace, + if_not_exists, + parallel, + max_batch_size, + from_pandas_udf_function, + strict, + secure, + external_access_integrations, + secrets, + immutable, + comment, + native_app_params, + statement_params, + source_code_display, + api_call_source, + skip_upload_on_content_match, + is_permanent, + **kwargs, + ) # get the udf name, return and input types ( diff --git a/tests/ast/conftest.py b/tests/ast/conftest.py index 3ff69ec8d7b..971710af4ef 100644 --- a/tests/ast/conftest.py +++ b/tests/ast/conftest.py @@ -7,7 +7,6 @@ import pytest from snowflake.snowpark import Session -from snowflake.snowpark.mock._connection import MockServerConnection def default_unparser_path(): @@ -41,7 +40,9 @@ def pytest_configure(config): @pytest.fixture(scope="function") def session(): - with Session(MockServerConnection()) as s: + # Note: Do NOT use Session(MockServerConnection()), as this doesn't setup the correct registrations throughout snowpark. + # Need to use the Session.builder to properly register this as active session etc. + with Session.builder.config("local_testing", True).create() as s: yield s diff --git a/tests/ast/data/col_udf.test b/tests/ast/data/col_udf.test new file mode 100644 index 00000000000..9e56ed21f57 --- /dev/null +++ b/tests/ast/data/col_udf.test @@ -0,0 +1,17 @@ +## TEST CASE + +from snowflake.snowpark.functions import col, udf + +from snowflake.snowpark.types import IntegerType + +add_one = udf(lambda x: x + 1, return_type=IntegerType(), input_types=[IntegerType()]) + +df = session.create_dataframe([1, 2, 3], schema=["a"]) + +df.select(add_one(col("a")).as_("ans")).collect() + +## EXPECTED OUTPUT + +df = session.create_dataframe([1, 2, 3], schema=["a"]) + +df.select(call_udf(". at 0x7fec00566d30>", col("a")).as_("ans")).collect() From 2324f8532219d9ed738f6163936e9b5280adf073 Mon Sep 17 00:00:00 2001 From: Leonhard Spiegelberg Date: Fri, 30 Aug 2024 14:25:49 -0700 Subject: [PATCH 3/7] fixed udf tracking with new entity --- src/snowflake/snowpark/_internal/ast.py | 23 +- src/snowflake/snowpark/_internal/ast_utils.py | 41 +- .../snowpark/_internal/proto/ast_pb2.py | 902 +++++++++--------- src/snowflake/snowpark/mock/_udf.py | 10 +- src/snowflake/snowpark/udf.py | 15 +- tests/ast/data/col_udf.test | 9 +- 6 files changed, 534 insertions(+), 466 deletions(-) diff --git a/src/snowflake/snowpark/_internal/ast.py b/src/snowflake/snowpark/_internal/ast.py index 99785dc6c53..f1ef72a6bdf 100644 --- a/src/snowflake/snowpark/_internal/ast.py +++ b/src/snowflake/snowpark/_internal/ast.py @@ -8,7 +8,8 @@ import json import sys import uuid -from typing import Any, Sequence, Tuple +from dataclasses import dataclass +from typing import Any, Callable, Sequence, Tuple from google.protobuf.json_format import ParseDict @@ -120,12 +121,21 @@ def decode_ast_response_from_snowpark(res: dict, session_parameters: Any) -> Any ) +@dataclass +class TrackedCallable: + var_id: int + func: Callable + + class AstBatch: def __init__(self, session) -> None: self._session = session self._id_gen = itertools.count(start=1) self._init_batch() + # Track callables in this dict (memory id -> TrackedCallable). + self._callables = {} + def assign(self, symbol=None): stmt = self._request.body.add() # TODO: extended BindingId spec from the branch snowpark-ir. @@ -161,3 +171,14 @@ def _init_batch(self): self._request.client_language.python_language.version.label = releaselevel self._request.client_ast_version = CLIENT_AST_VERSION + + def register_callable(self, func: Callable) -> int: + """tracks client-side an actual callable and returns an id.""" + k = id(func) + + if k in self._callables.keys(): + return self._callables[k].var_id + + next_id = len(self._callables) + self._callables[k] = TrackedCallable(var_id=next_id, func=func) + return next_id diff --git a/src/snowflake/snowpark/_internal/ast_utils.py b/src/snowflake/snowpark/_internal/ast_utils.py index 3b9c725491a..28c403e3d3b 100644 --- a/src/snowflake/snowpark/_internal/ast_utils.py +++ b/src/snowflake/snowpark/_internal/ast_utils.py @@ -25,6 +25,7 @@ ) from snowflake.snowpark._internal.analyzer.snowflake_plan_node import SaveMode from snowflake.snowpark._internal.analyzer.unary_expression import Alias +from snowflake.snowpark._internal.ast import AstBatch from snowflake.snowpark._internal.type_utils import ( VALID_PYTHON_TYPES_FOR_LITERAL_VALUE, ColumnOrLiteral, @@ -251,12 +252,11 @@ def build_builtin_fn_apply( def build_udf_apply( ast: proto.Expr, - udf_name: str, + udf_id: int, *args: Tuple[Union[proto.Expr, Any]], ) -> None: expr = with_src_position(ast.apply_expr) - _set_fn_name(udf_name, expr.fn.udf) - with_src_position(expr.fn.udf) + expr.fn.sp_fn_ref.id.bitfield1 = udf_id build_fn_apply_args(ast, *args) @@ -729,6 +729,30 @@ def fill_sp_write_file( build_expr_from_python_val(t._2, v) +def build_proto_from_callable( + expr_builder: proto.SpCallable, func: Callable, ast_batch: Optional[AstBatch] = None +): + """Registers a python callable (i.e., a function or lambda) to the AstBatch and encodes it as SpCallable protobuf.""" + + udf_id = None + if ast_batch is not None: + udf_id = ast_batch.register_callable(func) + expr_builder.id = udf_id + + if callable(func) and func.__name__ == "": + # Won't be able to extract name, unless there is = + # use string rep. + expr_builder.name = "" + + # If it is not the first tracked lambda, use a unique ref name. + if udf_id is not None and udf_id != 0: + expr_builder.name = f"" + + else: + # Use the actual function name. Note: We do not support different scopes yet, need to be careful with this then. + expr_builder.name = func.__name__ + + def build_udf( ast: proto.Udf, func: Union[Callable, Tuple[str, str]], @@ -752,14 +776,19 @@ def build_udf( statement_params: Optional[Dict[str, str]] = None, source_code_display: bool = True, is_permanent: bool = False, + session=None, **kwargs, ): """Helper function to encode UDF parameters (used in both regular and mock UDFRegistration).""" + # This is the name the UDF is registered to. Not the name to display when unaparsing, that name is captured in callable. + if name is not None: _set_fn_name(name, ast) - else: - # infer from callable, i.e. done for an anonymous function - _set_fn_name(repr(func), ast) + + # TODO: to unparse/reference callables client-side - track them in ast_batch. + build_proto_from_callable( + ast.func, func, session._ast_batch if session is not None else None + ) if return_type is not None: return_type._fill_ast(ast.return_type) diff --git a/src/snowflake/snowpark/_internal/proto/ast_pb2.py b/src/snowflake/snowpark/_internal/proto/ast_pb2.py index 6b02a9f2195..bdfcd3968bb 100644 --- a/src/snowflake/snowpark/_internal/proto/ast_pb2.py +++ b/src/snowflake/snowpark/_internal/proto/ast_pb2.py @@ -23,7 +23,7 @@ import snowflake.snowpark._internal.proto.scalapb_pb2 as scalapb_dot_scalapb__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( - b'\n\x0fproto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x15scalapb/scalapb.proto"$\n\tList_Expr\x12\x17\n\x04list\x18\x01 \x03(\x0b\x32\t.ast.Expr"4\n\x11List_SpColumnExpr\x12\x1f\n\x04list\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr"0\n\x0fList_SpDataType\x12\x1d\n\x04list\x18\x01 \x03(\x0b\x32\x0f.ast.SpDataType"\x1b\n\x0bList_String\x12\x0c\n\x04list\x18\x01 \x03(\t"3\n\rMap_Expr_Expr\x12"\n\x04list\x18\x01 \x03(\x0b\x32\x14.ast.Tuple_Expr_Expr"7\n\x0fMap_String_Expr\x12$\n\x04list\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"A\n\x14Map_String_SpVariant\x12)\n\x04list\x18\x01 \x03(\x0b\x32\x1b.ast.Tuple_String_SpVariant";\n\x11Map_String_String\x12&\n\x04list\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"?\n\x0fTuple_Expr_Expr\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"5\n\x10Tuple_Expr_Float\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\n\n\x02_2\x18\x02 \x01(\x01"6\n\x11Tuple_String_Expr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"2\n\x18Tuple_String_List_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x03(\t"F\n\x19Tuple_String_SpColumnExpr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1d\n\x02_2\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"@\n\x16Tuple_String_SpVariant\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"-\n\x13Tuple_String_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x01(\t"\xa4\x01\n\x08Language\x12*\n\rjava_language\x18\x01 \x01(\x0b\x32\x11.ast.JavaLanguageH\x00\x12.\n\x0fpython_language\x18\x02 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x03 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x42\x0e\n\x0csealed_value"/\n\x0ePythonLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version".\n\rScalaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"-\n\x0cJavaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"E\n\x07Version\x12\r\n\x05label\x18\x01 \x01(\t\x12\r\n\x05major\x18\x02 \x01(\x03\x12\r\n\x05minor\x18\x03 \x01(\x03\x12\r\n\x05patch\x18\x04 \x01(\x03"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"v\n\x06\x46nName\x12\'\n\x0c\x66n_name_flat\x18\x01 \x01(\x0b\x32\x0f.ast.FnNameFlatH\x00\x12\x33\n\x12\x66n_name_structured\x18\x02 \x01(\x0b\x32\x15.ast.FnNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1a\n\nFnNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t" \n\x10\x46nNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"\xc8\x01\n\x0fTableFnCallType\x12%\n\x1btable_fn_call_type__builtin\x18\x01 \x01(\x08H\x00\x12+\n!table_fn_call_type__call_table_fn\x18\x02 \x01(\x08H\x00\x12.\n$table_fn_call_type__session_table_fn\x18\x03 \x01(\x08H\x00\x12&\n\x1ctable_fn_call_type__table_fn\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xaa\x02\n\x18SpWindowRelativePosition\x12\x32\n(sp_window_relative_position__current_row\x18\x01 \x01(\x08H\x00\x12W\n%sp_window_relative_position__position\x18\x02 \x01(\x0b\x32&.ast.SpWindowRelativePosition_PositionH\x00\x12:\n0sp_window_relative_position__unbounded_following\x18\x03 \x01(\x08H\x00\x12:\n0sp_window_relative_position__unbounded_preceding\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant".\n!SpWindowRelativePosition_Position\x12\t\n\x01n\x18\x01 \x01(\x03"q\n\x0bPdIndexExpr\x12 \n\x08\x66lex_ord\x18\x01 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x02 \x01(\x0b\x32\x08.ast.KeyH\x00\x12\x17\n\x03ord\x18\x03 \x01(\x0b\x32\x08.ast.OrdH\x00\x42\x0e\n\x0csealed_value"\x1b\n\x03Ord\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1f\n\x07\x46lexOrd\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1b\n\x03Key\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\xb9\x02\n\x12PdProjectIndexExpr\x12/\n\x10\x62ool_filter_list\x18\x01 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x12)\n\rflex_ord_list\x18\x02 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12+\n\x0e\x66lex_ord_range\x18\x03 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12 \n\x08key_list\x18\x04 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12"\n\tkey_range\x18\x05 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x06 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12"\n\tord_range\x18\x07 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"Z\n\x0c\x46lexOrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"=\n\x08KeyRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr""\n\x07OrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr"&\n\x0b\x46lexOrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr""\n\x07KeyList\x12\x17\n\x04keys\x18\x01 \x01(\x0b\x32\t.ast.Expr"+\n\x0e\x42oolFilterList\x12\x19\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\t.ast.Expr"}\n\rSpFlattenMode\x12\x1f\n\x15sp_flatten_mode_array\x18\x01 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x02 \x01(\x08H\x00\x12 \n\x16sp_flatten_mode_object\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"P\n\x0eSpTableVariant\x12\x1a\n\x10sp_session_table\x18\x01 \x01(\x08H\x00\x12\x17\n\rsp_table_init\x18\x02 \x01(\x08H\x00\x42\t\n\x07variant"\xc0\x01\n\nSpSaveMode\x12\x1d\n\x13sp_save_mode_append\x18\x01 \x01(\x08H\x00\x12&\n\x1csp_save_mode_error_if_exists\x18\x02 \x01(\x08H\x00\x12\x1d\n\x13sp_save_mode_ignore\x18\x03 \x01(\x08H\x00\x12 \n\x16sp_save_mode_overwrite\x18\x04 \x01(\x08H\x00\x12\x1f\n\x15sp_save_mode_truncate\x18\x05 \x01(\x08H\x00\x42\t\n\x07variant"\x88\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__cross\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x02 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__inner\x18\x03 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x04 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x07 \x01(\x08H\x00\x42\t\n\x07variant"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x03 \x01(\x08H\x00\x12#\n\x19sp_timestamp_time_zone_tz\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xa2\x06\n\nSpDataType\x12)\n\rsp_array_type\x18\x01 \x01(\x0b\x32\x10.ast.SpArrayTypeH\x00\x12\x18\n\x0esp_binary_type\x18\x02 \x01(\x08H\x00\x12\x19\n\x0fsp_boolean_type\x18\x03 \x01(\x08H\x00\x12\x16\n\x0csp_byte_type\x18\x04 \x01(\x08H\x00\x12\x37\n\x14sp_column_identifier\x18\x05 \x01(\x0b\x32\x17.ast.SpColumnIdentifierH\x00\x12\x16\n\x0csp_date_type\x18\x06 \x01(\x08H\x00\x12-\n\x0fsp_decimal_type\x18\x07 \x01(\x0b\x32\x12.ast.SpDecimalTypeH\x00\x12\x18\n\x0esp_double_type\x18\x08 \x01(\x08H\x00\x12\x17\n\rsp_float_type\x18\t \x01(\x08H\x00\x12\x1b\n\x11sp_geography_type\x18\n \x01(\x08H\x00\x12\x1a\n\x10sp_geometry_type\x18\x0b \x01(\x08H\x00\x12\x19\n\x0fsp_integer_type\x18\x0c \x01(\x08H\x00\x12\x16\n\x0csp_long_type\x18\r \x01(\x08H\x00\x12%\n\x0bsp_map_type\x18\x0e \x01(\x0b\x32\x0e.ast.SpMapTypeH\x00\x12\x16\n\x0csp_null_type\x18\x0f \x01(\x08H\x00\x12\x17\n\rsp_short_type\x18\x10 \x01(\x08H\x00\x12+\n\x0esp_string_type\x18\x11 \x01(\x0b\x32\x11.ast.SpStringTypeH\x00\x12-\n\x0fsp_struct_field\x18\x12 \x01(\x0b\x32\x12.ast.SpStructFieldH\x00\x12+\n\x0esp_struct_type\x18\x13 \x01(\x0b\x32\x11.ast.SpStructTypeH\x00\x12\x16\n\x0csp_time_type\x18\x14 \x01(\x08H\x00\x12\x31\n\x11sp_timestamp_type\x18\x15 \x01(\x0b\x32\x14.ast.SpTimestampTypeH\x00\x12\x19\n\x0fsp_variant_type\x18\x16 \x01(\x08H\x00\x12+\n\x0esp_vector_type\x18\x17 \x01(\x0b\x32\x11.ast.SpVectorTypeH\x00\x42\t\n\x07variant">\n\x0bSpArrayType\x12\x12\n\nstructured\x18\x01 \x01(\x08\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType""\n\x12SpColumnIdentifier\x12\x0c\n\x04name\x18\x01 \x01(\t"1\n\rSpDecimalType\x12\x11\n\tprecision\x18\x01 \x01(\x03\x12\r\n\x05scale\x18\x02 \x01(\x03"c\n\tSpMapType\x12\x1f\n\x06key_ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08\x12!\n\x08value_ty\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType";\n\x0cSpStringType\x12+\n\x06length\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"y\n\rSpStructField\x12\x32\n\x11\x63olumn_identifier\x18\x01 \x01(\x0b\x32\x17.ast.SpColumnIdentifier\x12"\n\tdata_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x10\n\x08nullable\x18\x03 \x01(\x08"F\n\x0cSpStructType\x12"\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x12.ast.SpStructField\x12\x12\n\nstructured\x18\x02 \x01(\x08">\n\x0fSpTimestampType\x12+\n\ttime_zone\x18\x01 \x01(\x0b\x32\x18.ast.SpTimestampTimeZone">\n\x0cSpVectorType\x12\x11\n\tdimension\x18\x01 \x01(\x03\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType"\xc2\x05\n\tSpVariant\x12<\n\x17sp_variant__big_decimal\x18\x01 \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12\x34\n\x13sp_variant__big_int\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12/\n\x10sp_variant__bool\x18\x03 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x31\n\x11sp_variant__bytes\x18\x04 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12/\n\x10sp_variant__date\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12\x33\n\x12sp_variant__double\x18\x06 \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\x00\x12\x31\n\x11sp_variant__float\x18\x07 \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12-\n\x0fsp_variant__int\x18\x08 \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12/\n\x10sp_variant__list\x18\t \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x33\n\x12sp_variant__object\x18\n \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12\x33\n\x12sp_variant__string\x18\x0b \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__time\x18\x0c \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x39\n\x15sp_variant__timestamp\x18\r \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x42\x0e\n\x0csealed_value"7\n\x10SpVariant_Object\x12#\n\x01v\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"3\n\x0eSpVariant_List\x12!\n\x01v\x18\x01 \x03(\x0b\x32\x16.ast.Map_String_String" \n\x13SpVariant_Timestamp\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Date\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Time\x12\t\n\x01v\x18\x01 \x01(\x04"\x1c\n\x0fSpVariant_Bytes\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1d\n\x10SpVariant_String\x12\t\n\x01v\x18\x01 \x01(\t"\x1b\n\x0eSpVariant_Bool\x12\t\n\x01v\x18\x01 \x01(\x08"\x1d\n\x10SpVariant_BigInt\x12\t\n\x01v\x18\x01 \x01(\x0c"!\n\x14SpVariant_BigDecimal\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1a\n\rSpVariant_Int\x12\t\n\x01v\x18\x01 \x01(\x03"\x1c\n\x0fSpVariant_Float\x12\t\n\x01v\x18\x01 \x01(\x04"\x1d\n\x10SpVariant_Double\x12\t\n\x01v\x18\x01 \x01(\x04"\x91\x01\n\x0bSpTableName\x12\x32\n\x12sp_table_name_flat\x18\x01 \x01(\x0b\x32\x14.ast.SpTableNameFlatH\x00\x12>\n\x18sp_table_name_structured\x18\x02 \x01(\x0b\x32\x1a.ast.SpTableNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1f\n\x0fSpTableNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t"%\n\x15SpTableNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"=\n\x15StagedPandasDataframe\x12$\n\ntemp_table\x18\x01 \x01(\x0b\x32\x10.ast.SpTableName"\xe1\x01\n\x0fSpDataframeData\x12<\n\x17sp_dataframe_data__list\x18\x01 \x01(\x0b\x32\x19.ast.SpDataframeData_ListH\x00\x12@\n\x19sp_dataframe_data__pandas\x18\x02 \x01(\x0b\x32\x1b.ast.SpDataframeData_PandasH\x00\x12>\n\x18sp_dataframe_data__tuple\x18\x03 \x01(\x0b\x32\x1a.ast.SpDataframeData_TupleH\x00\x42\x0e\n\x0csealed_value"-\n\x14SpDataframeData_List\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr".\n\x15SpDataframeData_Tuple\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr"?\n\x16SpDataframeData_Pandas\x12%\n\x01v\x18\x01 \x01(\x0b\x32\x1a.ast.StagedPandasDataframe"\xab\x01\n\x11SpDataframeSchema\x12@\n\x19sp_dataframe_schema__list\x18\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSchema_ListH\x00\x12\x44\n\x1bsp_dataframe_schema__struct\x18\x02 \x01(\x0b\x32\x1d.ast.SpDataframeSchema_StructH\x00\x42\x0e\n\x0csealed_value"$\n\x16SpDataframeSchema_List\x12\n\n\x02vs\x18\x01 \x03(\t"8\n\x18SpDataframeSchema_Struct\x12\x1c\n\x01v\x18\x01 \x01(\x0b\x32\x11.ast.SpStructType"&\n\nSpCallable\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t"k\n\x0bSrcPosition\x12\x12\n\nend_column\x18\x01 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x02 \x01(\x03\x12\x0c\n\x04\x66ile\x18\x03 \x01(\t\x12\x14\n\x0cstart_column\x18\x04 \x01(\x03\x12\x12\n\nstart_line\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"\x8c\x01\n\x07Request\x12\x17\n\x04\x62ody\x18\x01 \x03(\x0b\x32\t.ast.Stmt\x12\x1a\n\x12\x63lient_ast_version\x18\x02 \x01(\x03\x12&\n\x0f\x63lient_language\x18\x03 \x01(\x0b\x32\r.ast.Language\x12$\n\x0e\x63lient_version\x18\x04 \x01(\x0b\x32\x0c.ast.Version"%\n\x08Response\x12\x19\n\x04\x62ody\x18\x01 \x03(\x0b\x32\x0b.ast.Result"\xde\x05\n\x05\x43onst\x12-\n\x0f\x62ig_decimal_val\x18\x01 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x02 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x03 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x04 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x05 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x06 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x07 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\x08 \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\t \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\n \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0b \x01(\x0b\x32\x0c.ast.NullValH\x00\x12-\n\x0fpython_date_val\x18\x0c \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\r \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x0e \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12-\n\x0fsp_datatype_val\x18\x0f \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12$\n\nstring_val\x18\x10 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x11 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x12 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"(\n\x07NoneVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"(\n\x07NullVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"3\n\x07\x42oolVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x08"4\n\x08Int32Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"4\n\x08Int64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"6\n\nFloat64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x01"5\n\tBigIntVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"U\n\rBigDecimalVal\x12\r\n\x05scale\x18\x01 \x01(\x03\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x03 \x01(\x0c"5\n\tStringVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\t"5\n\tBinaryVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"8\n\x0cTimestampVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07\x44\x61teVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07TimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"\xc1\x01\n\x12PythonTimestampVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x03 \x01(\x03\x12\x0e\n\x06minute\x18\x04 \x01(\x03\x12\r\n\x05month\x18\x05 \x01(\x03\x12\x0e\n\x06second\x18\x06 \x01(\x03\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x08 \x01(\x0b\x32\x13.ast.PythonTimeZone\x12\x0c\n\x04year\x18\t \x01(\x03"X\n\rPythonDateVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\r\n\x05month\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x0c\n\x04hour\x18\x01 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x17\n\x04\x62ody\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"Q\n\rSpDatatypeVal\x12!\n\x08\x64\x61tatype\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x06IfExpr\x12\x17\n\x04\x63ond\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition">\n\x07SomeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Expr"@\n\x08TupleVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"?\n\x07ListVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"F\n\tSeqMapVal\x12\x1a\n\x03kvs\x18\x01 \x03(\x0b\x32\r.ast.TupleVal\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\tApplyExpr\x12\x1a\n\x02\x66n\x18\x01 \x01(\x0b\x32\x0e.ast.FnRefExpr\x12*\n\nnamed_args\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x1b\n\x08pos_args\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xda\x01\n\tFnRefExpr\x12$\n\nbuiltin_fn\x18\x01 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12/\n\x10session_table_fn\x18\x02 \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12\x30\n\x10stored_procedure\x18\x03 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12 \n\x08table_fn\x18\x04 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12\x17\n\x03udf\x18\x05 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"E\n\tBuiltinFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xb3\x01\n\x0fStoredProcedure\x12\x34\n\x10log_on_exception\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x30\n\x10statement_params\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"\xad\x05\n\x03Udf\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12$\n\x1c\x65xternal_access_integrations\x18\x02 \x03(\t\x12\x1d\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x0f.ast.SpCallable\x12\x15\n\rif_not_exists\x18\x04 \x01(\x08\x12\x11\n\timmutable\x18\x05 \x01(\x08\x12!\n\x07imports\x18\x06 \x03(\x0b\x32\x10.ast.SpTableName\x12)\n\x0binput_types\x18\x07 \x01(\x0b\x32\x14.ast.List_SpDataType\x12\x14\n\x0cis_permanent\x18\x08 \x01(\x08\x12&\n\x06kwargs\x18\t \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x33\n\x0emax_batch_size\x18\n \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x19\n\x04name\x18\x0b \x01(\x0b\x32\x0b.ast.FnName\x12\x10\n\x08packages\x18\x0c \x03(\t\x12\x10\n\x08parallel\x18\r \x01(\x03\x12\x0f\n\x07replace\x18\x0e \x01(\x08\x12$\n\x0breturn_type\x18\x0f \x01(\x0b\x32\x0f.ast.SpDataType\x12)\n\x07secrets\x18\x10 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06secure\x18\x11 \x01(\x08\x12\x1b\n\x13source_code_display\x18\x12 \x01(\x08\x12\x1d\n\x03src\x18\x13 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0estage_location\x18\x14 \x01(\t\x12\x32\n\x10statement_params\x18\x15 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06strict\x18\x16 \x01(\x08"J\n\x0eSessionTableFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x07TableFn\x12\'\n\tcall_type\x18\x01 \x01(\x0b\x32\x14.ast.TableFnCallType\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"F\n\x07UnaryOp\x12\x17\n\x03neg\x18\x01 \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03not\x18\x02 \x01(\x0b\x32\x08.ast.NotH\x00\x42\t\n\x07variant"\xc6\x03\n\x05\x42inOp\x12\x17\n\x03\x61\x64\x64\x18\x01 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x02 \x01(\x0b\x32\x08.ast.AndH\x00\x12\x1e\n\x07\x62it_and\x18\x03 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x04 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x05 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12\x17\n\x03\x64iv\x18\x06 \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x07 \x01(\x0b\x32\x07.ast.EqH\x00\x12\x17\n\x03geq\x18\x08 \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18\t \x01(\x0b\x32\x07.ast.GtH\x00\x12\x17\n\x03leq\x18\n \x01(\x0b\x32\x08.ast.LeqH\x00\x12\x15\n\x02lt\x18\x0b \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18\x0c \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18\r \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neq\x18\x0e \x01(\x0b\x32\x08.ast.NeqH\x00\x12\x15\n\x02or\x18\x0f \x01(\x0b\x32\x07.ast.OrH\x00\x12\x17\n\x03pow\x18\x10 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x17\n\x03sub\x18\x11 \x01(\x0b\x32\x08.ast.SubH\x00\x42\t\n\x07variant"@\n\x03Not\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41nd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Or\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02\x45q\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Neq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Lt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Leq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Gt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Geq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"@\n\x03Neg\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41\x64\x64\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Sub\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mul\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x44iv\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mod\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Pow\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itAnd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x05\x42itOr\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itXor\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x08RangeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05start\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x04 \x01(\x0b\x32\t.ast.Expr"\xe3\x02\n\x10SpWindowSpecExpr\x12\x36\n\x14sp_window_spec_empty\x18\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12;\n\x17sp_window_spec_order_by\x18\x02 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x43\n\x1bsp_window_spec_partition_by\x18\x03 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x45\n\x1csp_window_spec_range_between\x18\x04 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x43\n\x1bsp_window_spec_rows_between\x18\x05 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x42\t\n\x07variant"V\n\x11SpWindowSpecEmpty\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x02 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"q\n\x13SpWindowSpecOrderBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"u\n\x17SpWindowSpecPartitionBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb7\x01\n\x18SpWindowSpecRangeBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb6\x01\n\x17SpWindowSpecRowsBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xffW\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12+\n\x11trait_fn_ref_expr\x18\x03 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x05 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x06 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x07 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x08 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\t \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\n \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\x0b \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x0c \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\r \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12/\n\x13trait_sp_write_file\x18\x0e \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x0f \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x10 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x11 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x12 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x13 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x14 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x15 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x16 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x17 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x18 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x19 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x1a \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1b \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1c \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1d \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1e \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1f \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18 \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18! \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18" \x01(\x0b\x32\x07.ast.GtH\x00\x12\x1e\n\x07if_expr\x18# \x01(\x0b\x32\x0b.ast.IfExprH\x00\x12"\n\tint32_val\x18$ \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18% \x01(\x0b\x32\r.ast.Int64ValH\x00\x12\x17\n\x03leq\x18& \x01(\x0b\x32\x08.ast.LeqH\x00\x12 \n\x08list_val\x18\' \x01(\x0b\x32\x0c.ast.ListValH\x00\x12\x15\n\x02lt\x18( \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18) \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18* \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neg\x18+ \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03neq\x18, \x01(\x0b\x32\x08.ast.NeqH\x00\x12 \n\x08none_val\x18- \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12\x17\n\x03not\x18. \x01(\x0b\x32\x08.ast.NotH\x00\x12 \n\x08null_val\x18/ \x01(\x0b\x32\x0c.ast.NullValH\x00\x12\x15\n\x02or\x18\x30 \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x31 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x32 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x33 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x34 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x35 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x36 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x37 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x38 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x39 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18: \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18; \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18< \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18= \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18> \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18? \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18@ \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18\x41 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x42 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x43 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x44 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x45 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12\x34\n\x13sp_column_case_when\x18\x46 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12+\n\x0esp_column_cast\x18G \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18H \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18I \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18J \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18K \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18L \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18M \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18N \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18O \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18P \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18Q \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18R \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18S \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18T \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18U \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18V \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18W \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18X \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18Y \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18Z \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18[ \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18\\ \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18] \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18^ \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18_ \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18` \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x61 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x62 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x63 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x64 \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x65 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18\x66 \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18g \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18h \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18i \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18j \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18k \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18l \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18m \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18n \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18o \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18p \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18q \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18r \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18s \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18t \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18u \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18v \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18w \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18x \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18y \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18z \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18{ \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18| \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18} \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18~ \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x7f \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12Y\n&sp_dataframe_join__table_function__map\x18\x80\x01 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x34\n\x12sp_dataframe_limit\x18\x81\x01 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x46\n\x1csp_dataframe_na_drop__python\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x44\n\x1bsp_dataframe_na_drop__scala\x18\x83\x01 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x84\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x85\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x86\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x87\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x88\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x8a\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x8b\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x8c\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x8d\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x8e\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x8f\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x90\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x91\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x92\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x93\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x94\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x95\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x96\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x97\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x98\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x99\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x9a\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x9b\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x9c\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x9d\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x9e\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x9f\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\xa0\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\xa1\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\xa2\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12.\n\x0fsp_datatype_val\x18\xa3\x01 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12%\n\nsp_flatten\x18\xa4\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\xa5\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xa6\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xa7\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xa8\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xa9\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xaa\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xab\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xac\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xad\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xae\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xaf\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\xb0\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\xb1\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\xb2\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\xb3\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xb4\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xb5\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xb6\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xb7\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xb8\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xb9\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xba\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xbb\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_row\x18\xbc\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xbd\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xbe\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xbf\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xc0\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xc1\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xc2\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xc3\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xc4\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xc5\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xc6\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xc7\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xc8\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xc9\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xca\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xcb\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xcc\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xcd\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xce\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"@\n\x03Ref\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"W\n\x08\x43\x61stExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03typ\x18\x02 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x95\x01\n\x0bPdDataframe\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x03 \x01(\x0b\x32\t.ast.Type\x12\x18\n\x05index\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x01\n\x08PdDropNa\x12\x17\n\x04\x61xis\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06subset\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06thresh\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x12PdDataframeSetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x0fPdDataframeILoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x06PdRepr\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\x12\x13\n\x0bmax_columns\x18\x02 \x01(\x03\x12\x10\n\x08max_rows\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x13\n\x01v\x18\x05 \x01(\x0b\x32\x08.ast.Ref"u\n\x0cPdReprResult\x12\x13\n\x0bnum_columns\x18\x01 \x01(\x03\x12\x18\n\x10num_head_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x10\n\x08num_rows\x18\x04 \x01(\x03\x12\r\n\x05value\x18\x05 \x01(\x0c"\x9e\x01\n\x06Result\x12!\n\x0btrait_error\x18\x01 \x01(\x0b\x32\n.ast.ErrorH\x00\x12\x1e\n\x07\x65val_ok\x18\x02 \x01(\x0b\x32\x0b.ast.EvalOkH\x00\x12\x46\n\x1csession_reset_required_error\x18\x03 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"\xb3\x06\n\nEvalResult\x12!\n\x0btrait_const\x18\x01 \x01(\x0b\x32\n.ast.ConstH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x02 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x03 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x04 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x05 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x06 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x07 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x08 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\t \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\n \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\x0b \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0c \x01(\x0b\x32\x0c.ast.NullValH\x00\x12+\n\x0epd_repr_result\x18\r \x01(\x0b\x32\x11.ast.PdReprResultH\x00\x12-\n\x0fpython_date_val\x18\x0e \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x0f \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x10 \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12-\n\x0fsp_datatype_val\x18\x11 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12$\n\nstring_val\x18\x12 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x13 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x14 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"P\n\x06\x45valOk\x12\x1d\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x0f.ast.EvalResult\x12\x0b\n\x03uid\x18\x02 \x01(\x03\x12\x1a\n\x06var_id\x18\x03 \x01(\x0b\x32\n.ast.VarId"Z\n\x05\x45rror\x12\x46\n\x1csession_reset_required_error\x18\x01 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"D\n\x19SessionResetRequiredError\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xcc\x02\n\x0cSpColumnExpr\x12\x34\n\x13sp_column_case_when\x18\x01 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12\x36\n\x14sp_column_equal_null\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12)\n\rsp_column_ref\x18\x03 \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18\x04 \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x05 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\x06 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x42\t\n\x07variant"8\n\x0bSpColumnRef\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"m\n\x0fSpColumnSqlExpr\x12.\n\x08\x64\x66_alias\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\nSpCaseExpr\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05value\x18\x03 \x01(\x0b\x32\t.ast.Expr"Q\n\x10SpColumnCaseWhen\x12\x1e\n\x05\x63\x61ses\x18\x01 \x03(\x0b\x32\x0f.ast.SpCaseExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x91\n\n\nSpColumnFn\x12-\n\x0fsp_column_alias\x18\x01 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x03 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x04 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x05 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18\x06 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18\x07 \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18\x08 \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12<\n\x17sp_column_in__dataframe\x18\t \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18\n \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18\x0b \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18\x0c \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18\r \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18\x0e \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12>\n\x18sp_column_string_collate\x18\x0f \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18\x10 \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18\x11 \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18\x12 \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18\x13 \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18\x14 \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18\x15 \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18\x16 \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x17 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\\\n\x14SpColumnApply_String\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x0bSpColumnAsc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x0fSpColumnBetween\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"I\n\x10SpColumnEqualNan\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x11SpColumnEqualNull\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"o\n\x14SpColumnIn_Dataframe\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x0eSpColumnIn_Seq\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"G\n\x0eSpColumnIsNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x0cSpColumnName\x12\r\n\x05\x61lias\x18\x01 \x01(\t\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x0cSpColumnOver\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"l\n\x13SpColumnWithinGroup\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x04\x63ols\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"g\n\x12SpColumnStringLike\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x14SpColumnStringRegexp\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\nparameters\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x18SpColumnStringStartsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"j\n\x16SpColumnStringEndsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"}\n\x14SpColumnStringSubstr\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x15SpColumnStringCollate\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12!\n\x0e\x63ollation_spec\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"k\n\x16SpColumnStringContains\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xfa*\n\x0fSpDataframeExpr\x12H\n trait_sp_copyable_dataframe_expr\x18\x01 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x02 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x03 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12\'\n\x0csp_copy_into\x18\x04 \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18\x05 \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18\x06 \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18\x07 \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\x08 \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\t \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\n \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x0b \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x0c \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x37\n\x14sp_dataframe_collect\x18\r \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x33\n\x12sp_dataframe_count\x18\x0e \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12<\n\x17sp_dataframe_cross_join\x18\x0f \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x39\n\x15sp_dataframe_describe\x18\x10 \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\x11 \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18\x12 \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x13 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18\x14 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x15 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x16 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18\x17 \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12;\n\x16sp_dataframe_intersect\x18\x18 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18\x19 \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x1a \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x1b \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x1c \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x1d \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x1e \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18\x1f \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18! \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18" \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18# \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18$ \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18% \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18& \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x35\n\x13sp_dataframe_sample\x18\' \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18( \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x42\n\x1asp_dataframe_select__exprs\x18) \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x31\n\x11sp_dataframe_show\x18* \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x31\n\x11sp_dataframe_sort\x18+ \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12O\n!sp_dataframe_stat_approx_quantile\x18, \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12:\n\x16sp_dataframe_stat_corr\x18- \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x38\n\x15sp_dataframe_stat_cov\x18. \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x43\n\x1bsp_dataframe_stat_cross_tab\x18/ \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x43\n\x1bsp_dataframe_stat_sample_by\x18\x30 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18\x31 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18\x32 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18\x33 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18\x34 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18\x35 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18\x36 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18\x37 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12M\n sp_dataframe_with_column_renamed\x18\x38 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12@\n\x19sp_dataframe_with_columns\x18\x39 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_dataframe_write\x18: \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12$\n\nsp_flatten\x18; \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12(\n\x0csp_generator\x18< \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18= \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18> \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18? \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18@ \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x41 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x42 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x43 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x44 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12S\n#sp_relational_grouped_dataframe_agg\x18\x45 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\x46 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18G \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18H \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18I \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18J \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18K \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18L \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18M \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18N \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18O \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18P \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1c\n\x06sp_sql\x18Q \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18R \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18S \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18T \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12-\n\x0fsp_write_pandas\x18U \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"H\n\x0fSpDataframeShow\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8c\x01\n\x10SpDataframeCount\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xd1\x01\n\x12SpDataframeCollect\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x0e\x63\x61se_sensitive\x18\x02 \x01(\x08\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x18\n\x10log_on_exception\x18\x04 \x01(\x08\x12\x0f\n\x07no_wait\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String"~\n\x11SpCreateDataframe\x12"\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06schema\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeSchema\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x80\x03\n\rSpWritePandas\x12\x19\n\x11\x61uto_create_table\x18\x01 \x01(\x08\x12/\n\nchunk_size\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x13\n\x0b\x63ompression\x18\x03 \x01(\t\x12\x19\n\x11\x63reate_temp_table\x18\x04 \x01(\x08\x12 \n\x02\x64\x66\x18\x05 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06kwargs\x18\x06 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x10\n\x08on_error\x18\x07 \x01(\t\x12\x11\n\toverwrite\x18\x08 \x01(\x08\x12\x10\n\x08parallel\x18\t \x01(\x03\x12\x19\n\x11quote_identifiers\x18\n \x01(\x08\x12\x1d\n\x03src\x18\x0b \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\ntable_name\x18\x0c \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\r \x01(\t"\xb4\x01\n\tSpFlatten\x12\x18\n\x05input\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x02 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x03 \x01(\x08\x12*\n\x04path\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x0bSpGenerator\x12\x1a\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x12time_limit_seconds\x18\x04 \x01(\x03\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\x8c\x01\n\x07SpRange\x12(\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05start\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"P\n\x05SpSql\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\r\n\x05query\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"s\n\x11SpStoredProcedure\x12\x1c\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x91\x01\n\x07SpTable\x12!\n\x19is_temp_table_for_cleanup\x18\x01 \x01(\x08\x12\x1e\n\x04name\x18\x02 \x01(\x0b\x32\x10.ast.SpTableName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\x07variant\x18\x04 \x01(\x0b\x32\x13.ast.SpTableVariant"|\n\x0fSpTableFunction\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x87\x01\n\x17SpDataframeNaDrop_Scala\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x15min_non_nulls_per_row\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xb7\x01\n\x18SpDataframeNaDrop_Python\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03how\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12+\n\x06thresh\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"\xb9\x01\n\x11SpDataframeNaFill\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12\x18\n\x05value\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\'\n\tvalue_map\x18\x05 \x01(\x0b\x32\x14.ast.Map_String_Expr"\xae\x02\n\x14SpDataframeNaReplace\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12+\n\x0freplacement_map\x18\x02 \x01(\x0b\x32\x12.ast.Map_Expr_Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12\'\n\x0fto_replace_list\x18\x05 \x01(\x0b\x32\x0e.ast.List_Expr\x12#\n\x10to_replace_value\x18\x06 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05value\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x06values\x18\x08 \x01(\x0b\x32\x0e.ast.List_Expr"r\n\x0eSpDataframeAgg\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x05\x65xprs\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"a\n\x10SpDataframeAlias\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"e\n\x10SpDataframeApply\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\x0eSpDataframeCol\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xd9\x01\n\x14SpDataframeCrossJoin\x12!\n\x03lhs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeCube\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"v\n\x13SpDataframeDescribe\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x13SpDataframeDistinct\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeDrop\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x19SpDataframeDropDuplicates\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x11SpDataframeExcept\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x11SpDataframeFilter\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xdf\x01\n\x12SpDataframeFlatten\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05input\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x03 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x04 \x01(\x08\x12*\n\x04path\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x10SpDataframeFirst\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"u\n\x12SpDataframeGroupBy\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x14SpDataframeIntersect\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x02\n\x0fSpDataframeJoin\x12\x1c\n\tjoin_expr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12"\n\x0fmatch_condition\x18\x05 \x01(\x0b\x32\t.ast.Expr\x12!\n\x03rhs\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1f\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12(\n\njoin_exprs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\'\n\rusing_columns\x18\x05 \x01(\x0b\x32\x10.ast.List_String\x12\x10\n\x08variadic\x18\x06 \x01(\x08"n\n\x10SpDataframeLimit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x02 \x01(\x03\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa1\x01\n\x16SpDataframeNaturalJoin\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x17SpDataframePivot_Column\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc9\x01\n\x16SpDataframeRandomSplit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12)\n\x04seed\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0f\n\x07weights\x18\x05 \x03(\x01"\xa8\x01\n\x11SpDataframeRename\x12 \n\rcol_or_mapper\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x30\n\nnew_column\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"t\n\x11SpDataframeRollup\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x01\n\x11SpDataframeSample\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\x03num\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12:\n\x14probability_fraction\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"{\n\x17SpDataframeSelect_Exprs\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x65xprs\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xa0\x01\n\x0fSpDataframeSort\x12\x1c\n\tascending\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x02 \x03(\x0b\x32\t.ast.Expr\x12\x15\n\rcols_variadic\x18\x03 \x01(\x08\x12 \n\x02\x64\x66\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"x\n\x10SpDataframeUnion\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x13SpDataframeUnionAll\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x81\x01\n\x19SpDataframeUnionAllByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"~\n\x16SpDataframeUnionByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x10SpDataframeWhere\x12$\n\tcondition\x18\x01 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x82\x01\n\x15SpDataframeWithColumn\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x10\n\x08\x63ol_name\x18\x02 \x01(\t\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x1cSpDataframeWithColumnRenamed\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x16SpDataframeWithColumns\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x04 \x03(\x0b\x32\t.ast.Expr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x02 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"O\n\x0eSpGroupingSets\x12\x1e\n\x04sets\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xe4\x01\n\x1dSpDataframeAnalyticsMovingAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x10\n\x08order_by\x18\x05 \x03(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x0cwindow_sizes\x18\x07 \x03(\x03"\xe6\x01\n!SpDataframeAnalyticsCumulativeAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x12\n\nis_forward\x18\x05 \x01(\x08\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xc9\x01\n\x1eSpDataframeAnalyticsComputeLag\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x0c\n\x04lags\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xcb\x01\n\x1fSpDataframeAnalyticsComputeLead\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\r\n\x05leads\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xfd\x01\n!SpDataframeAnalyticsTimeSeriesAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x18\n\x10sliding_interval\x18\x05 \x01(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08time_col\x18\x07 \x01(\t\x12\x0f\n\x07windows\x18\x08 \x03(\t"\x84\x04\n\x17SpCopyableDataframeExpr\x12J\n!trait_sp_dataframe_reader_options\x18\x01 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x02 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12\'\n\x0csp_copy_into\x18\x03 \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\'\n\x0csp_read_avro\x18\x04 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x05 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x06 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x07 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x08 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\t \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\n \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x42\t\n\x07variant"6\n\x18SpDataframeReaderOptions\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"5\n\x17SpDataframeReaderSchema\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"9\n\nSpReadAvro\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadCsv\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"9\n\nSpReadJson\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadOrc\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"<\n\rSpReadParquet\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition":\n\x0bSpReadTable\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadXml\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xcb\x01\n\nSpCopyInto\x12*\n\x07options\x18\x01 \x01(\x0b\x32\x19.ast.Map_String_SpVariant\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x03 \x01(\t\x12-\n\x13target_column_names\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\xe1\x03\n\x11SpDataframeWriter\x12J\n!trait_sp_dataframe_writer_options\x18\x01 \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x02 \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12/\n\x13trait_sp_write_file\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12\x43\n\x1bsp_write_copy_into_location\x18\x04 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x05 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x06 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x07 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x08 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x42\t\n\x07variant"7\n\x19SpDataframeWriterSaveMode\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x18SpDataframeWriterOptions\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"w\n\x10SpDataframeWrite\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tsave_mode\x18\x02 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xe2\x01\n\x0bSpWriteFile\x12\x43\n\x1bsp_write_copy_into_location\x18\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x02 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x04 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x42\t\n\x07variant"\xae\x02\n\nSpWriteCsv\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xaf\x02\n\x0bSpWriteJson\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x02\n\x0eSpWriteParquet\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xea\x02\n\x0cSpWriteTable\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\'\n\x0f\x63lustering_keys\x18\x02 \x01(\x0b\x32\x0e.ast.List_Expr\x12\x14\n\x0c\x63olumn_order\x18\x03 \x01(\t\x12-\n\x07\x63omment\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x19\n\x11\x63reate_temp_table\x18\x05 \x01(\x08\x12\x16\n\x02id\x18\x06 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04mode\x18\x07 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String\x12$\n\ntable_name\x18\n \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\x0b \x01(\t"\xab\x03\n\x17SpWriteCopyIntoLocation\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x36\n\x10\x66ile_format_name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x66ile_format_type\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x13\x66ormat_type_options\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x06 \x01(\x08\x12\x16\n\x02id\x18\x07 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x08 \x01(\t\x12\x1f\n\x0cpartition_by\x18\t \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\n \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x0b \x03(\x0b\x32\x18.ast.Tuple_String_String"\xe3\x01\n\x1eSpDataframeCreateOrReplaceView\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07is_temp\x18\x03 \x01(\x08\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xfa\x01\n&SpDataframeCreateOrReplaceDynamicTable\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03lag\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x11\n\twarehouse\x18\x07 \x01(\t"\xb7\x03\n\x18SpDataframeCopyIntoTable\x12,\n\x0c\x63opy_options\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x66iles\x18\x03 \x03(\t\x12\x33\n\x13\x66ormat_type_options\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12-\n\x07pattern\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x12\n\ntable_name\x18\x08 \x03(\t\x12\x16\n\x0etarget_columns\x18\t \x03(\t\x12"\n\x0ftransformations\x18\n \x03(\x0b\x32\t.ast.Expr\x12\x35\n\x0fvalidation_mode\x18\x0b \x01(\x0b\x32\x1c.google.protobuf.StringValue"\x8d\x01\n\x16SpDataframeCacheResult\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb7\x01\n\x1dSpDataframeStatApproxQuantile\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x12\n\npercentile\x18\x03 \x03(\x01\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x01\n\x13SpDataframeStatCorr\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb1\x01\n\x12SpDataframeStatCov\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb6\x01\n\x17SpDataframeStatCrossTab\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x9c\x01\n\x17SpDataframeStatSampleBy\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\tfractions\x18\x03 \x03(\x0b\x32\x15.ast.Tuple_Expr_Float\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa8\x06\n SpRelationalGroupedDataframeExpr\x12\x31\n\x11sp_dataframe_cube\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x02 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x03 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x05 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x07 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x35\n\x13sp_dataframe_rollup\x18\x08 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\t \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12S\n#sp_relational_grouped_dataframe_ref\x18\x0b \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x42\t\n\x07variant"X\n\x1fSpRelationalGroupedDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xc9\x01\n#SpRelationalGroupedDataframeAgg_Map\x12 \n\x05\x65xprs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x02 \x01(\x08\x12\x39\n\ngrouped_df\x18\x03 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xb7\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12 \n\x05\x65xprs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x9c\x01\n\x1fSpRelationalGroupedDataframeAgg\x12\x1f\n\x05\x65xprs\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x10\n\x08\x61gg_name\x18\x01 \x01(\t\x12\x17\n\x04\x63ols\x18\x02 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x03 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"}\n!SpRelationalGroupedDataframeCount\x12\x39\n\ngrouped_df\x18\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"^\n\x05SpRow\x12\x1f\n\x05names\x18\x01 \x01(\x0b\x32\x10.ast.List_String\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x03 \x03(\x0b\x32\t.ast.Expr"8\n\x0b\x45xprArgList\x12\x17\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x02 \x01(\x08":\n\x0fSpDataframeType\x12\x0f\n\x07\x63olumns\x18\x01 \x03(\t\x12\x16\n\x03tys\x18\x02 \x03(\x0b\x32\t.ast.Type"F\n\x16SpGroupedDataframeType\x12\x15\n\rinner_columns\x18\x01 \x03(\t\x12\x15\n\router_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\xdd[\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x03 \x01(\x0b\x32\t.ast.ExprH\x00\x12+\n\x11trait_fn_ref_expr\x18\x04 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x05 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x06 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x07 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\t \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\n \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\x0b \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\x0c \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\r \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\x0e \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12:\n\x19trait_sp_window_spec_expr\x18\x0f \x01(\x0b\x32\x15.ast.SpWindowSpecExprH\x00\x12/\n\x13trait_sp_write_file\x18\x10 \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x11 \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x12 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x13 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x14 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x15 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x16 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x17 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x18 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x19 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x1a \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x1b \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x1c \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1d \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1e \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1f \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18 \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18! \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18" \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18# \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18$ \x01(\x0b\x32\x07.ast.GtH\x00\x12\x1e\n\x07if_expr\x18% \x01(\x0b\x32\x0b.ast.IfExprH\x00\x12"\n\tint32_val\x18& \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\' \x01(\x0b\x32\r.ast.Int64ValH\x00\x12\x17\n\x03leq\x18( \x01(\x0b\x32\x08.ast.LeqH\x00\x12 \n\x08list_val\x18) \x01(\x0b\x32\x0c.ast.ListValH\x00\x12\x15\n\x02lt\x18* \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18+ \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18, \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neg\x18- \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03neq\x18. \x01(\x0b\x32\x08.ast.NeqH\x00\x12 \n\x08none_val\x18/ \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12\x17\n\x03not\x18\x30 \x01(\x0b\x32\x08.ast.NotH\x00\x12 \n\x08null_val\x18\x31 \x01(\x0b\x32\x0c.ast.NullValH\x00\x12\x15\n\x02or\x18\x32 \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x33 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x35 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x36 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x37 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x38 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x39 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18: \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18; \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18< \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18= \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18> \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18? \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18@ \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18\x41 \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18\x42 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12\'\n\x0csp_case_expr\x18\x43 \x01(\x0b\x32\x0f.ast.SpCaseExprH\x00\x12-\n\x0fsp_column_alias\x18\x44 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x45 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x46 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18G \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18H \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12\x34\n\x13sp_column_case_when\x18I \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12+\n\x0esp_column_cast\x18J \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18K \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18L \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18M \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18N \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18O \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18P \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18Q \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18R \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18S \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18T \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18U \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18V \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18W \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18X \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18Y \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18Z \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18[ \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18\\ \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18] \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18^ \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18_ \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18` \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18\x61 \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18\x62 \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\x63 \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x64 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x65 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x66 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18g \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18h \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18i \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18j \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18k \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18l \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18m \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18n \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18o \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18p \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18q \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18r \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18s \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18t \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18u \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18v \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18w \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18x \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18y \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18z \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18{ \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18| \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18} \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18~ \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12]\n(sp_dataframe_join__dataframe__join_exprs\x18\x80\x01 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x63\n+sp_dataframe_join__dataframe__using_columns\x18\x81\x01 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12[\n\'sp_dataframe_join__table_function__list\x18\x82\x01 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12Y\n&sp_dataframe_join__table_function__map\x18\x83\x01 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x34\n\x12sp_dataframe_limit\x18\x84\x01 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x46\n\x1csp_dataframe_na_drop__python\x18\x85\x01 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x44\n\x1bsp_dataframe_na_drop__scala\x18\x86\x01 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x87\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x88\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x8a\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x8b\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x8c\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x8d\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x8e\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x8f\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x90\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x91\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x92\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x93\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x94\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x95\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x96\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x97\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x98\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x99\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x9a\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x9b\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x9c\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x9d\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x9e\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x9f\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\xa0\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\xa1\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\xa2\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\xa3\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\xa4\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\xa5\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12.\n\x0fsp_datatype_val\x18\xa6\x01 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12%\n\nsp_flatten\x18\xa7\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12)\n\x0csp_generator\x18\xa8\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xa9\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xaa\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xab\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xac\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xad\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xae\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xaf\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xb0\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xb1\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xb2\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\xb3\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\xb4\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\xb5\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\xb6\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xb7\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xb8\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xb9\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xba\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xbb\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xbc\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xbd\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xbe\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_row\x18\xbf\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xc0\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xc1\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xc2\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xc3\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x37\n\x14sp_window_spec_empty\x18\xc4\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12<\n\x17sp_window_spec_order_by\x18\xc5\x01 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x44\n\x1bsp_window_spec_partition_by\x18\xc6\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x46\n\x1csp_window_spec_range_between\x18\xc7\x01 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x44\n\x1bsp_window_spec_rows_between\x18\xc8\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xc9\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xca\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xcb\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xcc\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xcd\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xce\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xcf\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xd0\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xd1\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xd2\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xd3\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xd4\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xd5\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xd6\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"K\n\x04Stmt\x12\x1d\n\x06\x61ssign\x18\x01 \x01(\x0b\x32\x0b.ast.AssignH\x00\x12\x19\n\x04\x65val\x18\x02 \x01(\x0b\x32\t.ast.EvalH\x00\x42\t\n\x07variant"x\n\x06\x41ssign\x12\x17\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03uid\x18\x03 \x01(\x03\x12\x1a\n\x06var_id\x18\x04 \x01(\x0b\x32\n.ast.VarId"/\n\x04\x45val\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xc0\x07\n\x04Type\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12,\n\x11trait_scalar_type\x18\x02 \x01(\x0b\x32\x0f.ast.ScalarTypeH\x00\x12 \n\x08\x61ny_type\x18\x03 \x01(\x0b\x32\x0c.ast.AnyTypeH\x00\x12"\n\tbool_type\x18\x04 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x05 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12\x1e\n\x07\x66n_type\x18\x06 \x01(\x0b\x32\x0b.ast.FnTypeH\x00\x12$\n\nint32_type\x18\x07 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x08 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12"\n\tlist_type\x18\t \x01(\x0b\x32\r.ast.ListTypeH\x00\x12 \n\x08map_type\x18\n \x01(\x0b\x32\x0c.ast.MapTypeH\x00\x12(\n\x0cnothing_type\x18\x0b \x01(\x0b\x32\x10.ast.NothingTypeH\x00\x12&\n\x0bnumber_type\x18\x0c \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12&\n\x0boption_type\x18\r \x01(\x0b\x32\x0f.ast.OptionTypeH\x00\x12\'\n\x0cpd_repr_type\x18\x0e \x01(\x0b\x32\x0f.ast.PdReprTypeH\x00\x12.\n\x10sp_col_expr_type\x18\x0f \x01(\x0b\x32\x12.ast.SpColExprTypeH\x00\x12\x31\n\x11sp_dataframe_type\x18\x10 \x01(\x0b\x32\x14.ast.SpDataframeTypeH\x00\x12@\n\x19sp_grouped_dataframe_type\x18\x11 \x01(\x0b\x32\x1b.ast.SpGroupedDataframeTypeH\x00\x12+\n\x0esp_window_type\x18\x12 \x01(\x0b\x32\x11.ast.SpWindowTypeH\x00\x12&\n\x0bstring_type\x18\x13 \x01(\x0b\x32\x0f.ast.StringTypeH\x00\x12$\n\ntuple_type\x18\x14 \x01(\x0b\x32\x0e.ast.TupleTypeH\x00\x12\x1c\n\x06ty_var\x18\x15 \x01(\x0b\x32\n.ast.TyVarH\x00\x12"\n\tunit_type\x18\x16 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x12(\n\x0cunknown_type\x18\x17 \x01(\x0b\x32\x10.ast.UnknownTypeH\x00\x42\t\n\x07variant"\r\n\x0bUnknownType"\t\n\x07\x41nyType"\xad\x02\n\nScalarType\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12"\n\tbool_type\x18\x02 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x03 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x04 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x05 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x06 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12"\n\tunit_type\x18\x07 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x42\t\n\x07variant"\xb6\x01\n\x0bNumericType\x12(\n\x0c\x66loat64_type\x18\x01 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x02 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x03 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x04 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x42\t\n\x07variant"\x0c\n\nNumberType"\r\n\x0bNothingType"\n\n\x08UnitType"\n\n\x08\x42oolType"\x0b\n\tInt32Type"\x0b\n\tInt64Type"\r\n\x0b\x46loat64Type"\x0c\n\nStringType"\x0c\n\nPdReprType";\n\x06\x46nType\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Type\x12\x16\n\x03ret\x18\x02 \x01(\x0b\x32\t.ast.Type"$\n\nOptionType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"#\n\tTupleType\x12\x16\n\x03tys\x18\x01 \x03(\x0b\x32\t.ast.Type""\n\x08ListType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"5\n\x07MapType\x12\x14\n\x01k\x18\x01 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Type"\x13\n\x05TyVar\x12\n\n\x02id\x18\x01 \x01(\t*8\n\x0b__Version__\x12\x18\n\x14PROTO3_REQUIRES_THIS\x10\x00\x12\x0f\n\x0bMAX_VERSION\x10\x01\x42%\n\x1c\x63om.snowflake.snowpark.proto\xe2?\x04H\x01X\x00\x62\x06proto3' + b'\n\x0fproto/ast.proto\x12\x03\x61st\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x15scalapb/scalapb.proto"$\n\tList_Expr\x12\x17\n\x04list\x18\x01 \x03(\x0b\x32\t.ast.Expr"4\n\x11List_SpColumnExpr\x12\x1f\n\x04list\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr"0\n\x0fList_SpDataType\x12\x1d\n\x04list\x18\x01 \x03(\x0b\x32\x0f.ast.SpDataType"\x1b\n\x0bList_String\x12\x0c\n\x04list\x18\x01 \x03(\t"3\n\rMap_Expr_Expr\x12"\n\x04list\x18\x01 \x03(\x0b\x32\x14.ast.Tuple_Expr_Expr"7\n\x0fMap_String_Expr\x12$\n\x04list\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"A\n\x14Map_String_SpVariant\x12)\n\x04list\x18\x01 \x03(\x0b\x32\x1b.ast.Tuple_String_SpVariant";\n\x11Map_String_String\x12&\n\x04list\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"?\n\x0fTuple_Expr_Expr\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"5\n\x10Tuple_Expr_Float\x12\x15\n\x02_1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\n\n\x02_2\x18\x02 \x01(\x01"6\n\x11Tuple_String_Expr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x15\n\x02_2\x18\x02 \x01(\x0b\x32\t.ast.Expr"2\n\x18Tuple_String_List_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x03(\t"F\n\x19Tuple_String_SpColumnExpr\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1d\n\x02_2\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr"@\n\x16Tuple_String_SpVariant\x12\n\n\x02_1\x18\x01 \x01(\t\x12\x1a\n\x02_2\x18\x02 \x01(\x0b\x32\x0e.ast.SpVariant"-\n\x13Tuple_String_String\x12\n\n\x02_1\x18\x01 \x01(\t\x12\n\n\x02_2\x18\x02 \x01(\t"\xa4\x01\n\x08Language\x12*\n\rjava_language\x18\x01 \x01(\x0b\x32\x11.ast.JavaLanguageH\x00\x12.\n\x0fpython_language\x18\x02 \x01(\x0b\x32\x13.ast.PythonLanguageH\x00\x12,\n\x0escala_language\x18\x03 \x01(\x0b\x32\x12.ast.ScalaLanguageH\x00\x42\x0e\n\x0csealed_value"/\n\x0ePythonLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version".\n\rScalaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"-\n\x0cJavaLanguage\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.ast.Version"E\n\x07Version\x12\r\n\x05label\x18\x01 \x01(\t\x12\r\n\x05major\x18\x02 \x01(\x03\x12\r\n\x05minor\x18\x03 \x01(\x03\x12\r\n\x05patch\x18\x04 \x01(\x03"T\n\x0ePythonTimeZone\x12*\n\x04name\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x16\n\x0eoffset_seconds\x18\x02 \x01(\x03"v\n\x06\x46nName\x12\'\n\x0c\x66n_name_flat\x18\x01 \x01(\x0b\x32\x0f.ast.FnNameFlatH\x00\x12\x33\n\x12\x66n_name_structured\x18\x02 \x01(\x0b\x32\x15.ast.FnNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1a\n\nFnNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t" \n\x10\x46nNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"\xc8\x01\n\x0fTableFnCallType\x12%\n\x1btable_fn_call_type__builtin\x18\x01 \x01(\x08H\x00\x12+\n!table_fn_call_type__call_table_fn\x18\x02 \x01(\x08H\x00\x12.\n$table_fn_call_type__session_table_fn\x18\x03 \x01(\x08H\x00\x12&\n\x1ctable_fn_call_type__table_fn\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xaa\x02\n\x18SpWindowRelativePosition\x12\x32\n(sp_window_relative_position__current_row\x18\x01 \x01(\x08H\x00\x12W\n%sp_window_relative_position__position\x18\x02 \x01(\x0b\x32&.ast.SpWindowRelativePosition_PositionH\x00\x12:\n0sp_window_relative_position__unbounded_following\x18\x03 \x01(\x08H\x00\x12:\n0sp_window_relative_position__unbounded_preceding\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant".\n!SpWindowRelativePosition_Position\x12\t\n\x01n\x18\x01 \x01(\x03"q\n\x0bPdIndexExpr\x12 \n\x08\x66lex_ord\x18\x01 \x01(\x0b\x32\x0c.ast.FlexOrdH\x00\x12\x17\n\x03key\x18\x02 \x01(\x0b\x32\x08.ast.KeyH\x00\x12\x17\n\x03ord\x18\x03 \x01(\x0b\x32\x08.ast.OrdH\x00\x42\x0e\n\x0csealed_value"\x1b\n\x03Ord\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1f\n\x07\x46lexOrd\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\x1b\n\x03Key\x12\x14\n\x01v\x18\x01 \x01(\x0b\x32\t.ast.Expr"\xb9\x02\n\x12PdProjectIndexExpr\x12/\n\x10\x62ool_filter_list\x18\x01 \x01(\x0b\x32\x13.ast.BoolFilterListH\x00\x12)\n\rflex_ord_list\x18\x02 \x01(\x0b\x32\x10.ast.FlexOrdListH\x00\x12+\n\x0e\x66lex_ord_range\x18\x03 \x01(\x0b\x32\x11.ast.FlexOrdRangeH\x00\x12 \n\x08key_list\x18\x04 \x01(\x0b\x32\x0c.ast.KeyListH\x00\x12"\n\tkey_range\x18\x05 \x01(\x0b\x32\r.ast.KeyRangeH\x00\x12 \n\x08ord_list\x18\x06 \x01(\x0b\x32\x0c.ast.OrdListH\x00\x12"\n\tord_range\x18\x07 \x01(\x0b\x32\r.ast.OrdRangeH\x00\x42\x0e\n\x0csealed_value"V\n\x08OrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"Z\n\x0c\x46lexOrdRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x03 \x01(\x0b\x32\t.ast.Expr"=\n\x08KeyRange\x12\x18\n\x05start\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x02 \x01(\x0b\x32\t.ast.Expr""\n\x07OrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr"&\n\x0b\x46lexOrdList\x12\x17\n\x04ords\x18\x01 \x01(\x0b\x32\t.ast.Expr""\n\x07KeyList\x12\x17\n\x04keys\x18\x01 \x01(\x0b\x32\t.ast.Expr"+\n\x0e\x42oolFilterList\x12\x19\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\t.ast.Expr"}\n\rSpFlattenMode\x12\x1f\n\x15sp_flatten_mode_array\x18\x01 \x01(\x08H\x00\x12\x1e\n\x14sp_flatten_mode_both\x18\x02 \x01(\x08H\x00\x12 \n\x16sp_flatten_mode_object\x18\x03 \x01(\x08H\x00\x42\t\n\x07variant"P\n\x0eSpTableVariant\x12\x1a\n\x10sp_session_table\x18\x01 \x01(\x08H\x00\x12\x17\n\rsp_table_init\x18\x02 \x01(\x08H\x00\x42\t\n\x07variant"\xc0\x01\n\nSpSaveMode\x12\x1d\n\x13sp_save_mode_append\x18\x01 \x01(\x08H\x00\x12&\n\x1csp_save_mode_error_if_exists\x18\x02 \x01(\x08H\x00\x12\x1d\n\x13sp_save_mode_ignore\x18\x03 \x01(\x08H\x00\x12 \n\x16sp_save_mode_overwrite\x18\x04 \x01(\x08H\x00\x12\x1f\n\x15sp_save_mode_truncate\x18\x05 \x01(\x08H\x00\x42\t\n\x07variant"\x88\x02\n\nSpJoinType\x12\x1d\n\x13sp_join_type__cross\x18\x01 \x01(\x08H\x00\x12"\n\x18sp_join_type__full_outer\x18\x02 \x01(\x08H\x00\x12\x1d\n\x13sp_join_type__inner\x18\x03 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_anti\x18\x04 \x01(\x08H\x00\x12"\n\x18sp_join_type__left_outer\x18\x05 \x01(\x08H\x00\x12!\n\x17sp_join_type__left_semi\x18\x06 \x01(\x08H\x00\x12#\n\x19sp_join_type__right_outer\x18\x07 \x01(\x08H\x00\x42\t\n\x07variant"\xbb\x01\n\x13SpTimestampTimeZone\x12(\n\x1esp_timestamp_time_zone_default\x18\x01 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ltz\x18\x02 \x01(\x08H\x00\x12$\n\x1asp_timestamp_time_zone_ntz\x18\x03 \x01(\x08H\x00\x12#\n\x19sp_timestamp_time_zone_tz\x18\x04 \x01(\x08H\x00\x42\t\n\x07variant"\xa2\x06\n\nSpDataType\x12)\n\rsp_array_type\x18\x01 \x01(\x0b\x32\x10.ast.SpArrayTypeH\x00\x12\x18\n\x0esp_binary_type\x18\x02 \x01(\x08H\x00\x12\x19\n\x0fsp_boolean_type\x18\x03 \x01(\x08H\x00\x12\x16\n\x0csp_byte_type\x18\x04 \x01(\x08H\x00\x12\x37\n\x14sp_column_identifier\x18\x05 \x01(\x0b\x32\x17.ast.SpColumnIdentifierH\x00\x12\x16\n\x0csp_date_type\x18\x06 \x01(\x08H\x00\x12-\n\x0fsp_decimal_type\x18\x07 \x01(\x0b\x32\x12.ast.SpDecimalTypeH\x00\x12\x18\n\x0esp_double_type\x18\x08 \x01(\x08H\x00\x12\x17\n\rsp_float_type\x18\t \x01(\x08H\x00\x12\x1b\n\x11sp_geography_type\x18\n \x01(\x08H\x00\x12\x1a\n\x10sp_geometry_type\x18\x0b \x01(\x08H\x00\x12\x19\n\x0fsp_integer_type\x18\x0c \x01(\x08H\x00\x12\x16\n\x0csp_long_type\x18\r \x01(\x08H\x00\x12%\n\x0bsp_map_type\x18\x0e \x01(\x0b\x32\x0e.ast.SpMapTypeH\x00\x12\x16\n\x0csp_null_type\x18\x0f \x01(\x08H\x00\x12\x17\n\rsp_short_type\x18\x10 \x01(\x08H\x00\x12+\n\x0esp_string_type\x18\x11 \x01(\x0b\x32\x11.ast.SpStringTypeH\x00\x12-\n\x0fsp_struct_field\x18\x12 \x01(\x0b\x32\x12.ast.SpStructFieldH\x00\x12+\n\x0esp_struct_type\x18\x13 \x01(\x0b\x32\x11.ast.SpStructTypeH\x00\x12\x16\n\x0csp_time_type\x18\x14 \x01(\x08H\x00\x12\x31\n\x11sp_timestamp_type\x18\x15 \x01(\x0b\x32\x14.ast.SpTimestampTypeH\x00\x12\x19\n\x0fsp_variant_type\x18\x16 \x01(\x08H\x00\x12+\n\x0esp_vector_type\x18\x17 \x01(\x0b\x32\x11.ast.SpVectorTypeH\x00\x42\t\n\x07variant">\n\x0bSpArrayType\x12\x12\n\nstructured\x18\x01 \x01(\x08\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType""\n\x12SpColumnIdentifier\x12\x0c\n\x04name\x18\x01 \x01(\t"1\n\rSpDecimalType\x12\x11\n\tprecision\x18\x01 \x01(\x03\x12\r\n\x05scale\x18\x02 \x01(\x03"c\n\tSpMapType\x12\x1f\n\x06key_ty\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x12\n\nstructured\x18\x02 \x01(\x08\x12!\n\x08value_ty\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType";\n\x0cSpStringType\x12+\n\x06length\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"y\n\rSpStructField\x12\x32\n\x11\x63olumn_identifier\x18\x01 \x01(\x0b\x32\x17.ast.SpColumnIdentifier\x12"\n\tdata_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x10\n\x08nullable\x18\x03 \x01(\x08"F\n\x0cSpStructType\x12"\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x12.ast.SpStructField\x12\x12\n\nstructured\x18\x02 \x01(\x08">\n\x0fSpTimestampType\x12+\n\ttime_zone\x18\x01 \x01(\x0b\x32\x18.ast.SpTimestampTimeZone">\n\x0cSpVectorType\x12\x11\n\tdimension\x18\x01 \x01(\x03\x12\x1b\n\x02ty\x18\x02 \x01(\x0b\x32\x0f.ast.SpDataType"\xc2\x05\n\tSpVariant\x12<\n\x17sp_variant__big_decimal\x18\x01 \x01(\x0b\x32\x19.ast.SpVariant_BigDecimalH\x00\x12\x34\n\x13sp_variant__big_int\x18\x02 \x01(\x0b\x32\x15.ast.SpVariant_BigIntH\x00\x12/\n\x10sp_variant__bool\x18\x03 \x01(\x0b\x32\x13.ast.SpVariant_BoolH\x00\x12\x31\n\x11sp_variant__bytes\x18\x04 \x01(\x0b\x32\x14.ast.SpVariant_BytesH\x00\x12/\n\x10sp_variant__date\x18\x05 \x01(\x0b\x32\x13.ast.SpVariant_DateH\x00\x12\x33\n\x12sp_variant__double\x18\x06 \x01(\x0b\x32\x15.ast.SpVariant_DoubleH\x00\x12\x31\n\x11sp_variant__float\x18\x07 \x01(\x0b\x32\x14.ast.SpVariant_FloatH\x00\x12-\n\x0fsp_variant__int\x18\x08 \x01(\x0b\x32\x12.ast.SpVariant_IntH\x00\x12/\n\x10sp_variant__list\x18\t \x01(\x0b\x32\x13.ast.SpVariant_ListH\x00\x12\x33\n\x12sp_variant__object\x18\n \x01(\x0b\x32\x15.ast.SpVariant_ObjectH\x00\x12\x33\n\x12sp_variant__string\x18\x0b \x01(\x0b\x32\x15.ast.SpVariant_StringH\x00\x12/\n\x10sp_variant__time\x18\x0c \x01(\x0b\x32\x13.ast.SpVariant_TimeH\x00\x12\x39\n\x15sp_variant__timestamp\x18\r \x01(\x0b\x32\x18.ast.SpVariant_TimestampH\x00\x42\x0e\n\x0csealed_value"7\n\x10SpVariant_Object\x12#\n\x01v\x18\x01 \x03(\x0b\x32\x18.ast.Tuple_String_String"3\n\x0eSpVariant_List\x12!\n\x01v\x18\x01 \x03(\x0b\x32\x16.ast.Map_String_String" \n\x13SpVariant_Timestamp\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Date\x12\t\n\x01v\x18\x01 \x01(\x04"\x1b\n\x0eSpVariant_Time\x12\t\n\x01v\x18\x01 \x01(\x04"\x1c\n\x0fSpVariant_Bytes\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1d\n\x10SpVariant_String\x12\t\n\x01v\x18\x01 \x01(\t"\x1b\n\x0eSpVariant_Bool\x12\t\n\x01v\x18\x01 \x01(\x08"\x1d\n\x10SpVariant_BigInt\x12\t\n\x01v\x18\x01 \x01(\x0c"!\n\x14SpVariant_BigDecimal\x12\t\n\x01v\x18\x01 \x01(\x0c"\x1a\n\rSpVariant_Int\x12\t\n\x01v\x18\x01 \x01(\x03"\x1c\n\x0fSpVariant_Float\x12\t\n\x01v\x18\x01 \x01(\x04"\x1d\n\x10SpVariant_Double\x12\t\n\x01v\x18\x01 \x01(\x04"\x91\x01\n\x0bSpTableName\x12\x32\n\x12sp_table_name_flat\x18\x01 \x01(\x0b\x32\x14.ast.SpTableNameFlatH\x00\x12>\n\x18sp_table_name_structured\x18\x02 \x01(\x0b\x32\x1a.ast.SpTableNameStructuredH\x00\x42\x0e\n\x0csealed_value"\x1f\n\x0fSpTableNameFlat\x12\x0c\n\x04name\x18\x01 \x01(\t"%\n\x15SpTableNameStructured\x12\x0c\n\x04name\x18\x01 \x03(\t"=\n\x15StagedPandasDataframe\x12$\n\ntemp_table\x18\x01 \x01(\x0b\x32\x10.ast.SpTableName"\xe1\x01\n\x0fSpDataframeData\x12<\n\x17sp_dataframe_data__list\x18\x01 \x01(\x0b\x32\x19.ast.SpDataframeData_ListH\x00\x12@\n\x19sp_dataframe_data__pandas\x18\x02 \x01(\x0b\x32\x1b.ast.SpDataframeData_PandasH\x00\x12>\n\x18sp_dataframe_data__tuple\x18\x03 \x01(\x0b\x32\x1a.ast.SpDataframeData_TupleH\x00\x42\x0e\n\x0csealed_value"-\n\x14SpDataframeData_List\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr".\n\x15SpDataframeData_Tuple\x12\x15\n\x02vs\x18\x01 \x03(\x0b\x32\t.ast.Expr"?\n\x16SpDataframeData_Pandas\x12%\n\x01v\x18\x01 \x01(\x0b\x32\x1a.ast.StagedPandasDataframe"\xab\x01\n\x11SpDataframeSchema\x12@\n\x19sp_dataframe_schema__list\x18\x01 \x01(\x0b\x32\x1b.ast.SpDataframeSchema_ListH\x00\x12\x44\n\x1bsp_dataframe_schema__struct\x18\x02 \x01(\x0b\x32\x1d.ast.SpDataframeSchema_StructH\x00\x42\x0e\n\x0csealed_value"$\n\x16SpDataframeSchema_List\x12\n\n\x02vs\x18\x01 \x03(\t"8\n\x18SpDataframeSchema_Struct\x12\x1c\n\x01v\x18\x01 \x01(\x0b\x32\x11.ast.SpStructType"&\n\nSpCallable\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t"k\n\x0bSrcPosition\x12\x12\n\nend_column\x18\x01 \x01(\x03\x12\x10\n\x08\x65nd_line\x18\x02 \x01(\x03\x12\x0c\n\x04\x66ile\x18\x03 \x01(\t\x12\x14\n\x0cstart_column\x18\x04 \x01(\x03\x12\x12\n\nstart_line\x18\x05 \x01(\x03"\x1a\n\x05VarId\x12\x11\n\tbitfield1\x18\x01 \x01(\x04"\x8c\x01\n\x07Request\x12\x17\n\x04\x62ody\x18\x01 \x03(\x0b\x32\t.ast.Stmt\x12\x1a\n\x12\x63lient_ast_version\x18\x02 \x01(\x03\x12&\n\x0f\x63lient_language\x18\x03 \x01(\x0b\x32\r.ast.Language\x12$\n\x0e\x63lient_version\x18\x04 \x01(\x0b\x32\x0c.ast.Version"%\n\x08Response\x12\x19\n\x04\x62ody\x18\x01 \x03(\x0b\x32\x0b.ast.Result"\xde\x05\n\x05\x43onst\x12-\n\x0f\x62ig_decimal_val\x18\x01 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x02 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x03 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x04 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x05 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x06 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x07 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\x08 \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\t \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\n \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0b \x01(\x0b\x32\x0c.ast.NullValH\x00\x12-\n\x0fpython_date_val\x18\x0c \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\r \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x0e \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12-\n\x0fsp_datatype_val\x18\x0f \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12$\n\nstring_val\x18\x10 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x11 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x12 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"(\n\x07NoneVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"(\n\x07NullVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition"3\n\x07\x42oolVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x08"4\n\x08Int32Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"4\n\x08Int64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"6\n\nFloat64Val\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x01"5\n\tBigIntVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"U\n\rBigDecimalVal\x12\r\n\x05scale\x18\x01 \x01(\x03\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0eunscaled_value\x18\x03 \x01(\x0c"5\n\tStringVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\t"5\n\tBinaryVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x0c"8\n\x0cTimestampVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07\x44\x61teVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"3\n\x07TimeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\t\n\x01v\x18\x02 \x01(\x03"\xc1\x01\n\x12PythonTimestampVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\x0c\n\x04hour\x18\x02 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x03 \x01(\x03\x12\x0e\n\x06minute\x18\x04 \x01(\x03\x12\r\n\x05month\x18\x05 \x01(\x03\x12\x0e\n\x06second\x18\x06 \x01(\x03\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x08 \x01(\x0b\x32\x13.ast.PythonTimeZone\x12\x0c\n\x04year\x18\t \x01(\x03"X\n\rPythonDateVal\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x03\x12\r\n\x05month\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x0c\n\x04year\x18\x04 \x01(\x03"\x92\x01\n\rPythonTimeVal\x12\x0c\n\x04hour\x18\x01 \x01(\x03\x12\x13\n\x0bmicrosecond\x18\x02 \x01(\x03\x12\x0e\n\x06minute\x18\x03 \x01(\x03\x12\x0e\n\x06second\x18\x04 \x01(\x03\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1f\n\x02tz\x18\x06 \x01(\x0b\x32\x13.ast.PythonTimeZone"O\n\x05\x46nVal\x12\x17\n\x04\x62ody\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0e\n\x06params\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"Q\n\rSpDatatypeVal\x12!\n\x08\x64\x61tatype\x18\x01 \x01(\x0b\x32\x0f.ast.SpDataType\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x06IfExpr\x12\x17\n\x04\x63ond\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1b\n\x08if_false\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07if_true\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition">\n\x07SomeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Expr"@\n\x08TupleVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"?\n\x07ListVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x02 \x03(\x0b\x32\t.ast.Expr"F\n\tSeqMapVal\x12\x1a\n\x03kvs\x18\x01 \x03(\x0b\x32\r.ast.TupleVal\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\tApplyExpr\x12\x1a\n\x02\x66n\x18\x01 \x01(\x0b\x32\x0e.ast.FnRefExpr\x12*\n\nnamed_args\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x1b\n\x08pos_args\x18\x03 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xfd\x01\n\tFnRefExpr\x12$\n\nbuiltin_fn\x18\x01 \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12/\n\x10session_table_fn\x18\x02 \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12!\n\tsp_fn_ref\x18\x03 \x01(\x0b\x32\x0c.ast.SpFnRefH\x00\x12\x30\n\x10stored_procedure\x18\x04 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12 \n\x08table_fn\x18\x05 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12\x17\n\x03udf\x18\x06 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"[\n\x07SpFnRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"E\n\tBuiltinFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xb3\x01\n\x0fStoredProcedure\x12\x34\n\x10log_on_exception\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x30\n\x10statement_params\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr"\xad\x05\n\x03Udf\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12$\n\x1c\x65xternal_access_integrations\x18\x02 \x03(\t\x12\x1d\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x0f.ast.SpCallable\x12\x15\n\rif_not_exists\x18\x04 \x01(\x08\x12\x11\n\timmutable\x18\x05 \x01(\x08\x12!\n\x07imports\x18\x06 \x03(\x0b\x32\x10.ast.SpTableName\x12)\n\x0binput_types\x18\x07 \x01(\x0b\x32\x14.ast.List_SpDataType\x12\x14\n\x0cis_permanent\x18\x08 \x01(\x08\x12&\n\x06kwargs\x18\t \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x33\n\x0emax_batch_size\x18\n \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x19\n\x04name\x18\x0b \x01(\x0b\x32\x0b.ast.FnName\x12\x10\n\x08packages\x18\x0c \x03(\t\x12\x10\n\x08parallel\x18\r \x01(\x03\x12\x0f\n\x07replace\x18\x0e \x01(\x08\x12$\n\x0breturn_type\x18\x0f \x01(\x0b\x32\x0f.ast.SpDataType\x12)\n\x07secrets\x18\x10 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06secure\x18\x11 \x01(\x08\x12\x1b\n\x13source_code_display\x18\x12 \x01(\x08\x12\x1d\n\x03src\x18\x13 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x0estage_location\x18\x14 \x01(\t\x12\x32\n\x10statement_params\x18\x15 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06strict\x18\x16 \x01(\x08"J\n\x0eSessionTableFn\x12\x19\n\x04name\x18\x01 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x07TableFn\x12\'\n\tcall_type\x18\x01 \x01(\x0b\x32\x14.ast.TableFnCallType\x12\x19\n\x04name\x18\x02 \x01(\x0b\x32\x0b.ast.FnName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"F\n\x07UnaryOp\x12\x17\n\x03neg\x18\x01 \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03not\x18\x02 \x01(\x0b\x32\x08.ast.NotH\x00\x42\t\n\x07variant"\xc6\x03\n\x05\x42inOp\x12\x17\n\x03\x61\x64\x64\x18\x01 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x02 \x01(\x0b\x32\x08.ast.AndH\x00\x12\x1e\n\x07\x62it_and\x18\x03 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x04 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x05 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12\x17\n\x03\x64iv\x18\x06 \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x07 \x01(\x0b\x32\x07.ast.EqH\x00\x12\x17\n\x03geq\x18\x08 \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18\t \x01(\x0b\x32\x07.ast.GtH\x00\x12\x17\n\x03leq\x18\n \x01(\x0b\x32\x08.ast.LeqH\x00\x12\x15\n\x02lt\x18\x0b \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18\x0c \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18\r \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neq\x18\x0e \x01(\x0b\x32\x08.ast.NeqH\x00\x12\x15\n\x02or\x18\x0f \x01(\x0b\x32\x07.ast.OrH\x00\x12\x17\n\x03pow\x18\x10 \x01(\x0b\x32\x08.ast.PowH\x00\x12\x17\n\x03sub\x18\x11 \x01(\x0b\x32\x08.ast.SubH\x00\x42\t\n\x07variant"@\n\x03Not\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41nd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Or\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02\x45q\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Neq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Lt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Leq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"S\n\x02Gt\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Geq\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"@\n\x03Neg\x12\x1a\n\x07operand\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x41\x64\x64\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Sub\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mul\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03\x44iv\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Mod\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x03Pow\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itAnd\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x05\x42itOr\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"W\n\x06\x42itXor\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x08RangeVal\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05start\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04step\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04stop\x18\x04 \x01(\x0b\x32\t.ast.Expr"\xe3\x02\n\x10SpWindowSpecExpr\x12\x36\n\x14sp_window_spec_empty\x18\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12;\n\x17sp_window_spec_order_by\x18\x02 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x43\n\x1bsp_window_spec_partition_by\x18\x03 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x45\n\x1csp_window_spec_range_between\x18\x04 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x43\n\x1bsp_window_spec_rows_between\x18\x05 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x42\t\n\x07variant"V\n\x11SpWindowSpecEmpty\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x02 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"q\n\x13SpWindowSpecOrderBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"u\n\x17SpWindowSpecPartitionBy\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12"\n\x03wnd\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb7\x01\n\x18SpWindowSpecRangeBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xb6\x01\n\x17SpWindowSpecRowsBetween\x12*\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12,\n\x05start\x18\x03 \x01(\x0b\x32\x1d.ast.SpWindowRelativePosition\x12"\n\x03wnd\x18\x04 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"\xa3X\n\x04\x45xpr\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12+\n\x11trait_fn_ref_expr\x18\x03 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x04 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x05 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x06 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x07 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x08 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\t \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\n \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\x0b \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x0c \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\r \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12/\n\x13trait_sp_write_file\x18\x0e \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x0f \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x10 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x11 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x12 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x13 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x14 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x15 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x16 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x17 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x18 \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x19 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x1a \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1b \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1c \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1d \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18\x1e \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18\x1f \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18 \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18! \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18" \x01(\x0b\x32\x07.ast.GtH\x00\x12\x1e\n\x07if_expr\x18# \x01(\x0b\x32\x0b.ast.IfExprH\x00\x12"\n\tint32_val\x18$ \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18% \x01(\x0b\x32\r.ast.Int64ValH\x00\x12\x17\n\x03leq\x18& \x01(\x0b\x32\x08.ast.LeqH\x00\x12 \n\x08list_val\x18\' \x01(\x0b\x32\x0c.ast.ListValH\x00\x12\x15\n\x02lt\x18( \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18) \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18* \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neg\x18+ \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03neq\x18, \x01(\x0b\x32\x08.ast.NeqH\x00\x12 \n\x08none_val\x18- \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12\x17\n\x03not\x18. \x01(\x0b\x32\x08.ast.NotH\x00\x12 \n\x08null_val\x18/ \x01(\x0b\x32\x0c.ast.NullValH\x00\x12\x15\n\x02or\x18\x30 \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x31 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x32 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x33 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x34 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x35 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x36 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x37 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18\x38 \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18\x39 \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18: \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18; \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18< \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18= \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18> \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18? \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18@ \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12-\n\x0fsp_column_alias\x18\x41 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x42 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x43 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x44 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x45 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12\x34\n\x13sp_column_case_when\x18\x46 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12+\n\x0esp_column_cast\x18G \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18H \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18I \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18J \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18K \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18L \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18M \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18N \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18O \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18P \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18Q \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18R \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18S \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18T \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18U \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18V \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18W \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18X \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18Y \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18Z \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18[ \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18\\ \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18] \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18^ \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18_ \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18` \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x61 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x62 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x63 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x64 \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x65 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18\x66 \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18g \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18h \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18i \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18j \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18k \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18l \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18m \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18n \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18o \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18p \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18q \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18r \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18s \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18t \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18u \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18v \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18w \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18x \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18y \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18z \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18{ \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18| \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18} \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18~ \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x7f \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12Y\n&sp_dataframe_join__table_function__map\x18\x80\x01 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x34\n\x12sp_dataframe_limit\x18\x81\x01 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x46\n\x1csp_dataframe_na_drop__python\x18\x82\x01 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x44\n\x1bsp_dataframe_na_drop__scala\x18\x83\x01 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x84\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x85\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x86\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x87\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x88\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x8a\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x8b\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x8c\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x8d\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x8e\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x8f\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x90\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x91\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x92\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x93\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x94\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x95\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x96\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x97\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x98\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x99\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x9a\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x9b\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x9c\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\x9d\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\x9e\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\x9f\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\xa0\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\xa1\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\xa2\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12.\n\x0fsp_datatype_val\x18\xa3\x01 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12%\n\nsp_flatten\x18\xa4\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12"\n\tsp_fn_ref\x18\xa5\x01 \x01(\x0b\x32\x0c.ast.SpFnRefH\x00\x12)\n\x0csp_generator\x18\xa6\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xa7\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xa8\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xa9\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xaa\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xab\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xac\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xad\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xae\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xaf\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xb0\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\xb1\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\xb2\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\xb3\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\xb4\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xb5\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xb6\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xb7\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xb8\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xb9\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xba\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xbb\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xbc\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_row\x18\xbd\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xbe\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xbf\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xc0\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xc1\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xc2\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xc3\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xc4\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xc5\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xc6\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xc7\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xc8\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xc9\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xca\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xcb\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xcc\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xcd\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xce\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xcf\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"@\n\x03Ref\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"W\n\x08\x43\x61stExpr\x12\x1d\n\x03src\x18\x01 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x16\n\x03typ\x18\x02 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x03 \x01(\x0b\x32\t.ast.Expr"\x95\x01\n\x0bPdDataframe\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05\x64type\x18\x03 \x01(\x0b\x32\t.ast.Type\x12\x18\n\x05index\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x01\n\x08PdDropNa\x12\x17\n\x04\x61xis\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06subset\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06thresh\x18\x05 \x01(\x0b\x32\t.ast.Expr"e\n\x12PdDataframeGetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x12PdDataframeSetItem\x12\x14\n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x08.ast.Ref\x12\x1a\n\x07key_arg\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x01v\x18\x04 \x01(\x0b\x32\t.ast.Expr"z\n\x0ePdDataframeLoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x0fPdDataframeILoc\x12\x1a\n\x07\x63olumns\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x14\n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x08.ast.Ref\x12\x17\n\x04rows\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x06PdRepr\x12\r\n\x05\x61sync\x18\x01 \x01(\x08\x12\x13\n\x0bmax_columns\x18\x02 \x01(\x03\x12\x10\n\x08max_rows\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x13\n\x01v\x18\x05 \x01(\x0b\x32\x08.ast.Ref"u\n\x0cPdReprResult\x12\x13\n\x0bnum_columns\x18\x01 \x01(\x03\x12\x18\n\x10num_head_columns\x18\x02 \x01(\x03\x12\x15\n\rnum_head_rows\x18\x03 \x01(\x03\x12\x10\n\x08num_rows\x18\x04 \x01(\x03\x12\r\n\x05value\x18\x05 \x01(\x0c"\x9e\x01\n\x06Result\x12!\n\x0btrait_error\x18\x01 \x01(\x0b\x32\n.ast.ErrorH\x00\x12\x1e\n\x07\x65val_ok\x18\x02 \x01(\x0b\x32\x0b.ast.EvalOkH\x00\x12\x46\n\x1csession_reset_required_error\x18\x03 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"\xb3\x06\n\nEvalResult\x12!\n\x0btrait_const\x18\x01 \x01(\x0b\x32\n.ast.ConstH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x02 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x03 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x04 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12 \n\x08\x62ool_val\x18\x05 \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12 \n\x08\x64\x61te_val\x18\x06 \x01(\x0b\x32\x0c.ast.DateValH\x00\x12&\n\x0b\x66loat64_val\x18\x07 \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18\x08 \x01(\x0b\x32\n.ast.FnValH\x00\x12"\n\tint32_val\x18\t \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\n \x01(\x0b\x32\r.ast.Int64ValH\x00\x12 \n\x08none_val\x18\x0b \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12 \n\x08null_val\x18\x0c \x01(\x0b\x32\x0c.ast.NullValH\x00\x12+\n\x0epd_repr_result\x18\r \x01(\x0b\x32\x11.ast.PdReprResultH\x00\x12-\n\x0fpython_date_val\x18\x0e \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18\x0f \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18\x10 \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12-\n\x0fsp_datatype_val\x18\x11 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12$\n\nstring_val\x18\x12 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12 \n\x08time_val\x18\x13 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12*\n\rtimestamp_val\x18\x14 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x42\t\n\x07variant"P\n\x06\x45valOk\x12\x1d\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x0f.ast.EvalResult\x12\x0b\n\x03uid\x18\x02 \x01(\x03\x12\x1a\n\x06var_id\x18\x03 \x01(\x0b\x32\n.ast.VarId"Z\n\x05\x45rror\x12\x46\n\x1csession_reset_required_error\x18\x01 \x01(\x0b\x32\x1e.ast.SessionResetRequiredErrorH\x00\x42\t\n\x07variant"D\n\x19SessionResetRequiredError\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xcc\x02\n\x0cSpColumnExpr\x12\x34\n\x13sp_column_case_when\x18\x01 \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12\x36\n\x14sp_column_equal_null\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12)\n\rsp_column_ref\x18\x03 \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18\x04 \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12\x33\n\x12sp_dataframe_apply\x18\x05 \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12/\n\x10sp_dataframe_col\x18\x06 \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x42\t\n\x07variant"8\n\x0bSpColumnRef\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"m\n\x0fSpColumnSqlExpr\x12.\n\x08\x64\x66_alias\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03sql\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\nSpCaseExpr\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x18\n\x05value\x18\x03 \x01(\x0b\x32\t.ast.Expr"Q\n\x10SpColumnCaseWhen\x12\x1e\n\x05\x63\x61ses\x18\x01 \x03(\x0b\x32\x0f.ast.SpCaseExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x91\n\n\nSpColumnFn\x12-\n\x0fsp_column_alias\x18\x01 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x02 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x03 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18\x04 \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18\x05 \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12+\n\x0esp_column_cast\x18\x06 \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18\x07 \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18\x08 \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12<\n\x17sp_column_in__dataframe\x18\t \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18\n \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18\x0b \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18\x0c \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18\r \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18\x0e \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12>\n\x18sp_column_string_collate\x18\x0f \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18\x10 \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18\x11 \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18\x12 \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18\x13 \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18\x14 \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18\x15 \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18\x16 \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18\x17 \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x42\t\n\x07variant"\x87\x01\n\rSpColumnAlias\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x31\n\rvariant_is_as\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.BoolValue"W\n\x11SpColumnApply_Int\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x0b\n\x03idx\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\\\n\x14SpColumnApply_String\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\r\n\x05\x66ield\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"u\n\x0bSpColumnAsc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x0fSpColumnBetween\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x0blower_bound\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x0bupper_bound\x18\x04 \x01(\x0b\x32\t.ast.Expr"b\n\x0cSpColumnCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"e\n\x0fSpColumnTryCast\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1b\n\x02to\x18\x03 \x01(\x0b\x32\x0f.ast.SpDataType"v\n\x0cSpColumnDesc\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12/\n\x0bnulls_first\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"I\n\x10SpColumnEqualNan\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x11SpColumnEqualNull\x12\x16\n\x03lhs\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03rhs\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"o\n\x14SpColumnIn_Dataframe\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"b\n\x0eSpColumnIn_Seq\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x03 \x03(\x0b\x32\t.ast.Expr"J\n\x11SpColumnIsNotNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"G\n\x0eSpColumnIsNull\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"T\n\x0cSpColumnName\x12\r\n\x05\x61lias\x18\x01 \x01(\t\x12\x16\n\x03\x63ol\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x0cSpColumnOver\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12*\n\x0bwindow_spec\x18\x03 \x01(\x0b\x32\x15.ast.SpWindowSpecExpr"l\n\x13SpColumnWithinGroup\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x04\x63ols\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"g\n\x12SpColumnStringLike\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x88\x01\n\x14SpColumnStringRegexp\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\nparameters\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"l\n\x18SpColumnStringStartsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x19\n\x06prefix\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"j\n\x16SpColumnStringEndsWith\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06suffix\x18\x03 \x01(\x0b\x32\t.ast.Expr"}\n\x14SpColumnStringSubstr\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03len\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x03pos\x18\x03 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"q\n\x15SpColumnStringCollate\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12!\n\x0e\x63ollation_spec\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"k\n\x16SpColumnStringContains\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x1a\n\x07pattern\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xfa*\n\x0fSpDataframeExpr\x12H\n trait_sp_copyable_dataframe_expr\x18\x01 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\x02 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x03 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12\'\n\x0csp_copy_into\x18\x04 \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18\x05 \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18\x06 \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18\x07 \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\x08 \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\t \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\n \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x0b \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18\x0c \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x37\n\x14sp_dataframe_collect\x18\r \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x33\n\x12sp_dataframe_count\x18\x0e \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12<\n\x17sp_dataframe_cross_join\x18\x0f \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x39\n\x15sp_dataframe_describe\x18\x10 \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18\x11 \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18\x12 \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18\x13 \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18\x14 \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18\x15 \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18\x16 \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18\x17 \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12;\n\x16sp_dataframe_intersect\x18\x18 \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18\x19 \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12\\\n(sp_dataframe_join__dataframe__join_exprs\x18\x1a \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x62\n+sp_dataframe_join__dataframe__using_columns\x18\x1b \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12Z\n\'sp_dataframe_join__table_function__list\x18\x1c \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12X\n&sp_dataframe_join__table_function__map\x18\x1d \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x33\n\x12sp_dataframe_limit\x18\x1e \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x45\n\x1csp_dataframe_na_drop__python\x18\x1f \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x43\n\x1bsp_dataframe_na_drop__scala\x18 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x36\n\x14sp_dataframe_na_fill\x18! \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12<\n\x17sp_dataframe_na_replace\x18" \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12@\n\x19sp_dataframe_natural_join\x18# \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12@\n\x19sp_dataframe_random_split\x18$ \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12/\n\x10sp_dataframe_ref\x18% \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x35\n\x13sp_dataframe_rename\x18& \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x35\n\x13sp_dataframe_sample\x18\' \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12\x46\n\x1csp_dataframe_select__columns\x18( \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x42\n\x1asp_dataframe_select__exprs\x18) \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x31\n\x11sp_dataframe_show\x18* \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x31\n\x11sp_dataframe_sort\x18+ \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12O\n!sp_dataframe_stat_approx_quantile\x18, \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12:\n\x16sp_dataframe_stat_corr\x18- \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x38\n\x15sp_dataframe_stat_cov\x18. \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x43\n\x1bsp_dataframe_stat_cross_tab\x18/ \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x43\n\x1bsp_dataframe_stat_sample_by\x18\x30 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x32\n\x12sp_dataframe_to_df\x18\x31 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x33\n\x12sp_dataframe_union\x18\x32 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12:\n\x16sp_dataframe_union_all\x18\x33 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12H\n\x1esp_dataframe_union_all_by_name\x18\x34 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x41\n\x1asp_dataframe_union_by_name\x18\x35 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x33\n\x12sp_dataframe_where\x18\x36 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12>\n\x18sp_dataframe_with_column\x18\x37 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12M\n sp_dataframe_with_column_renamed\x18\x38 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12@\n\x19sp_dataframe_with_columns\x18\x39 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x33\n\x12sp_dataframe_write\x18: \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12$\n\nsp_flatten\x18; \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12(\n\x0csp_generator\x18< \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12 \n\x08sp_range\x18= \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12\'\n\x0csp_read_avro\x18> \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18? \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18@ \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x41 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x42 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\x43 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\x44 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12S\n#sp_relational_grouped_dataframe_agg\x18\x45 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x64\n,sp_relational_grouped_dataframe_agg__columns\x18\x46 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12\\\n(sp_relational_grouped_dataframe_agg__map\x18G \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12^\n)sp_relational_grouped_dataframe_any_value\x18H \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12S\n#sp_relational_grouped_dataframe_avg\x18I \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12[\n\'sp_relational_grouped_dataframe_builtin\x18J \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12W\n%sp_relational_grouped_dataframe_count\x18K \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12S\n#sp_relational_grouped_dataframe_max\x18L \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12U\n$sp_relational_grouped_dataframe_mean\x18M \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Y\n&sp_relational_grouped_dataframe_median\x18N \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12S\n#sp_relational_grouped_dataframe_min\x18O \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12S\n#sp_relational_grouped_dataframe_sum\x18P \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1c\n\x06sp_sql\x18Q \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x35\n\x13sp_stored_procedure\x18R \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12 \n\x08sp_table\x18S \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x31\n\x11sp_table_function\x18T \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12-\n\x0fsp_write_pandas\x18U \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x42\t\n\x07variant"G\n\x0eSpDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"H\n\x0fSpDataframeShow\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x8c\x01\n\x10SpDataframeCount\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xd1\x01\n\x12SpDataframeCollect\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\x16\n\x0e\x63\x61se_sensitive\x18\x02 \x01(\x08\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x18\n\x10log_on_exception\x18\x04 \x01(\x08\x12\x0f\n\x07no_wait\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String"~\n\x11SpCreateDataframe\x12"\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06schema\x18\x02 \x01(\x0b\x32\x16.ast.SpDataframeSchema\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x80\x03\n\rSpWritePandas\x12\x19\n\x11\x61uto_create_table\x18\x01 \x01(\x08\x12/\n\nchunk_size\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x13\n\x0b\x63ompression\x18\x03 \x01(\t\x12\x19\n\x11\x63reate_temp_table\x18\x04 \x01(\x08\x12 \n\x02\x64\x66\x18\x05 \x01(\x0b\x32\x14.ast.SpDataframeData\x12&\n\x06kwargs\x18\x06 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x10\n\x08on_error\x18\x07 \x01(\t\x12\x11\n\toverwrite\x18\x08 \x01(\x08\x12\x10\n\x08parallel\x18\t \x01(\x03\x12\x19\n\x11quote_identifiers\x18\n \x01(\x08\x12\x1d\n\x03src\x18\x0b \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\ntable_name\x18\x0c \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\r \x01(\t"\xb4\x01\n\tSpFlatten\x12\x18\n\x05input\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x02 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x03 \x01(\x08\x12*\n\x04path\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x05 \x01(\x08\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x0bSpGenerator\x12\x1a\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x11\n\trow_count\x18\x02 \x01(\x03\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1a\n\x12time_limit_seconds\x18\x04 \x01(\x03\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\x8c\x01\n\x07SpRange\x12(\n\x03\x65nd\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\r\n\x05start\x18\x03 \x01(\x03\x12)\n\x04step\x18\x04 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"P\n\x05SpSql\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\r\n\x05query\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"s\n\x11SpStoredProcedure\x12\x1c\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x0e.ast.SpVariant\x12\x0f\n\x07sp_name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x91\x01\n\x07SpTable\x12!\n\x19is_temp_table_for_cleanup\x18\x01 \x01(\x08\x12\x1e\n\x04name\x18\x02 \x01(\x0b\x32\x10.ast.SpTableName\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12$\n\x07variant\x18\x04 \x01(\x0b\x32\x13.ast.SpTableVariant"|\n\x0fSpTableFunction\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12\n\n\x02\x66n\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"w\n\x0fSpDataframeToDf\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x87\x01\n\x17SpDataframeNaDrop_Scala\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x15min_non_nulls_per_row\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xb7\x01\n\x18SpDataframeNaDrop_Python\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03how\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12+\n\x06thresh\x18\x05 \x01(\x0b\x32\x1b.google.protobuf.Int64Value"\xb9\x01\n\x11SpDataframeNaFill\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x03 \x01(\x0b\x32\x10.ast.List_String\x12\x18\n\x05value\x18\x04 \x01(\x0b\x32\t.ast.Expr\x12\'\n\tvalue_map\x18\x05 \x01(\x0b\x32\x14.ast.Map_String_Expr"\xae\x02\n\x14SpDataframeNaReplace\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12+\n\x0freplacement_map\x18\x02 \x01(\x0b\x32\x12.ast.Map_Expr_Expr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12 \n\x06subset\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12\'\n\x0fto_replace_list\x18\x05 \x01(\x0b\x32\x0e.ast.List_Expr\x12#\n\x10to_replace_value\x18\x06 \x01(\x0b\x32\t.ast.Expr\x12\x18\n\x05value\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1e\n\x06values\x18\x08 \x01(\x0b\x32\x0e.ast.List_Expr"r\n\x0eSpDataframeAgg\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1f\n\x05\x65xprs\x18\x02 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"a\n\x10SpDataframeAlias\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"e\n\x10SpDataframeApply\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"c\n\x0eSpDataframeCol\x12\x10\n\x08\x63ol_name\x18\x01 \x01(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xd9\x01\n\x14SpDataframeCrossJoin\x12!\n\x03lhs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeCube\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"v\n\x13SpDataframeDescribe\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"V\n\x13SpDataframeDistinct\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x0fSpDataframeDrop\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x19SpDataframeDropDuplicates\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"y\n\x11SpDataframeExcept\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"r\n\x11SpDataframeFilter\x12\x1c\n\tcondition\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xdf\x01\n\x12SpDataframeFlatten\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x18\n\x05input\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12 \n\x04mode\x18\x03 \x01(\x0b\x32\x12.ast.SpFlattenMode\x12\r\n\x05outer\x18\x04 \x01(\x08\x12*\n\x04path\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x11\n\trecursive\x18\x06 \x01(\x08\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x10SpDataframeFirst\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03num\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x90\x01\n\x1aSpDataframeGroupBy_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"}\n\x1aSpDataframeGroupBy_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"u\n\x12SpDataframeGroupBy\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"|\n\x14SpDataframeIntersect\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x02\n\x0fSpDataframeJoin\x12\x1c\n\tjoin_expr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07lsuffix\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12"\n\x0fmatch_condition\x18\x05 \x01(\x0b\x32\t.ast.Expr\x12!\n\x03rhs\x18\x06 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12-\n\x07rsuffix\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition"\x8e\x02\n!SpDataframeJoin_TableFunction_Map\x12,\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x1e.ast.Tuple_String_SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x02\n"SpDataframeJoin_TableFunction_List\x12\x1f\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\x04\x66unc\x18\x03 \x01(\x0b\x32\x14.ast.SpTableFunction\x12(\n\x08order_by\x18\x04 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12,\n\x0cpartition_by\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x07 \x01(\x08"\xd8\x01\n#SpDataframeJoin_Dataframe_JoinExprs\x12(\n\njoin_exprs\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tjoin_type\x18\x02 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"\xec\x01\n&SpDataframeJoin_Dataframe_UsingColumns\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\'\n\rusing_columns\x18\x05 \x01(\x0b\x32\x10.ast.List_String\x12\x10\n\x08variadic\x18\x06 \x01(\x08"n\n\x10SpDataframeLimit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\t\n\x01n\x18\x02 \x01(\x03\x12\x0e\n\x06offset\x18\x03 \x01(\x03\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa1\x01\n\x16SpDataframeNaturalJoin\x12"\n\tjoin_type\x18\x01 \x01(\x0b\x32\x0f.ast.SpJoinType\x12!\n\x03lhs\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12!\n\x03rhs\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa3\x01\n\x17SpDataframePivot_Column\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\'\n\x0cpivot_column\x18\x02 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\x90\x01\n\x17SpDataframePivot_String\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x14\n\x0cpivot_column\x18\x02 \x01(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x1e\n\x06values\x18\x04 \x03(\x0b\x32\x0e.ast.SpVariant"\xc9\x01\n\x16SpDataframeRandomSplit\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12)\n\x04seed\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x04 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0f\n\x07weights\x18\x05 \x03(\x01"\xa8\x01\n\x11SpDataframeRename\x12 \n\rcol_or_mapper\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x30\n\nnew_column\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x8f\x01\n\x19SpDataframeRollup_Columns\x12\x1f\n\x04\x63ols\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"|\n\x19SpDataframeRollup_Strings\x12\x0c\n\x04\x63ols\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"t\n\x11SpDataframeRollup\x12\x1e\n\x04\x63ols\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xba\x01\n\x11SpDataframeSample\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\x03num\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12:\n\x14probability_fraction\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x19SpDataframeSelect_Columns\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"{\n\x17SpDataframeSelect_Exprs\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x65xprs\x18\x02 \x03(\t\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\xa0\x01\n\x0fSpDataframeSort\x12\x1c\n\tascending\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ols\x18\x02 \x03(\x0b\x32\t.ast.Expr\x12\x15\n\rcols_variadic\x18\x03 \x01(\x08\x12 \n\x02\x64\x66\x18\x04 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition"x\n\x10SpDataframeUnion\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"{\n\x13SpDataframeUnionAll\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x81\x01\n\x19SpDataframeUnionAllByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"~\n\x16SpDataframeUnionByName\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12#\n\x05other\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"y\n\x10SpDataframeWhere\x12$\n\tcondition\x18\x01 \x01(\x0b\x32\x11.ast.SpColumnExpr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x82\x01\n\x15SpDataframeWithColumn\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x10\n\x08\x63ol_name\x18\x02 \x01(\t\x12 \n\x02\x64\x66\x18\x03 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x89\x01\n\x1cSpDataframeWithColumnRenamed\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x10\n\x08new_name\x18\x03 \x01(\t\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\x87\x01\n\x16SpDataframeWithColumns\x12\x11\n\tcol_names\x18\x01 \x03(\t\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x19\n\x06values\x18\x04 \x03(\x0b\x32\t.ast.Expr"\x9f\x01\n\x1eSpDataframeGroupByGroupingSets\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12*\n\rgrouping_sets\x18\x02 \x03(\x0b\x32\x13.ast.SpGroupingSets\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"O\n\x0eSpGroupingSets\x12\x1e\n\x04sets\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xe4\x01\n\x1dSpDataframeAnalyticsMovingAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x10\n\x08order_by\x18\x05 \x03(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x14\n\x0cwindow_sizes\x18\x07 \x03(\x03"\xe6\x01\n!SpDataframeAnalyticsCumulativeAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x12\n\nis_forward\x18\x05 \x01(\x08\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xc9\x01\n\x1eSpDataframeAnalyticsComputeLag\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x0c\n\x04lags\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xcb\x01\n\x1fSpDataframeAnalyticsComputeLead\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\r\n\x05leads\x18\x05 \x03(\x03\x12\x10\n\x08order_by\x18\x06 \x03(\t\x12\x1d\n\x03src\x18\x07 \x01(\x0b\x32\x10.ast.SrcPosition"\xfd\x01\n!SpDataframeAnalyticsTimeSeriesAgg\x12+\n\x04\x61ggs\x18\x01 \x03(\x0b\x32\x1d.ast.Tuple_String_List_String\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1b\n\x13\x66ormatted_col_names\x18\x03 \x03(\t\x12\x10\n\x08group_by\x18\x04 \x03(\t\x12\x18\n\x10sliding_interval\x18\x05 \x01(\t\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08time_col\x18\x07 \x01(\t\x12\x0f\n\x07windows\x18\x08 \x03(\t"\x84\x04\n\x17SpCopyableDataframeExpr\x12J\n!trait_sp_dataframe_reader_options\x18\x01 \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\x02 \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12\'\n\x0csp_copy_into\x18\x03 \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\'\n\x0csp_read_avro\x18\x04 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12%\n\x0bsp_read_csv\x18\x05 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12\'\n\x0csp_read_json\x18\x06 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12%\n\x0bsp_read_orc\x18\x07 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12-\n\x0fsp_read_parquet\x18\x08 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12)\n\rsp_read_table\x18\t \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12%\n\x0bsp_read_xml\x18\n \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x42\t\n\x07variant"6\n\x18SpDataframeReaderOptions\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"5\n\x17SpDataframeReaderSchema\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"9\n\nSpReadAvro\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadCsv\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"9\n\nSpReadJson\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadOrc\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"<\n\rSpReadParquet\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition":\n\x0bSpReadTable\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"8\n\tSpReadXml\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xcb\x01\n\nSpCopyInto\x12*\n\x07options\x18\x01 \x01(\x0b\x32\x19.ast.Map_String_SpVariant\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x12\n\ntable_name\x18\x03 \x01(\t\x12-\n\x13target_column_names\x18\x04 \x01(\x0b\x32\x10.ast.List_String\x12/\n\x0ftransformations\x18\x05 \x01(\x0b\x32\x16.ast.List_SpColumnExpr"\xe1\x03\n\x11SpDataframeWriter\x12J\n!trait_sp_dataframe_writer_options\x18\x01 \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\x02 \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12/\n\x13trait_sp_write_file\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12\x43\n\x1bsp_write_copy_into_location\x18\x04 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x05 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x06 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x07 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12+\n\x0esp_write_table\x18\x08 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x42\t\n\x07variant"7\n\x19SpDataframeWriterSaveMode\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"6\n\x18SpDataframeWriterOptions\x12\x0f\n\x05\x64ummy\x18\x01 \x01(\x08H\x00\x42\t\n\x07variant"w\n\x10SpDataframeWrite\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12"\n\tsave_mode\x18\x02 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xe2\x01\n\x0bSpWriteFile\x12\x43\n\x1bsp_write_copy_into_location\x18\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12\'\n\x0csp_write_csv\x18\x02 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12)\n\rsp_write_json\x18\x03 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12/\n\x10sp_write_parquet\x18\x04 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x42\t\n\x07variant"\xae\x02\n\nSpWriteCsv\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xaf\x02\n\x0bSpWriteJson\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x02\n\x0eSpWriteParquet\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x35\n\x13\x66ormat_type_options\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x04 \x01(\x08\x12\x16\n\x02id\x18\x05 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x06 \x01(\t\x12\x1f\n\x0cpartition_by\x18\x07 \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String"\xea\x02\n\x0cSpWriteTable\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12\'\n\x0f\x63lustering_keys\x18\x02 \x01(\x0b\x32\x0e.ast.List_Expr\x12\x14\n\x0c\x63olumn_order\x18\x03 \x01(\t\x12-\n\x07\x63omment\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x19\n\x11\x63reate_temp_table\x18\x05 \x01(\x08\x12\x16\n\x02id\x18\x06 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x04mode\x18\x07 \x01(\x0b\x32\x0f.ast.SpSaveMode\x12\x1d\n\x03src\x18\x08 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\t \x03(\x0b\x32\x18.ast.Tuple_String_String\x12$\n\ntable_name\x18\n \x01(\x0b\x32\x10.ast.SpTableName\x12\x12\n\ntable_type\x18\x0b \x01(\t"\xab\x03\n\x17SpWriteCopyIntoLocation\x12\r\n\x05\x62lock\x18\x01 \x01(\x08\x12,\n\x0c\x63opy_options\x18\x02 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12\x36\n\x10\x66ile_format_name\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x36\n\x10\x66ile_format_type\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x35\n\x13\x66ormat_type_options\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x0e\n\x06header\x18\x06 \x01(\x08\x12\x16\n\x02id\x18\x07 \x01(\x0b\x32\n.ast.VarId\x12\x10\n\x08location\x18\x08 \x01(\t\x12\x1f\n\x0cpartition_by\x18\t \x01(\x0b\x32\t.ast.Expr\x12\x1d\n\x03src\x18\n \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x0b \x03(\x0b\x32\x18.ast.Tuple_String_String"\xe3\x01\n\x1eSpDataframeCreateOrReplaceView\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0f\n\x07is_temp\x18\x03 \x01(\x08\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xfa\x01\n&SpDataframeCreateOrReplaceDynamicTable\x12-\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x0b\n\x03lag\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x03(\t\x12\x1d\n\x03src\x18\x05 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x06 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x11\n\twarehouse\x18\x07 \x01(\t"\xb7\x03\n\x18SpDataframeCopyIntoTable\x12,\n\x0c\x63opy_options\x18\x01 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\r\n\x05\x66iles\x18\x03 \x03(\t\x12\x33\n\x13\x66ormat_type_options\x18\x04 \x03(\x0b\x32\x16.ast.Tuple_String_Expr\x12-\n\x07pattern\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x1d\n\x03src\x18\x06 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x07 \x03(\x0b\x32\x18.ast.Tuple_String_String\x12\x12\n\ntable_name\x18\x08 \x03(\t\x12\x16\n\x0etarget_columns\x18\t \x03(\t\x12"\n\x0ftransformations\x18\n \x03(\x0b\x32\t.ast.Expr\x12\x35\n\x0fvalidation_mode\x18\x0b \x01(\x0b\x32\x1c.google.protobuf.StringValue"\x8d\x01\n\x16SpDataframeCacheResult\x12 \n\x02\x64\x66\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x03 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb7\x01\n\x1dSpDataframeStatApproxQuantile\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x02 \x01(\x0b\x32\n.ast.VarId\x12\x12\n\npercentile\x18\x03 \x03(\x01\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb2\x01\n\x13SpDataframeStatCorr\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb1\x01\n\x12SpDataframeStatCov\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\xb6\x01\n\x17SpDataframeStatCrossTab\x12\x17\n\x04\x63ol1\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12\x17\n\x04\x63ol2\x18\x02 \x01(\x0b\x32\t.ast.Expr\x12\x16\n\x02id\x18\x03 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x32\n\x10statement_params\x18\x05 \x03(\x0b\x32\x18.ast.Tuple_String_String"\x9c\x01\n\x17SpDataframeStatSampleBy\x12\x16\n\x03\x63ol\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12 \n\x02\x64\x66\x18\x02 \x01(\x0b\x32\x14.ast.SpDataframeExpr\x12(\n\tfractions\x18\x03 \x03(\x0b\x32\x15.ast.Tuple_Expr_Float\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"\xa8\x06\n SpRelationalGroupedDataframeExpr\x12\x31\n\x11sp_dataframe_cube\x18\x01 \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x38\n\x15sp_dataframe_group_by\x18\x02 \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18\x03 \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18\x04 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18\x05 \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12\x42\n\x1asp_dataframe_pivot__column\x18\x06 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x42\n\x1asp_dataframe_pivot__string\x18\x07 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x35\n\x13sp_dataframe_rollup\x18\x08 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12\x46\n\x1csp_dataframe_rollup__columns\x18\t \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12\x46\n\x1csp_dataframe_rollup__strings\x18\n \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12S\n#sp_relational_grouped_dataframe_ref\x18\x0b \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x42\t\n\x07variant"X\n\x1fSpRelationalGroupedDataframeRef\x12\x16\n\x02id\x18\x01 \x01(\x0b\x32\n.ast.VarId\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\xc9\x01\n#SpRelationalGroupedDataframeAgg_Map\x12 \n\x05\x65xprs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x14\n\x0c\x65xprs_is_map\x18\x02 \x01(\x08\x12\x39\n\ngrouped_df\x18\x03 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x05 \x01(\x08"\xb7\x01\n\'SpRelationalGroupedDataframeAgg_Columns\x12 \n\x05\x65xprs\x18\x01 \x03(\x0b\x32\x11.ast.SpColumnExpr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x10\n\x08variadic\x18\x04 \x01(\x08"\x9c\x01\n\x1fSpRelationalGroupedDataframeAgg\x12\x1f\n\x05\x65xprs\x18\x01 \x01(\x0b\x32\x10.ast.ExprArgList\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x99\x01\n$SpRelationalGroupedDataframeAnyValue\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeAvg\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\xaa\x01\n#SpRelationalGroupedDataframeBuiltin\x12\x10\n\x08\x61gg_name\x18\x01 \x01(\t\x12\x17\n\x04\x63ols\x18\x02 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x03 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x04 \x01(\x0b\x32\x10.ast.SrcPosition"}\n!SpRelationalGroupedDataframeCount\x12\x39\n\ngrouped_df\x18\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeMax\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x95\x01\n SpRelationalGroupedDataframeMean\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x97\x01\n"SpRelationalGroupedDataframeMedian\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeMin\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"\x94\x01\n\x1fSpRelationalGroupedDataframeSum\x12\x17\n\x04\x63ols\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x39\n\ngrouped_df\x18\x02 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExpr\x12\x1d\n\x03src\x18\x03 \x01(\x0b\x32\x10.ast.SrcPosition"^\n\x05SpRow\x12\x1f\n\x05names\x18\x01 \x01(\x0b\x32\x10.ast.List_String\x12\x1d\n\x03src\x18\x02 \x01(\x0b\x32\x10.ast.SrcPosition\x12\x15\n\x02vs\x18\x03 \x03(\x0b\x32\t.ast.Expr"8\n\x0b\x45xprArgList\x12\x17\n\x04\x61rgs\x18\x01 \x03(\x0b\x32\t.ast.Expr\x12\x10\n\x08variadic\x18\x02 \x01(\x08":\n\x0fSpDataframeType\x12\x0f\n\x07\x63olumns\x18\x01 \x03(\t\x12\x16\n\x03tys\x18\x02 \x03(\x0b\x32\t.ast.Type"F\n\x16SpGroupedDataframeType\x12\x15\n\rinner_columns\x18\x01 \x03(\t\x12\x15\n\router_columns\x18\x02 \x03(\t"\x0e\n\x0cSpWindowType"\'\n\rSpColExprType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"\x81\\\n\x0eHasSrcPosition\x12"\n\x0ctrait_bin_op\x18\x01 \x01(\x0b\x32\n.ast.BinOpH\x00\x12!\n\x0btrait_const\x18\x02 \x01(\x0b\x32\n.ast.ConstH\x00\x12\x1f\n\ntrait_expr\x18\x03 \x01(\x0b\x32\t.ast.ExprH\x00\x12+\n\x11trait_fn_ref_expr\x18\x04 \x01(\x0b\x32\x0e.ast.FnRefExprH\x00\x12\x31\n\x14trait_sp_column_expr\x18\x05 \x01(\x0b\x32\x11.ast.SpColumnExprH\x00\x12-\n\x12trait_sp_column_fn\x18\x06 \x01(\x0b\x32\x0f.ast.SpColumnFnH\x00\x12H\n trait_sp_copyable_dataframe_expr\x18\x07 \x01(\x0b\x32\x1c.ast.SpCopyableDataframeExprH\x00\x12\x37\n\x17trait_sp_dataframe_expr\x18\x08 \x01(\x0b\x32\x14.ast.SpDataframeExprH\x00\x12J\n!trait_sp_dataframe_reader_options\x18\t \x01(\x0b\x32\x1d.ast.SpDataframeReaderOptionsH\x00\x12H\n trait_sp_dataframe_reader_schema\x18\n \x01(\x0b\x32\x1c.ast.SpDataframeReaderSchemaH\x00\x12;\n\x19trait_sp_dataframe_writer\x18\x0b \x01(\x0b\x32\x16.ast.SpDataframeWriterH\x00\x12J\n!trait_sp_dataframe_writer_options\x18\x0c \x01(\x0b\x32\x1d.ast.SpDataframeWriterOptionsH\x00\x12M\n#trait_sp_dataframe_writer_save_mode\x18\r \x01(\x0b\x32\x1e.ast.SpDataframeWriterSaveModeH\x00\x12[\n*trait_sp_relational_grouped_dataframe_expr\x18\x0e \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeExprH\x00\x12:\n\x19trait_sp_window_spec_expr\x18\x0f \x01(\x0b\x32\x15.ast.SpWindowSpecExprH\x00\x12/\n\x13trait_sp_write_file\x18\x10 \x01(\x0b\x32\x10.ast.SpWriteFileH\x00\x12&\n\x0etrait_unary_op\x18\x11 \x01(\x0b\x32\x0c.ast.UnaryOpH\x00\x12\x17\n\x03\x61\x64\x64\x18\x12 \x01(\x0b\x32\x08.ast.AddH\x00\x12\x17\n\x03\x61nd\x18\x13 \x01(\x0b\x32\x08.ast.AndH\x00\x12$\n\napply_expr\x18\x14 \x01(\x0b\x32\x0e.ast.ApplyExprH\x00\x12-\n\x0f\x62ig_decimal_val\x18\x15 \x01(\x0b\x32\x12.ast.BigDecimalValH\x00\x12%\n\x0b\x62ig_int_val\x18\x16 \x01(\x0b\x32\x0e.ast.BigIntValH\x00\x12$\n\nbinary_val\x18\x17 \x01(\x0b\x32\x0e.ast.BinaryValH\x00\x12\x1e\n\x07\x62it_and\x18\x18 \x01(\x0b\x32\x0b.ast.BitAndH\x00\x12\x1c\n\x06\x62it_or\x18\x19 \x01(\x0b\x32\n.ast.BitOrH\x00\x12\x1e\n\x07\x62it_xor\x18\x1a \x01(\x0b\x32\x0b.ast.BitXorH\x00\x12 \n\x08\x62ool_val\x18\x1b \x01(\x0b\x32\x0c.ast.BoolValH\x00\x12$\n\nbuiltin_fn\x18\x1c \x01(\x0b\x32\x0e.ast.BuiltinFnH\x00\x12"\n\tcast_expr\x18\x1d \x01(\x0b\x32\r.ast.CastExprH\x00\x12 \n\x08\x64\x61te_val\x18\x1e \x01(\x0b\x32\x0c.ast.DateValH\x00\x12\x17\n\x03\x64iv\x18\x1f \x01(\x0b\x32\x08.ast.DivH\x00\x12\x15\n\x02\x65q\x18 \x01(\x0b\x32\x07.ast.EqH\x00\x12&\n\x0b\x66loat64_val\x18! \x01(\x0b\x32\x0f.ast.Float64ValH\x00\x12\x1c\n\x06\x66n_val\x18" \x01(\x0b\x32\n.ast.FnValH\x00\x12\x17\n\x03geq\x18# \x01(\x0b\x32\x08.ast.GeqH\x00\x12\x15\n\x02gt\x18$ \x01(\x0b\x32\x07.ast.GtH\x00\x12\x1e\n\x07if_expr\x18% \x01(\x0b\x32\x0b.ast.IfExprH\x00\x12"\n\tint32_val\x18& \x01(\x0b\x32\r.ast.Int32ValH\x00\x12"\n\tint64_val\x18\' \x01(\x0b\x32\r.ast.Int64ValH\x00\x12\x17\n\x03leq\x18( \x01(\x0b\x32\x08.ast.LeqH\x00\x12 \n\x08list_val\x18) \x01(\x0b\x32\x0c.ast.ListValH\x00\x12\x15\n\x02lt\x18* \x01(\x0b\x32\x07.ast.LtH\x00\x12\x17\n\x03mod\x18+ \x01(\x0b\x32\x08.ast.ModH\x00\x12\x17\n\x03mul\x18, \x01(\x0b\x32\x08.ast.MulH\x00\x12\x17\n\x03neg\x18- \x01(\x0b\x32\x08.ast.NegH\x00\x12\x17\n\x03neq\x18. \x01(\x0b\x32\x08.ast.NeqH\x00\x12 \n\x08none_val\x18/ \x01(\x0b\x32\x0c.ast.NoneValH\x00\x12\x17\n\x03not\x18\x30 \x01(\x0b\x32\x08.ast.NotH\x00\x12 \n\x08null_val\x18\x31 \x01(\x0b\x32\x0c.ast.NullValH\x00\x12\x15\n\x02or\x18\x32 \x01(\x0b\x32\x07.ast.OrH\x00\x12(\n\x0cpd_dataframe\x18\x33 \x01(\x0b\x32\x10.ast.PdDataframeH\x00\x12\x38\n\x15pd_dataframe_get_item\x18\x34 \x01(\x0b\x32\x17.ast.PdDataframeGetItemH\x00\x12\x32\n\x12pd_dataframe_i_loc\x18\x35 \x01(\x0b\x32\x14.ast.PdDataframeILocH\x00\x12/\n\x10pd_dataframe_loc\x18\x36 \x01(\x0b\x32\x13.ast.PdDataframeLocH\x00\x12\x38\n\x15pd_dataframe_set_item\x18\x37 \x01(\x0b\x32\x17.ast.PdDataframeSetItemH\x00\x12#\n\npd_drop_na\x18\x38 \x01(\x0b\x32\r.ast.PdDropNaH\x00\x12\x1e\n\x07pd_repr\x18\x39 \x01(\x0b\x32\x0b.ast.PdReprH\x00\x12\x17\n\x03pow\x18: \x01(\x0b\x32\x08.ast.PowH\x00\x12-\n\x0fpython_date_val\x18; \x01(\x0b\x32\x12.ast.PythonDateValH\x00\x12-\n\x0fpython_time_val\x18< \x01(\x0b\x32\x12.ast.PythonTimeValH\x00\x12\x37\n\x14python_timestamp_val\x18= \x01(\x0b\x32\x17.ast.PythonTimestampValH\x00\x12"\n\trange_val\x18> \x01(\x0b\x32\r.ast.RangeValH\x00\x12\x17\n\x03ref\x18? \x01(\x0b\x32\x08.ast.RefH\x00\x12%\n\x0bseq_map_val\x18@ \x01(\x0b\x32\x0e.ast.SeqMapValH\x00\x12/\n\x10session_table_fn\x18\x41 \x01(\x0b\x32\x13.ast.SessionTableFnH\x00\x12 \n\x08some_val\x18\x42 \x01(\x0b\x32\x0c.ast.SomeValH\x00\x12\'\n\x0csp_case_expr\x18\x43 \x01(\x0b\x32\x0f.ast.SpCaseExprH\x00\x12-\n\x0fsp_column_alias\x18\x44 \x01(\x0b\x32\x12.ast.SpColumnAliasH\x00\x12\x36\n\x14sp_column_apply__int\x18\x45 \x01(\x0b\x32\x16.ast.SpColumnApply_IntH\x00\x12<\n\x17sp_column_apply__string\x18\x46 \x01(\x0b\x32\x19.ast.SpColumnApply_StringH\x00\x12)\n\rsp_column_asc\x18G \x01(\x0b\x32\x10.ast.SpColumnAscH\x00\x12\x31\n\x11sp_column_between\x18H \x01(\x0b\x32\x14.ast.SpColumnBetweenH\x00\x12\x34\n\x13sp_column_case_when\x18I \x01(\x0b\x32\x15.ast.SpColumnCaseWhenH\x00\x12+\n\x0esp_column_cast\x18J \x01(\x0b\x32\x11.ast.SpColumnCastH\x00\x12+\n\x0esp_column_desc\x18K \x01(\x0b\x32\x11.ast.SpColumnDescH\x00\x12\x34\n\x13sp_column_equal_nan\x18L \x01(\x0b\x32\x15.ast.SpColumnEqualNanH\x00\x12\x36\n\x14sp_column_equal_null\x18M \x01(\x0b\x32\x16.ast.SpColumnEqualNullH\x00\x12<\n\x17sp_column_in__dataframe\x18N \x01(\x0b\x32\x19.ast.SpColumnIn_DataframeH\x00\x12\x30\n\x11sp_column_in__seq\x18O \x01(\x0b\x32\x13.ast.SpColumnIn_SeqH\x00\x12\x37\n\x15sp_column_is_not_null\x18P \x01(\x0b\x32\x16.ast.SpColumnIsNotNullH\x00\x12\x30\n\x11sp_column_is_null\x18Q \x01(\x0b\x32\x13.ast.SpColumnIsNullH\x00\x12+\n\x0esp_column_name\x18R \x01(\x0b\x32\x11.ast.SpColumnNameH\x00\x12+\n\x0esp_column_over\x18S \x01(\x0b\x32\x11.ast.SpColumnOverH\x00\x12)\n\rsp_column_ref\x18T \x01(\x0b\x32\x10.ast.SpColumnRefH\x00\x12\x32\n\x12sp_column_sql_expr\x18U \x01(\x0b\x32\x14.ast.SpColumnSqlExprH\x00\x12>\n\x18sp_column_string_collate\x18V \x01(\x0b\x32\x1a.ast.SpColumnStringCollateH\x00\x12@\n\x19sp_column_string_contains\x18W \x01(\x0b\x32\x1b.ast.SpColumnStringContainsH\x00\x12\x41\n\x1asp_column_string_ends_with\x18X \x01(\x0b\x32\x1b.ast.SpColumnStringEndsWithH\x00\x12\x38\n\x15sp_column_string_like\x18Y \x01(\x0b\x32\x17.ast.SpColumnStringLikeH\x00\x12<\n\x17sp_column_string_regexp\x18Z \x01(\x0b\x32\x19.ast.SpColumnStringRegexpH\x00\x12\x45\n\x1csp_column_string_starts_with\x18[ \x01(\x0b\x32\x1d.ast.SpColumnStringStartsWithH\x00\x12<\n\x17sp_column_string_substr\x18\\ \x01(\x0b\x32\x19.ast.SpColumnStringSubstrH\x00\x12\x32\n\x12sp_column_try_cast\x18] \x01(\x0b\x32\x14.ast.SpColumnTryCastH\x00\x12:\n\x16sp_column_within_group\x18^ \x01(\x0b\x32\x18.ast.SpColumnWithinGroupH\x00\x12\'\n\x0csp_copy_into\x18_ \x01(\x0b\x32\x0f.ast.SpCopyIntoH\x00\x12\x35\n\x13sp_create_dataframe\x18` \x01(\x0b\x32\x16.ast.SpCreateDataframeH\x00\x12/\n\x10sp_dataframe_agg\x18\x61 \x01(\x0b\x32\x13.ast.SpDataframeAggH\x00\x12\x33\n\x12sp_dataframe_alias\x18\x62 \x01(\x0b\x32\x15.ast.SpDataframeAliasH\x00\x12Q\n"sp_dataframe_analytics_compute_lag\x18\x63 \x01(\x0b\x32#.ast.SpDataframeAnalyticsComputeLagH\x00\x12S\n#sp_dataframe_analytics_compute_lead\x18\x64 \x01(\x0b\x32$.ast.SpDataframeAnalyticsComputeLeadH\x00\x12W\n%sp_dataframe_analytics_cumulative_agg\x18\x65 \x01(\x0b\x32&.ast.SpDataframeAnalyticsCumulativeAggH\x00\x12O\n!sp_dataframe_analytics_moving_agg\x18\x66 \x01(\x0b\x32".ast.SpDataframeAnalyticsMovingAggH\x00\x12X\n&sp_dataframe_analytics_time_series_agg\x18g \x01(\x0b\x32&.ast.SpDataframeAnalyticsTimeSeriesAggH\x00\x12\x33\n\x12sp_dataframe_apply\x18h \x01(\x0b\x32\x15.ast.SpDataframeApplyH\x00\x12@\n\x19sp_dataframe_cache_result\x18i \x01(\x0b\x32\x1b.ast.SpDataframeCacheResultH\x00\x12/\n\x10sp_dataframe_col\x18j \x01(\x0b\x32\x13.ast.SpDataframeColH\x00\x12\x37\n\x14sp_dataframe_collect\x18k \x01(\x0b\x32\x17.ast.SpDataframeCollectH\x00\x12\x45\n\x1csp_dataframe_copy_into_table\x18l \x01(\x0b\x32\x1d.ast.SpDataframeCopyIntoTableH\x00\x12\x33\n\x12sp_dataframe_count\x18m \x01(\x0b\x32\x15.ast.SpDataframeCountH\x00\x12\x63\n,sp_dataframe_create_or_replace_dynamic_table\x18n \x01(\x0b\x32+.ast.SpDataframeCreateOrReplaceDynamicTableH\x00\x12R\n#sp_dataframe_create_or_replace_view\x18o \x01(\x0b\x32#.ast.SpDataframeCreateOrReplaceViewH\x00\x12<\n\x17sp_dataframe_cross_join\x18p \x01(\x0b\x32\x19.ast.SpDataframeCrossJoinH\x00\x12\x31\n\x11sp_dataframe_cube\x18q \x01(\x0b\x32\x14.ast.SpDataframeCubeH\x00\x12\x39\n\x15sp_dataframe_describe\x18r \x01(\x0b\x32\x18.ast.SpDataframeDescribeH\x00\x12\x39\n\x15sp_dataframe_distinct\x18s \x01(\x0b\x32\x18.ast.SpDataframeDistinctH\x00\x12\x31\n\x11sp_dataframe_drop\x18t \x01(\x0b\x32\x14.ast.SpDataframeDropH\x00\x12\x46\n\x1csp_dataframe_drop_duplicates\x18u \x01(\x0b\x32\x1e.ast.SpDataframeDropDuplicatesH\x00\x12\x35\n\x13sp_dataframe_except\x18v \x01(\x0b\x32\x16.ast.SpDataframeExceptH\x00\x12\x35\n\x13sp_dataframe_filter\x18w \x01(\x0b\x32\x16.ast.SpDataframeFilterH\x00\x12\x33\n\x12sp_dataframe_first\x18x \x01(\x0b\x32\x15.ast.SpDataframeFirstH\x00\x12\x37\n\x14sp_dataframe_flatten\x18y \x01(\x0b\x32\x17.ast.SpDataframeFlattenH\x00\x12\x38\n\x15sp_dataframe_group_by\x18z \x01(\x0b\x32\x17.ast.SpDataframeGroupByH\x00\x12R\n#sp_dataframe_group_by_grouping_sets\x18{ \x01(\x0b\x32#.ast.SpDataframeGroupByGroupingSetsH\x00\x12I\n\x1esp_dataframe_group_by__columns\x18| \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_ColumnsH\x00\x12I\n\x1esp_dataframe_group_by__strings\x18} \x01(\x0b\x32\x1f.ast.SpDataframeGroupBy_StringsH\x00\x12;\n\x16sp_dataframe_intersect\x18~ \x01(\x0b\x32\x19.ast.SpDataframeIntersectH\x00\x12\x31\n\x11sp_dataframe_join\x18\x7f \x01(\x0b\x32\x14.ast.SpDataframeJoinH\x00\x12]\n(sp_dataframe_join__dataframe__join_exprs\x18\x80\x01 \x01(\x0b\x32(.ast.SpDataframeJoin_Dataframe_JoinExprsH\x00\x12\x63\n+sp_dataframe_join__dataframe__using_columns\x18\x81\x01 \x01(\x0b\x32+.ast.SpDataframeJoin_Dataframe_UsingColumnsH\x00\x12[\n\'sp_dataframe_join__table_function__list\x18\x82\x01 \x01(\x0b\x32\'.ast.SpDataframeJoin_TableFunction_ListH\x00\x12Y\n&sp_dataframe_join__table_function__map\x18\x83\x01 \x01(\x0b\x32&.ast.SpDataframeJoin_TableFunction_MapH\x00\x12\x34\n\x12sp_dataframe_limit\x18\x84\x01 \x01(\x0b\x32\x15.ast.SpDataframeLimitH\x00\x12\x46\n\x1csp_dataframe_na_drop__python\x18\x85\x01 \x01(\x0b\x32\x1d.ast.SpDataframeNaDrop_PythonH\x00\x12\x44\n\x1bsp_dataframe_na_drop__scala\x18\x86\x01 \x01(\x0b\x32\x1c.ast.SpDataframeNaDrop_ScalaH\x00\x12\x37\n\x14sp_dataframe_na_fill\x18\x87\x01 \x01(\x0b\x32\x16.ast.SpDataframeNaFillH\x00\x12=\n\x17sp_dataframe_na_replace\x18\x88\x01 \x01(\x0b\x32\x19.ast.SpDataframeNaReplaceH\x00\x12\x41\n\x19sp_dataframe_natural_join\x18\x89\x01 \x01(\x0b\x32\x1b.ast.SpDataframeNaturalJoinH\x00\x12\x43\n\x1asp_dataframe_pivot__column\x18\x8a\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_ColumnH\x00\x12\x43\n\x1asp_dataframe_pivot__string\x18\x8b\x01 \x01(\x0b\x32\x1c.ast.SpDataframePivot_StringH\x00\x12\x41\n\x19sp_dataframe_random_split\x18\x8c\x01 \x01(\x0b\x32\x1b.ast.SpDataframeRandomSplitH\x00\x12\x30\n\x10sp_dataframe_ref\x18\x8d\x01 \x01(\x0b\x32\x13.ast.SpDataframeRefH\x00\x12\x36\n\x13sp_dataframe_rename\x18\x8e\x01 \x01(\x0b\x32\x16.ast.SpDataframeRenameH\x00\x12\x36\n\x13sp_dataframe_rollup\x18\x8f\x01 \x01(\x0b\x32\x16.ast.SpDataframeRollupH\x00\x12G\n\x1csp_dataframe_rollup__columns\x18\x90\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_ColumnsH\x00\x12G\n\x1csp_dataframe_rollup__strings\x18\x91\x01 \x01(\x0b\x32\x1e.ast.SpDataframeRollup_StringsH\x00\x12\x36\n\x13sp_dataframe_sample\x18\x92\x01 \x01(\x0b\x32\x16.ast.SpDataframeSampleH\x00\x12G\n\x1csp_dataframe_select__columns\x18\x93\x01 \x01(\x0b\x32\x1e.ast.SpDataframeSelect_ColumnsH\x00\x12\x43\n\x1asp_dataframe_select__exprs\x18\x94\x01 \x01(\x0b\x32\x1c.ast.SpDataframeSelect_ExprsH\x00\x12\x32\n\x11sp_dataframe_show\x18\x95\x01 \x01(\x0b\x32\x14.ast.SpDataframeShowH\x00\x12\x32\n\x11sp_dataframe_sort\x18\x96\x01 \x01(\x0b\x32\x14.ast.SpDataframeSortH\x00\x12P\n!sp_dataframe_stat_approx_quantile\x18\x97\x01 \x01(\x0b\x32".ast.SpDataframeStatApproxQuantileH\x00\x12;\n\x16sp_dataframe_stat_corr\x18\x98\x01 \x01(\x0b\x32\x18.ast.SpDataframeStatCorrH\x00\x12\x39\n\x15sp_dataframe_stat_cov\x18\x99\x01 \x01(\x0b\x32\x17.ast.SpDataframeStatCovH\x00\x12\x44\n\x1bsp_dataframe_stat_cross_tab\x18\x9a\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatCrossTabH\x00\x12\x44\n\x1bsp_dataframe_stat_sample_by\x18\x9b\x01 \x01(\x0b\x32\x1c.ast.SpDataframeStatSampleByH\x00\x12\x33\n\x12sp_dataframe_to_df\x18\x9c\x01 \x01(\x0b\x32\x14.ast.SpDataframeToDfH\x00\x12\x34\n\x12sp_dataframe_union\x18\x9d\x01 \x01(\x0b\x32\x15.ast.SpDataframeUnionH\x00\x12;\n\x16sp_dataframe_union_all\x18\x9e\x01 \x01(\x0b\x32\x18.ast.SpDataframeUnionAllH\x00\x12I\n\x1esp_dataframe_union_all_by_name\x18\x9f\x01 \x01(\x0b\x32\x1e.ast.SpDataframeUnionAllByNameH\x00\x12\x42\n\x1asp_dataframe_union_by_name\x18\xa0\x01 \x01(\x0b\x32\x1b.ast.SpDataframeUnionByNameH\x00\x12\x34\n\x12sp_dataframe_where\x18\xa1\x01 \x01(\x0b\x32\x15.ast.SpDataframeWhereH\x00\x12?\n\x18sp_dataframe_with_column\x18\xa2\x01 \x01(\x0b\x32\x1a.ast.SpDataframeWithColumnH\x00\x12N\n sp_dataframe_with_column_renamed\x18\xa3\x01 \x01(\x0b\x32!.ast.SpDataframeWithColumnRenamedH\x00\x12\x41\n\x19sp_dataframe_with_columns\x18\xa4\x01 \x01(\x0b\x32\x1b.ast.SpDataframeWithColumnsH\x00\x12\x34\n\x12sp_dataframe_write\x18\xa5\x01 \x01(\x0b\x32\x15.ast.SpDataframeWriteH\x00\x12.\n\x0fsp_datatype_val\x18\xa6\x01 \x01(\x0b\x32\x12.ast.SpDatatypeValH\x00\x12%\n\nsp_flatten\x18\xa7\x01 \x01(\x0b\x32\x0e.ast.SpFlattenH\x00\x12"\n\tsp_fn_ref\x18\xa8\x01 \x01(\x0b\x32\x0c.ast.SpFnRefH\x00\x12)\n\x0csp_generator\x18\xa9\x01 \x01(\x0b\x32\x10.ast.SpGeneratorH\x00\x12\x30\n\x10sp_grouping_sets\x18\xaa\x01 \x01(\x0b\x32\x13.ast.SpGroupingSetsH\x00\x12!\n\x08sp_range\x18\xab\x01 \x01(\x0b\x32\x0c.ast.SpRangeH\x00\x12(\n\x0csp_read_avro\x18\xac\x01 \x01(\x0b\x32\x0f.ast.SpReadAvroH\x00\x12&\n\x0bsp_read_csv\x18\xad\x01 \x01(\x0b\x32\x0e.ast.SpReadCsvH\x00\x12(\n\x0csp_read_json\x18\xae\x01 \x01(\x0b\x32\x0f.ast.SpReadJsonH\x00\x12&\n\x0bsp_read_orc\x18\xaf\x01 \x01(\x0b\x32\x0e.ast.SpReadOrcH\x00\x12.\n\x0fsp_read_parquet\x18\xb0\x01 \x01(\x0b\x32\x12.ast.SpReadParquetH\x00\x12*\n\rsp_read_table\x18\xb1\x01 \x01(\x0b\x32\x10.ast.SpReadTableH\x00\x12&\n\x0bsp_read_xml\x18\xb2\x01 \x01(\x0b\x32\x0e.ast.SpReadXmlH\x00\x12T\n#sp_relational_grouped_dataframe_agg\x18\xb3\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAggH\x00\x12\x65\n,sp_relational_grouped_dataframe_agg__columns\x18\xb4\x01 \x01(\x0b\x32,.ast.SpRelationalGroupedDataframeAgg_ColumnsH\x00\x12]\n(sp_relational_grouped_dataframe_agg__map\x18\xb5\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeAgg_MapH\x00\x12_\n)sp_relational_grouped_dataframe_any_value\x18\xb6\x01 \x01(\x0b\x32).ast.SpRelationalGroupedDataframeAnyValueH\x00\x12T\n#sp_relational_grouped_dataframe_avg\x18\xb7\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeAvgH\x00\x12\\\n\'sp_relational_grouped_dataframe_builtin\x18\xb8\x01 \x01(\x0b\x32(.ast.SpRelationalGroupedDataframeBuiltinH\x00\x12X\n%sp_relational_grouped_dataframe_count\x18\xb9\x01 \x01(\x0b\x32&.ast.SpRelationalGroupedDataframeCountH\x00\x12T\n#sp_relational_grouped_dataframe_max\x18\xba\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMaxH\x00\x12V\n$sp_relational_grouped_dataframe_mean\x18\xbb\x01 \x01(\x0b\x32%.ast.SpRelationalGroupedDataframeMeanH\x00\x12Z\n&sp_relational_grouped_dataframe_median\x18\xbc\x01 \x01(\x0b\x32\'.ast.SpRelationalGroupedDataframeMedianH\x00\x12T\n#sp_relational_grouped_dataframe_min\x18\xbd\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeMinH\x00\x12T\n#sp_relational_grouped_dataframe_ref\x18\xbe\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeRefH\x00\x12T\n#sp_relational_grouped_dataframe_sum\x18\xbf\x01 \x01(\x0b\x32$.ast.SpRelationalGroupedDataframeSumH\x00\x12\x1d\n\x06sp_row\x18\xc0\x01 \x01(\x0b\x32\n.ast.SpRowH\x00\x12\x1d\n\x06sp_sql\x18\xc1\x01 \x01(\x0b\x32\n.ast.SpSqlH\x00\x12\x36\n\x13sp_stored_procedure\x18\xc2\x01 \x01(\x0b\x32\x16.ast.SpStoredProcedureH\x00\x12!\n\x08sp_table\x18\xc3\x01 \x01(\x0b\x32\x0c.ast.SpTableH\x00\x12\x32\n\x11sp_table_function\x18\xc4\x01 \x01(\x0b\x32\x14.ast.SpTableFunctionH\x00\x12\x37\n\x14sp_window_spec_empty\x18\xc5\x01 \x01(\x0b\x32\x16.ast.SpWindowSpecEmptyH\x00\x12<\n\x17sp_window_spec_order_by\x18\xc6\x01 \x01(\x0b\x32\x18.ast.SpWindowSpecOrderByH\x00\x12\x44\n\x1bsp_window_spec_partition_by\x18\xc7\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecPartitionByH\x00\x12\x46\n\x1csp_window_spec_range_between\x18\xc8\x01 \x01(\x0b\x32\x1d.ast.SpWindowSpecRangeBetweenH\x00\x12\x44\n\x1bsp_window_spec_rows_between\x18\xc9\x01 \x01(\x0b\x32\x1c.ast.SpWindowSpecRowsBetweenH\x00\x12\x44\n\x1bsp_write_copy_into_location\x18\xca\x01 \x01(\x0b\x32\x1c.ast.SpWriteCopyIntoLocationH\x00\x12(\n\x0csp_write_csv\x18\xcb\x01 \x01(\x0b\x32\x0f.ast.SpWriteCsvH\x00\x12*\n\rsp_write_json\x18\xcc\x01 \x01(\x0b\x32\x10.ast.SpWriteJsonH\x00\x12.\n\x0fsp_write_pandas\x18\xcd\x01 \x01(\x0b\x32\x12.ast.SpWritePandasH\x00\x12\x30\n\x10sp_write_parquet\x18\xce\x01 \x01(\x0b\x32\x13.ast.SpWriteParquetH\x00\x12,\n\x0esp_write_table\x18\xcf\x01 \x01(\x0b\x32\x11.ast.SpWriteTableH\x00\x12\x31\n\x10stored_procedure\x18\xd0\x01 \x01(\x0b\x32\x14.ast.StoredProcedureH\x00\x12%\n\nstring_val\x18\xd1\x01 \x01(\x0b\x32\x0e.ast.StringValH\x00\x12\x18\n\x03sub\x18\xd2\x01 \x01(\x0b\x32\x08.ast.SubH\x00\x12!\n\x08table_fn\x18\xd3\x01 \x01(\x0b\x32\x0c.ast.TableFnH\x00\x12!\n\x08time_val\x18\xd4\x01 \x01(\x0b\x32\x0c.ast.TimeValH\x00\x12+\n\rtimestamp_val\x18\xd5\x01 \x01(\x0b\x32\x11.ast.TimestampValH\x00\x12#\n\ttuple_val\x18\xd6\x01 \x01(\x0b\x32\r.ast.TupleValH\x00\x12\x18\n\x03udf\x18\xd7\x01 \x01(\x0b\x32\x08.ast.UdfH\x00\x42\t\n\x07variant"K\n\x04Stmt\x12\x1d\n\x06\x61ssign\x18\x01 \x01(\x0b\x32\x0b.ast.AssignH\x00\x12\x19\n\x04\x65val\x18\x02 \x01(\x0b\x32\t.ast.EvalH\x00\x42\t\n\x07variant"x\n\x06\x41ssign\x12\x17\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\t.ast.Expr\x12,\n\x06symbol\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x0b\n\x03uid\x18\x03 \x01(\x03\x12\x1a\n\x06var_id\x18\x04 \x01(\x0b\x32\n.ast.VarId"/\n\x04\x45val\x12\x0b\n\x03uid\x18\x01 \x01(\x03\x12\x1a\n\x06var_id\x18\x02 \x01(\x0b\x32\n.ast.VarId"\xc0\x07\n\x04Type\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12,\n\x11trait_scalar_type\x18\x02 \x01(\x0b\x32\x0f.ast.ScalarTypeH\x00\x12 \n\x08\x61ny_type\x18\x03 \x01(\x0b\x32\x0c.ast.AnyTypeH\x00\x12"\n\tbool_type\x18\x04 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x05 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12\x1e\n\x07\x66n_type\x18\x06 \x01(\x0b\x32\x0b.ast.FnTypeH\x00\x12$\n\nint32_type\x18\x07 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x08 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12"\n\tlist_type\x18\t \x01(\x0b\x32\r.ast.ListTypeH\x00\x12 \n\x08map_type\x18\n \x01(\x0b\x32\x0c.ast.MapTypeH\x00\x12(\n\x0cnothing_type\x18\x0b \x01(\x0b\x32\x10.ast.NothingTypeH\x00\x12&\n\x0bnumber_type\x18\x0c \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12&\n\x0boption_type\x18\r \x01(\x0b\x32\x0f.ast.OptionTypeH\x00\x12\'\n\x0cpd_repr_type\x18\x0e \x01(\x0b\x32\x0f.ast.PdReprTypeH\x00\x12.\n\x10sp_col_expr_type\x18\x0f \x01(\x0b\x32\x12.ast.SpColExprTypeH\x00\x12\x31\n\x11sp_dataframe_type\x18\x10 \x01(\x0b\x32\x14.ast.SpDataframeTypeH\x00\x12@\n\x19sp_grouped_dataframe_type\x18\x11 \x01(\x0b\x32\x1b.ast.SpGroupedDataframeTypeH\x00\x12+\n\x0esp_window_type\x18\x12 \x01(\x0b\x32\x11.ast.SpWindowTypeH\x00\x12&\n\x0bstring_type\x18\x13 \x01(\x0b\x32\x0f.ast.StringTypeH\x00\x12$\n\ntuple_type\x18\x14 \x01(\x0b\x32\x0e.ast.TupleTypeH\x00\x12\x1c\n\x06ty_var\x18\x15 \x01(\x0b\x32\n.ast.TyVarH\x00\x12"\n\tunit_type\x18\x16 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x12(\n\x0cunknown_type\x18\x17 \x01(\x0b\x32\x10.ast.UnknownTypeH\x00\x42\t\n\x07variant"\r\n\x0bUnknownType"\t\n\x07\x41nyType"\xad\x02\n\nScalarType\x12.\n\x12trait_numeric_type\x18\x01 \x01(\x0b\x32\x10.ast.NumericTypeH\x00\x12"\n\tbool_type\x18\x02 \x01(\x0b\x32\r.ast.BoolTypeH\x00\x12(\n\x0c\x66loat64_type\x18\x03 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x04 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x05 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x06 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x12"\n\tunit_type\x18\x07 \x01(\x0b\x32\r.ast.UnitTypeH\x00\x42\t\n\x07variant"\xb6\x01\n\x0bNumericType\x12(\n\x0c\x66loat64_type\x18\x01 \x01(\x0b\x32\x10.ast.Float64TypeH\x00\x12$\n\nint32_type\x18\x02 \x01(\x0b\x32\x0e.ast.Int32TypeH\x00\x12$\n\nint64_type\x18\x03 \x01(\x0b\x32\x0e.ast.Int64TypeH\x00\x12&\n\x0bnumber_type\x18\x04 \x01(\x0b\x32\x0f.ast.NumberTypeH\x00\x42\t\n\x07variant"\x0c\n\nNumberType"\r\n\x0bNothingType"\n\n\x08UnitType"\n\n\x08\x42oolType"\x0b\n\tInt32Type"\x0b\n\tInt64Type"\r\n\x0b\x46loat64Type"\x0c\n\nStringType"\x0c\n\nPdReprType";\n\x06\x46nType\x12\x19\n\x06params\x18\x01 \x03(\x0b\x32\t.ast.Type\x12\x16\n\x03ret\x18\x02 \x01(\x0b\x32\t.ast.Type"$\n\nOptionType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"#\n\tTupleType\x12\x16\n\x03tys\x18\x01 \x03(\x0b\x32\t.ast.Type""\n\x08ListType\x12\x16\n\x03typ\x18\x01 \x01(\x0b\x32\t.ast.Type"5\n\x07MapType\x12\x14\n\x01k\x18\x01 \x01(\x0b\x32\t.ast.Type\x12\x14\n\x01v\x18\x02 \x01(\x0b\x32\t.ast.Type"\x13\n\x05TyVar\x12\n\n\x02id\x18\x01 \x01(\t*8\n\x0b__Version__\x12\x18\n\x14PROTO3_REQUIRES_THIS\x10\x00\x12\x0f\n\x0bMAX_VERSION\x10\x01\x42%\n\x1c\x63om.snowflake.snowpark.proto\xe2?\x04H\x01X\x00\x62\x06proto3' ) _globals = globals() @@ -34,8 +34,8 @@ _globals[ "DESCRIPTOR" ]._serialized_options = b"\n\034com.snowflake.snowpark.proto\342?\004H\001X\000" - _globals["___VERSION__"]._serialized_start = 72556 - _globals["___VERSION__"]._serialized_end = 72612 + _globals["___VERSION__"]._serialized_start = 72756 + _globals["___VERSION__"]._serialized_end = 72812 _globals["_LIST_EXPR"]._serialized_start = 79 _globals["_LIST_EXPR"]._serialized_end = 115 _globals["_LIST_SPCOLUMNEXPR"]._serialized_start = 117 @@ -255,451 +255,453 @@ _globals["_APPLYEXPR"]._serialized_start = 10227 _globals["_APPLYEXPR"]._serialized_end = 10370 _globals["_FNREFEXPR"]._serialized_start = 10373 - _globals["_FNREFEXPR"]._serialized_end = 10591 - _globals["_BUILTINFN"]._serialized_start = 10593 - _globals["_BUILTINFN"]._serialized_end = 10662 - _globals["_STOREDPROCEDURE"]._serialized_start = 10665 - _globals["_STOREDPROCEDURE"]._serialized_end = 10844 - _globals["_UDF"]._serialized_start = 10847 - _globals["_UDF"]._serialized_end = 11532 - _globals["_SESSIONTABLEFN"]._serialized_start = 11534 - _globals["_SESSIONTABLEFN"]._serialized_end = 11608 - _globals["_TABLEFN"]._serialized_start = 11610 - _globals["_TABLEFN"]._serialized_end = 11718 - _globals["_UNARYOP"]._serialized_start = 11720 - _globals["_UNARYOP"]._serialized_end = 11790 - _globals["_BINOP"]._serialized_start = 11793 - _globals["_BINOP"]._serialized_end = 12247 - _globals["_NOT"]._serialized_start = 12249 - _globals["_NOT"]._serialized_end = 12313 - _globals["_AND"]._serialized_start = 12315 - _globals["_AND"]._serialized_end = 12399 - _globals["_OR"]._serialized_start = 12401 - _globals["_OR"]._serialized_end = 12484 - _globals["_EQ"]._serialized_start = 12486 - _globals["_EQ"]._serialized_end = 12569 - _globals["_NEQ"]._serialized_start = 12571 - _globals["_NEQ"]._serialized_end = 12655 - _globals["_LT"]._serialized_start = 12657 - _globals["_LT"]._serialized_end = 12740 - _globals["_LEQ"]._serialized_start = 12742 - _globals["_LEQ"]._serialized_end = 12826 - _globals["_GT"]._serialized_start = 12828 - _globals["_GT"]._serialized_end = 12911 - _globals["_GEQ"]._serialized_start = 12913 - _globals["_GEQ"]._serialized_end = 12997 - _globals["_NEG"]._serialized_start = 12999 - _globals["_NEG"]._serialized_end = 13063 - _globals["_ADD"]._serialized_start = 13065 - _globals["_ADD"]._serialized_end = 13149 - _globals["_SUB"]._serialized_start = 13151 - _globals["_SUB"]._serialized_end = 13235 - _globals["_MUL"]._serialized_start = 13237 - _globals["_MUL"]._serialized_end = 13321 - _globals["_DIV"]._serialized_start = 13323 - _globals["_DIV"]._serialized_end = 13407 - _globals["_MOD"]._serialized_start = 13409 - _globals["_MOD"]._serialized_end = 13493 - _globals["_POW"]._serialized_start = 13495 - _globals["_POW"]._serialized_end = 13579 - _globals["_BITAND"]._serialized_start = 13581 - _globals["_BITAND"]._serialized_end = 13668 - _globals["_BITOR"]._serialized_start = 13670 - _globals["_BITOR"]._serialized_end = 13756 - _globals["_BITXOR"]._serialized_start = 13758 - _globals["_BITXOR"]._serialized_end = 13845 - _globals["_RANGEVAL"]._serialized_start = 13847 - _globals["_RANGEVAL"]._serialized_end = 13964 - _globals["_SPWINDOWSPECEXPR"]._serialized_start = 13967 - _globals["_SPWINDOWSPECEXPR"]._serialized_end = 14322 - _globals["_SPWINDOWSPECEMPTY"]._serialized_start = 14324 - _globals["_SPWINDOWSPECEMPTY"]._serialized_end = 14410 - _globals["_SPWINDOWSPECORDERBY"]._serialized_start = 14412 - _globals["_SPWINDOWSPECORDERBY"]._serialized_end = 14525 - _globals["_SPWINDOWSPECPARTITIONBY"]._serialized_start = 14527 - _globals["_SPWINDOWSPECPARTITIONBY"]._serialized_end = 14644 - _globals["_SPWINDOWSPECRANGEBETWEEN"]._serialized_start = 14647 - _globals["_SPWINDOWSPECRANGEBETWEEN"]._serialized_end = 14830 - _globals["_SPWINDOWSPECROWSBETWEEN"]._serialized_start = 14833 - _globals["_SPWINDOWSPECROWSBETWEEN"]._serialized_end = 15015 - _globals["_EXPR"]._serialized_start = 15018 - _globals["_EXPR"]._serialized_end = 26281 - _globals["_REF"]._serialized_start = 26283 - _globals["_REF"]._serialized_end = 26347 - _globals["_CASTEXPR"]._serialized_start = 26349 - _globals["_CASTEXPR"]._serialized_end = 26436 - _globals["_PDDATAFRAME"]._serialized_start = 26439 - _globals["_PDDATAFRAME"]._serialized_end = 26588 - _globals["_PDDROPNA"]._serialized_start = 26591 - _globals["_PDDROPNA"]._serialized_end = 26733 - _globals["_PDDATAFRAMEGETITEM"]._serialized_start = 26735 - _globals["_PDDATAFRAMEGETITEM"]._serialized_end = 26836 - _globals["_PDDATAFRAMESETITEM"]._serialized_start = 26838 - _globals["_PDDATAFRAMESETITEM"]._serialized_end = 26961 - _globals["_PDDATAFRAMELOC"]._serialized_start = 26963 - _globals["_PDDATAFRAMELOC"]._serialized_end = 27085 - _globals["_PDDATAFRAMEILOC"]._serialized_start = 27087 - _globals["_PDDATAFRAMEILOC"]._serialized_end = 27210 - _globals["_PDREPR"]._serialized_start = 27212 - _globals["_PDREPR"]._serialized_end = 27326 - _globals["_PDREPRRESULT"]._serialized_start = 27328 - _globals["_PDREPRRESULT"]._serialized_end = 27445 - _globals["_RESULT"]._serialized_start = 27448 - _globals["_RESULT"]._serialized_end = 27606 - _globals["_EVALRESULT"]._serialized_start = 27609 - _globals["_EVALRESULT"]._serialized_end = 28428 - _globals["_EVALOK"]._serialized_start = 28430 - _globals["_EVALOK"]._serialized_end = 28510 - _globals["_ERROR"]._serialized_start = 28512 - _globals["_ERROR"]._serialized_end = 28602 - _globals["_SESSIONRESETREQUIREDERROR"]._serialized_start = 28604 - _globals["_SESSIONRESETREQUIREDERROR"]._serialized_end = 28672 - _globals["_SPCOLUMNEXPR"]._serialized_start = 28675 - _globals["_SPCOLUMNEXPR"]._serialized_end = 29007 - _globals["_SPCOLUMNREF"]._serialized_start = 29009 - _globals["_SPCOLUMNREF"]._serialized_end = 29065 - _globals["_SPCOLUMNSQLEXPR"]._serialized_start = 29067 - _globals["_SPCOLUMNSQLEXPR"]._serialized_end = 29176 - _globals["_SPCASEEXPR"]._serialized_start = 29178 - _globals["_SPCASEEXPR"]._serialized_end = 29277 - _globals["_SPCOLUMNCASEWHEN"]._serialized_start = 29279 - _globals["_SPCOLUMNCASEWHEN"]._serialized_end = 29360 - _globals["_SPCOLUMNFN"]._serialized_start = 29363 - _globals["_SPCOLUMNFN"]._serialized_end = 30660 - _globals["_SPCOLUMNALIAS"]._serialized_start = 30663 - _globals["_SPCOLUMNALIAS"]._serialized_end = 30798 - _globals["_SPCOLUMNAPPLY_INT"]._serialized_start = 30800 - _globals["_SPCOLUMNAPPLY_INT"]._serialized_end = 30887 - _globals["_SPCOLUMNAPPLY_STRING"]._serialized_start = 30889 - _globals["_SPCOLUMNAPPLY_STRING"]._serialized_end = 30981 - _globals["_SPCOLUMNASC"]._serialized_start = 30983 - _globals["_SPCOLUMNASC"]._serialized_end = 31100 - _globals["_SPCOLUMNBETWEEN"]._serialized_start = 31103 - _globals["_SPCOLUMNBETWEEN"]._serialized_end = 31239 - _globals["_SPCOLUMNCAST"]._serialized_start = 31241 - _globals["_SPCOLUMNCAST"]._serialized_end = 31339 - _globals["_SPCOLUMNTRYCAST"]._serialized_start = 31341 - _globals["_SPCOLUMNTRYCAST"]._serialized_end = 31442 - _globals["_SPCOLUMNDESC"]._serialized_start = 31444 - _globals["_SPCOLUMNDESC"]._serialized_end = 31562 - _globals["_SPCOLUMNEQUALNAN"]._serialized_start = 31564 - _globals["_SPCOLUMNEQUALNAN"]._serialized_end = 31637 - _globals["_SPCOLUMNEQUALNULL"]._serialized_start = 31639 - _globals["_SPCOLUMNEQUALNULL"]._serialized_end = 31737 - _globals["_SPCOLUMNIN_DATAFRAME"]._serialized_start = 31739 - _globals["_SPCOLUMNIN_DATAFRAME"]._serialized_end = 31850 - _globals["_SPCOLUMNIN_SEQ"]._serialized_start = 31852 - _globals["_SPCOLUMNIN_SEQ"]._serialized_end = 31950 - _globals["_SPCOLUMNISNOTNULL"]._serialized_start = 31952 - _globals["_SPCOLUMNISNOTNULL"]._serialized_end = 32026 - _globals["_SPCOLUMNISNULL"]._serialized_start = 32028 - _globals["_SPCOLUMNISNULL"]._serialized_end = 32099 - _globals["_SPCOLUMNNAME"]._serialized_start = 32101 - _globals["_SPCOLUMNNAME"]._serialized_end = 32185 - _globals["_SPCOLUMNOVER"]._serialized_start = 32187 - _globals["_SPCOLUMNOVER"]._serialized_end = 32300 - _globals["_SPCOLUMNWITHINGROUP"]._serialized_start = 32302 - _globals["_SPCOLUMNWITHINGROUP"]._serialized_end = 32410 - _globals["_SPCOLUMNSTRINGLIKE"]._serialized_start = 32412 - _globals["_SPCOLUMNSTRINGLIKE"]._serialized_end = 32515 - _globals["_SPCOLUMNSTRINGREGEXP"]._serialized_start = 32518 - _globals["_SPCOLUMNSTRINGREGEXP"]._serialized_end = 32654 - _globals["_SPCOLUMNSTRINGSTARTSWITH"]._serialized_start = 32656 - _globals["_SPCOLUMNSTRINGSTARTSWITH"]._serialized_end = 32764 - _globals["_SPCOLUMNSTRINGENDSWITH"]._serialized_start = 32766 - _globals["_SPCOLUMNSTRINGENDSWITH"]._serialized_end = 32872 - _globals["_SPCOLUMNSTRINGSUBSTR"]._serialized_start = 32874 - _globals["_SPCOLUMNSTRINGSUBSTR"]._serialized_end = 32999 - _globals["_SPCOLUMNSTRINGCOLLATE"]._serialized_start = 33001 - _globals["_SPCOLUMNSTRINGCOLLATE"]._serialized_end = 33114 - _globals["_SPCOLUMNSTRINGCONTAINS"]._serialized_start = 33116 - _globals["_SPCOLUMNSTRINGCONTAINS"]._serialized_end = 33223 - _globals["_SPDATAFRAMEEXPR"]._serialized_start = 33226 - _globals["_SPDATAFRAMEEXPR"]._serialized_end = 38724 - _globals["_SPDATAFRAMEREF"]._serialized_start = 38726 - _globals["_SPDATAFRAMEREF"]._serialized_end = 38797 - _globals["_SPDATAFRAMESHOW"]._serialized_start = 38799 - _globals["_SPDATAFRAMESHOW"]._serialized_end = 38871 - _globals["_SPDATAFRAMECOUNT"]._serialized_start = 38874 - _globals["_SPDATAFRAMECOUNT"]._serialized_end = 39014 - _globals["_SPDATAFRAMECOLLECT"]._serialized_start = 39017 - _globals["_SPDATAFRAMECOLLECT"]._serialized_end = 39226 - _globals["_SPCREATEDATAFRAME"]._serialized_start = 39228 - _globals["_SPCREATEDATAFRAME"]._serialized_end = 39354 - _globals["_SPWRITEPANDAS"]._serialized_start = 39357 - _globals["_SPWRITEPANDAS"]._serialized_end = 39741 - _globals["_SPFLATTEN"]._serialized_start = 39744 - _globals["_SPFLATTEN"]._serialized_end = 39924 - _globals["_SPGENERATOR"]._serialized_start = 39927 - _globals["_SPGENERATOR"]._serialized_end = 40064 - _globals["_SPRANGE"]._serialized_start = 40067 - _globals["_SPRANGE"]._serialized_end = 40207 - _globals["_SPSQL"]._serialized_start = 40209 - _globals["_SPSQL"]._serialized_end = 40289 - _globals["_SPSTOREDPROCEDURE"]._serialized_start = 40291 - _globals["_SPSTOREDPROCEDURE"]._serialized_end = 40406 - _globals["_SPTABLE"]._serialized_start = 40409 - _globals["_SPTABLE"]._serialized_end = 40554 - _globals["_SPTABLEFUNCTION"]._serialized_start = 40556 - _globals["_SPTABLEFUNCTION"]._serialized_end = 40680 - _globals["_SPDATAFRAMETODF"]._serialized_start = 40682 - _globals["_SPDATAFRAMETODF"]._serialized_end = 40801 - _globals["_SPDATAFRAMENADROP_SCALA"]._serialized_start = 40804 - _globals["_SPDATAFRAMENADROP_SCALA"]._serialized_end = 40939 - _globals["_SPDATAFRAMENADROP_PYTHON"]._serialized_start = 40942 - _globals["_SPDATAFRAMENADROP_PYTHON"]._serialized_end = 41125 - _globals["_SPDATAFRAMENAFILL"]._serialized_start = 41128 - _globals["_SPDATAFRAMENAFILL"]._serialized_end = 41313 - _globals["_SPDATAFRAMENAREPLACE"]._serialized_start = 41316 - _globals["_SPDATAFRAMENAREPLACE"]._serialized_end = 41618 - _globals["_SPDATAFRAMEAGG"]._serialized_start = 41620 - _globals["_SPDATAFRAMEAGG"]._serialized_end = 41734 - _globals["_SPDATAFRAMEALIAS"]._serialized_start = 41736 - _globals["_SPDATAFRAMEALIAS"]._serialized_end = 41833 - _globals["_SPDATAFRAMEAPPLY"]._serialized_start = 41835 - _globals["_SPDATAFRAMEAPPLY"]._serialized_end = 41936 - _globals["_SPDATAFRAMECOL"]._serialized_start = 41938 - _globals["_SPDATAFRAMECOL"]._serialized_end = 42037 - _globals["_SPDATAFRAMECROSSJOIN"]._serialized_start = 42040 - _globals["_SPDATAFRAMECROSSJOIN"]._serialized_end = 42257 - _globals["_SPDATAFRAMECUBE"]._serialized_start = 42259 - _globals["_SPDATAFRAMECUBE"]._serialized_end = 42373 - _globals["_SPDATAFRAMEDESCRIBE"]._serialized_start = 42375 - _globals["_SPDATAFRAMEDESCRIBE"]._serialized_end = 42493 - _globals["_SPDATAFRAMEDISTINCT"]._serialized_start = 42495 - _globals["_SPDATAFRAMEDISTINCT"]._serialized_end = 42581 - _globals["_SPDATAFRAMEDROP"]._serialized_start = 42583 - _globals["_SPDATAFRAMEDROP"]._serialized_end = 42697 - _globals["_SPDATAFRAMEDROPDUPLICATES"]._serialized_start = 42699 - _globals["_SPDATAFRAMEDROPDUPLICATES"]._serialized_end = 42823 - _globals["_SPDATAFRAMEEXCEPT"]._serialized_start = 42825 - _globals["_SPDATAFRAMEEXCEPT"]._serialized_end = 42946 - _globals["_SPDATAFRAMEFILTER"]._serialized_start = 42948 - _globals["_SPDATAFRAMEFILTER"]._serialized_end = 43062 - _globals["_SPDATAFRAMEFLATTEN"]._serialized_start = 43065 - _globals["_SPDATAFRAMEFLATTEN"]._serialized_end = 43288 - _globals["_SPDATAFRAMEFIRST"]._serialized_start = 43291 - _globals["_SPDATAFRAMEFIRST"]._serialized_end = 43454 - _globals["_SPDATAFRAMEGROUPBY_COLUMNS"]._serialized_start = 43457 - _globals["_SPDATAFRAMEGROUPBY_COLUMNS"]._serialized_end = 43601 - _globals["_SPDATAFRAMEGROUPBY_STRINGS"]._serialized_start = 43603 - _globals["_SPDATAFRAMEGROUPBY_STRINGS"]._serialized_end = 43728 - _globals["_SPDATAFRAMEGROUPBY"]._serialized_start = 43730 - _globals["_SPDATAFRAMEGROUPBY"]._serialized_end = 43847 - _globals["_SPDATAFRAMEINTERSECT"]._serialized_start = 43849 - _globals["_SPDATAFRAMEINTERSECT"]._serialized_end = 43973 - _globals["_SPDATAFRAMEJOIN"]._serialized_start = 43976 - _globals["_SPDATAFRAMEJOIN"]._serialized_end = 44290 - _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_MAP"]._serialized_start = 44293 - _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_MAP"]._serialized_end = 44563 - _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_LIST"]._serialized_start = 44566 - _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_LIST"]._serialized_end = 44842 - _globals["_SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS"]._serialized_start = 44845 - _globals["_SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS"]._serialized_end = 45061 - _globals["_SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS"]._serialized_start = 45064 - _globals["_SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS"]._serialized_end = 45300 - _globals["_SPDATAFRAMELIMIT"]._serialized_start = 45302 - _globals["_SPDATAFRAMELIMIT"]._serialized_end = 45412 - _globals["_SPDATAFRAMENATURALJOIN"]._serialized_start = 45415 - _globals["_SPDATAFRAMENATURALJOIN"]._serialized_end = 45576 - _globals["_SPDATAFRAMEPIVOT_COLUMN"]._serialized_start = 45579 - _globals["_SPDATAFRAMEPIVOT_COLUMN"]._serialized_end = 45742 - _globals["_SPDATAFRAMEPIVOT_STRING"]._serialized_start = 45745 - _globals["_SPDATAFRAMEPIVOT_STRING"]._serialized_end = 45889 - _globals["_SPDATAFRAMERANDOMSPLIT"]._serialized_start = 45892 - _globals["_SPDATAFRAMERANDOMSPLIT"]._serialized_end = 46093 - _globals["_SPDATAFRAMERENAME"]._serialized_start = 46096 - _globals["_SPDATAFRAMERENAME"]._serialized_end = 46264 - _globals["_SPDATAFRAMEROLLUP_COLUMNS"]._serialized_start = 46267 - _globals["_SPDATAFRAMEROLLUP_COLUMNS"]._serialized_end = 46410 - _globals["_SPDATAFRAMEROLLUP_STRINGS"]._serialized_start = 46412 - _globals["_SPDATAFRAMEROLLUP_STRINGS"]._serialized_end = 46536 - _globals["_SPDATAFRAMEROLLUP"]._serialized_start = 46538 - _globals["_SPDATAFRAMEROLLUP"]._serialized_end = 46654 - _globals["_SPDATAFRAMESAMPLE"]._serialized_start = 46657 - _globals["_SPDATAFRAMESAMPLE"]._serialized_end = 46843 - _globals["_SPDATAFRAMESELECT_COLUMNS"]._serialized_start = 46846 - _globals["_SPDATAFRAMESELECT_COLUMNS"]._serialized_end = 46981 - _globals["_SPDATAFRAMESELECT_EXPRS"]._serialized_start = 46983 - _globals["_SPDATAFRAMESELECT_EXPRS"]._serialized_end = 47106 - _globals["_SPDATAFRAMESORT"]._serialized_start = 47109 - _globals["_SPDATAFRAMESORT"]._serialized_end = 47269 - _globals["_SPDATAFRAMEUNION"]._serialized_start = 47271 - _globals["_SPDATAFRAMEUNION"]._serialized_end = 47391 - _globals["_SPDATAFRAMEUNIONALL"]._serialized_start = 47393 - _globals["_SPDATAFRAMEUNIONALL"]._serialized_end = 47516 - _globals["_SPDATAFRAMEUNIONALLBYNAME"]._serialized_start = 47519 - _globals["_SPDATAFRAMEUNIONALLBYNAME"]._serialized_end = 47648 - _globals["_SPDATAFRAMEUNIONBYNAME"]._serialized_start = 47650 - _globals["_SPDATAFRAMEUNIONBYNAME"]._serialized_end = 47776 - _globals["_SPDATAFRAMEWHERE"]._serialized_start = 47778 - _globals["_SPDATAFRAMEWHERE"]._serialized_end = 47899 - _globals["_SPDATAFRAMEWITHCOLUMN"]._serialized_start = 47902 - _globals["_SPDATAFRAMEWITHCOLUMN"]._serialized_end = 48032 - _globals["_SPDATAFRAMEWITHCOLUMNRENAMED"]._serialized_start = 48035 - _globals["_SPDATAFRAMEWITHCOLUMNRENAMED"]._serialized_end = 48172 - _globals["_SPDATAFRAMEWITHCOLUMNS"]._serialized_start = 48175 - _globals["_SPDATAFRAMEWITHCOLUMNS"]._serialized_end = 48310 - _globals["_SPDATAFRAMEGROUPBYGROUPINGSETS"]._serialized_start = 48313 - _globals["_SPDATAFRAMEGROUPBYGROUPINGSETS"]._serialized_end = 48472 - _globals["_SPGROUPINGSETS"]._serialized_start = 48474 - _globals["_SPGROUPINGSETS"]._serialized_end = 48553 - _globals["_SPDATAFRAMEANALYTICSMOVINGAGG"]._serialized_start = 48556 - _globals["_SPDATAFRAMEANALYTICSMOVINGAGG"]._serialized_end = 48784 - _globals["_SPDATAFRAMEANALYTICSCUMULATIVEAGG"]._serialized_start = 48787 - _globals["_SPDATAFRAMEANALYTICSCUMULATIVEAGG"]._serialized_end = 49017 - _globals["_SPDATAFRAMEANALYTICSCOMPUTELAG"]._serialized_start = 49020 - _globals["_SPDATAFRAMEANALYTICSCOMPUTELAG"]._serialized_end = 49221 - _globals["_SPDATAFRAMEANALYTICSCOMPUTELEAD"]._serialized_start = 49224 - _globals["_SPDATAFRAMEANALYTICSCOMPUTELEAD"]._serialized_end = 49427 - _globals["_SPDATAFRAMEANALYTICSTIMESERIESAGG"]._serialized_start = 49430 - _globals["_SPDATAFRAMEANALYTICSTIMESERIESAGG"]._serialized_end = 49683 - _globals["_SPCOPYABLEDATAFRAMEEXPR"]._serialized_start = 49686 - _globals["_SPCOPYABLEDATAFRAMEEXPR"]._serialized_end = 50202 - _globals["_SPDATAFRAMEREADEROPTIONS"]._serialized_start = 50204 - _globals["_SPDATAFRAMEREADEROPTIONS"]._serialized_end = 50258 - _globals["_SPDATAFRAMEREADERSCHEMA"]._serialized_start = 50260 - _globals["_SPDATAFRAMEREADERSCHEMA"]._serialized_end = 50313 - _globals["_SPREADAVRO"]._serialized_start = 50315 - _globals["_SPREADAVRO"]._serialized_end = 50372 - _globals["_SPREADCSV"]._serialized_start = 50374 - _globals["_SPREADCSV"]._serialized_end = 50430 - _globals["_SPREADJSON"]._serialized_start = 50432 - _globals["_SPREADJSON"]._serialized_end = 50489 - _globals["_SPREADORC"]._serialized_start = 50491 - _globals["_SPREADORC"]._serialized_end = 50547 - _globals["_SPREADPARQUET"]._serialized_start = 50549 - _globals["_SPREADPARQUET"]._serialized_end = 50609 - _globals["_SPREADTABLE"]._serialized_start = 50611 - _globals["_SPREADTABLE"]._serialized_end = 50669 - _globals["_SPREADXML"]._serialized_start = 50671 - _globals["_SPREADXML"]._serialized_end = 50727 - _globals["_SPCOPYINTO"]._serialized_start = 50730 - _globals["_SPCOPYINTO"]._serialized_end = 50933 - _globals["_SPDATAFRAMEWRITER"]._serialized_start = 50936 - _globals["_SPDATAFRAMEWRITER"]._serialized_end = 51417 - _globals["_SPDATAFRAMEWRITERSAVEMODE"]._serialized_start = 51419 - _globals["_SPDATAFRAMEWRITERSAVEMODE"]._serialized_end = 51474 - _globals["_SPDATAFRAMEWRITEROPTIONS"]._serialized_start = 51476 - _globals["_SPDATAFRAMEWRITEROPTIONS"]._serialized_end = 51530 - _globals["_SPDATAFRAMEWRITE"]._serialized_start = 51532 - _globals["_SPDATAFRAMEWRITE"]._serialized_end = 51651 - _globals["_SPWRITEFILE"]._serialized_start = 51654 - _globals["_SPWRITEFILE"]._serialized_end = 51880 - _globals["_SPWRITECSV"]._serialized_start = 51883 - _globals["_SPWRITECSV"]._serialized_end = 52185 - _globals["_SPWRITEJSON"]._serialized_start = 52188 - _globals["_SPWRITEJSON"]._serialized_end = 52491 - _globals["_SPWRITEPARQUET"]._serialized_start = 52494 - _globals["_SPWRITEPARQUET"]._serialized_end = 52800 - _globals["_SPWRITETABLE"]._serialized_start = 52803 - _globals["_SPWRITETABLE"]._serialized_end = 53165 - _globals["_SPWRITECOPYINTOLOCATION"]._serialized_start = 53168 - _globals["_SPWRITECOPYINTOLOCATION"]._serialized_end = 53595 - _globals["_SPDATAFRAMECREATEORREPLACEVIEW"]._serialized_start = 53598 - _globals["_SPDATAFRAMECREATEORREPLACEVIEW"]._serialized_end = 53825 - _globals["_SPDATAFRAMECREATEORREPLACEDYNAMICTABLE"]._serialized_start = 53828 - _globals["_SPDATAFRAMECREATEORREPLACEDYNAMICTABLE"]._serialized_end = 54078 - _globals["_SPDATAFRAMECOPYINTOTABLE"]._serialized_start = 54081 - _globals["_SPDATAFRAMECOPYINTOTABLE"]._serialized_end = 54520 - _globals["_SPDATAFRAMECACHERESULT"]._serialized_start = 54523 - _globals["_SPDATAFRAMECACHERESULT"]._serialized_end = 54664 - _globals["_SPDATAFRAMESTATAPPROXQUANTILE"]._serialized_start = 54667 - _globals["_SPDATAFRAMESTATAPPROXQUANTILE"]._serialized_end = 54850 - _globals["_SPDATAFRAMESTATCORR"]._serialized_start = 54853 - _globals["_SPDATAFRAMESTATCORR"]._serialized_end = 55031 - _globals["_SPDATAFRAMESTATCOV"]._serialized_start = 55034 - _globals["_SPDATAFRAMESTATCOV"]._serialized_end = 55211 - _globals["_SPDATAFRAMESTATCROSSTAB"]._serialized_start = 55214 - _globals["_SPDATAFRAMESTATCROSSTAB"]._serialized_end = 55396 - _globals["_SPDATAFRAMESTATSAMPLEBY"]._serialized_start = 55399 - _globals["_SPDATAFRAMESTATSAMPLEBY"]._serialized_end = 55555 - _globals["_SPRELATIONALGROUPEDDATAFRAMEEXPR"]._serialized_start = 55558 - _globals["_SPRELATIONALGROUPEDDATAFRAMEEXPR"]._serialized_end = 56366 - _globals["_SPRELATIONALGROUPEDDATAFRAMEREF"]._serialized_start = 56368 - _globals["_SPRELATIONALGROUPEDDATAFRAMEREF"]._serialized_end = 56456 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_MAP"]._serialized_start = 56459 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_MAP"]._serialized_end = 56660 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS"]._serialized_start = 56663 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS"]._serialized_end = 56846 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG"]._serialized_start = 56849 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG"]._serialized_end = 57005 - _globals["_SPRELATIONALGROUPEDDATAFRAMEANYVALUE"]._serialized_start = 57008 - _globals["_SPRELATIONALGROUPEDDATAFRAMEANYVALUE"]._serialized_end = 57161 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAVG"]._serialized_start = 57164 - _globals["_SPRELATIONALGROUPEDDATAFRAMEAVG"]._serialized_end = 57312 - _globals["_SPRELATIONALGROUPEDDATAFRAMEBUILTIN"]._serialized_start = 57315 - _globals["_SPRELATIONALGROUPEDDATAFRAMEBUILTIN"]._serialized_end = 57485 - _globals["_SPRELATIONALGROUPEDDATAFRAMECOUNT"]._serialized_start = 57487 - _globals["_SPRELATIONALGROUPEDDATAFRAMECOUNT"]._serialized_end = 57612 - _globals["_SPRELATIONALGROUPEDDATAFRAMEMAX"]._serialized_start = 57615 - _globals["_SPRELATIONALGROUPEDDATAFRAMEMAX"]._serialized_end = 57763 - _globals["_SPRELATIONALGROUPEDDATAFRAMEMEAN"]._serialized_start = 57766 - _globals["_SPRELATIONALGROUPEDDATAFRAMEMEAN"]._serialized_end = 57915 - _globals["_SPRELATIONALGROUPEDDATAFRAMEMEDIAN"]._serialized_start = 57918 - _globals["_SPRELATIONALGROUPEDDATAFRAMEMEDIAN"]._serialized_end = 58069 - _globals["_SPRELATIONALGROUPEDDATAFRAMEMIN"]._serialized_start = 58072 - _globals["_SPRELATIONALGROUPEDDATAFRAMEMIN"]._serialized_end = 58220 - _globals["_SPRELATIONALGROUPEDDATAFRAMESUM"]._serialized_start = 58223 - _globals["_SPRELATIONALGROUPEDDATAFRAMESUM"]._serialized_end = 58371 - _globals["_SPROW"]._serialized_start = 58373 - _globals["_SPROW"]._serialized_end = 58467 - _globals["_EXPRARGLIST"]._serialized_start = 58469 - _globals["_EXPRARGLIST"]._serialized_end = 58525 - _globals["_SPDATAFRAMETYPE"]._serialized_start = 58527 - _globals["_SPDATAFRAMETYPE"]._serialized_end = 58585 - _globals["_SPGROUPEDDATAFRAMETYPE"]._serialized_start = 58587 - _globals["_SPGROUPEDDATAFRAMETYPE"]._serialized_end = 58657 - _globals["_SPWINDOWTYPE"]._serialized_start = 58659 - _globals["_SPWINDOWTYPE"]._serialized_end = 58673 - _globals["_SPCOLEXPRTYPE"]._serialized_start = 58675 - _globals["_SPCOLEXPRTYPE"]._serialized_end = 58714 - _globals["_HASSRCPOSITION"]._serialized_start = 58717 - _globals["_HASSRCPOSITION"]._serialized_end = 70458 - _globals["_STMT"]._serialized_start = 70460 - _globals["_STMT"]._serialized_end = 70535 - _globals["_ASSIGN"]._serialized_start = 70537 - _globals["_ASSIGN"]._serialized_end = 70657 - _globals["_EVAL"]._serialized_start = 70659 - _globals["_EVAL"]._serialized_end = 70706 - _globals["_TYPE"]._serialized_start = 70709 - _globals["_TYPE"]._serialized_end = 71669 - _globals["_UNKNOWNTYPE"]._serialized_start = 71671 - _globals["_UNKNOWNTYPE"]._serialized_end = 71684 - _globals["_ANYTYPE"]._serialized_start = 71686 - _globals["_ANYTYPE"]._serialized_end = 71695 - _globals["_SCALARTYPE"]._serialized_start = 71698 - _globals["_SCALARTYPE"]._serialized_end = 71999 - _globals["_NUMERICTYPE"]._serialized_start = 72002 - _globals["_NUMERICTYPE"]._serialized_end = 72184 - _globals["_NUMBERTYPE"]._serialized_start = 72186 - _globals["_NUMBERTYPE"]._serialized_end = 72198 - _globals["_NOTHINGTYPE"]._serialized_start = 72200 - _globals["_NOTHINGTYPE"]._serialized_end = 72213 - _globals["_UNITTYPE"]._serialized_start = 72215 - _globals["_UNITTYPE"]._serialized_end = 72225 - _globals["_BOOLTYPE"]._serialized_start = 72227 - _globals["_BOOLTYPE"]._serialized_end = 72237 - _globals["_INT32TYPE"]._serialized_start = 72239 - _globals["_INT32TYPE"]._serialized_end = 72250 - _globals["_INT64TYPE"]._serialized_start = 72252 - _globals["_INT64TYPE"]._serialized_end = 72263 - _globals["_FLOAT64TYPE"]._serialized_start = 72265 - _globals["_FLOAT64TYPE"]._serialized_end = 72278 - _globals["_STRINGTYPE"]._serialized_start = 72280 - _globals["_STRINGTYPE"]._serialized_end = 72292 - _globals["_PDREPRTYPE"]._serialized_start = 72294 - _globals["_PDREPRTYPE"]._serialized_end = 72306 - _globals["_FNTYPE"]._serialized_start = 72308 - _globals["_FNTYPE"]._serialized_end = 72367 - _globals["_OPTIONTYPE"]._serialized_start = 72369 - _globals["_OPTIONTYPE"]._serialized_end = 72405 - _globals["_TUPLETYPE"]._serialized_start = 72407 - _globals["_TUPLETYPE"]._serialized_end = 72442 - _globals["_LISTTYPE"]._serialized_start = 72444 - _globals["_LISTTYPE"]._serialized_end = 72478 - _globals["_MAPTYPE"]._serialized_start = 72480 - _globals["_MAPTYPE"]._serialized_end = 72533 - _globals["_TYVAR"]._serialized_start = 72535 - _globals["_TYVAR"]._serialized_end = 72554 + _globals["_FNREFEXPR"]._serialized_end = 10626 + _globals["_SPFNREF"]._serialized_start = 10628 + _globals["_SPFNREF"]._serialized_end = 10719 + _globals["_BUILTINFN"]._serialized_start = 10721 + _globals["_BUILTINFN"]._serialized_end = 10790 + _globals["_STOREDPROCEDURE"]._serialized_start = 10793 + _globals["_STOREDPROCEDURE"]._serialized_end = 10972 + _globals["_UDF"]._serialized_start = 10975 + _globals["_UDF"]._serialized_end = 11660 + _globals["_SESSIONTABLEFN"]._serialized_start = 11662 + _globals["_SESSIONTABLEFN"]._serialized_end = 11736 + _globals["_TABLEFN"]._serialized_start = 11738 + _globals["_TABLEFN"]._serialized_end = 11846 + _globals["_UNARYOP"]._serialized_start = 11848 + _globals["_UNARYOP"]._serialized_end = 11918 + _globals["_BINOP"]._serialized_start = 11921 + _globals["_BINOP"]._serialized_end = 12375 + _globals["_NOT"]._serialized_start = 12377 + _globals["_NOT"]._serialized_end = 12441 + _globals["_AND"]._serialized_start = 12443 + _globals["_AND"]._serialized_end = 12527 + _globals["_OR"]._serialized_start = 12529 + _globals["_OR"]._serialized_end = 12612 + _globals["_EQ"]._serialized_start = 12614 + _globals["_EQ"]._serialized_end = 12697 + _globals["_NEQ"]._serialized_start = 12699 + _globals["_NEQ"]._serialized_end = 12783 + _globals["_LT"]._serialized_start = 12785 + _globals["_LT"]._serialized_end = 12868 + _globals["_LEQ"]._serialized_start = 12870 + _globals["_LEQ"]._serialized_end = 12954 + _globals["_GT"]._serialized_start = 12956 + _globals["_GT"]._serialized_end = 13039 + _globals["_GEQ"]._serialized_start = 13041 + _globals["_GEQ"]._serialized_end = 13125 + _globals["_NEG"]._serialized_start = 13127 + _globals["_NEG"]._serialized_end = 13191 + _globals["_ADD"]._serialized_start = 13193 + _globals["_ADD"]._serialized_end = 13277 + _globals["_SUB"]._serialized_start = 13279 + _globals["_SUB"]._serialized_end = 13363 + _globals["_MUL"]._serialized_start = 13365 + _globals["_MUL"]._serialized_end = 13449 + _globals["_DIV"]._serialized_start = 13451 + _globals["_DIV"]._serialized_end = 13535 + _globals["_MOD"]._serialized_start = 13537 + _globals["_MOD"]._serialized_end = 13621 + _globals["_POW"]._serialized_start = 13623 + _globals["_POW"]._serialized_end = 13707 + _globals["_BITAND"]._serialized_start = 13709 + _globals["_BITAND"]._serialized_end = 13796 + _globals["_BITOR"]._serialized_start = 13798 + _globals["_BITOR"]._serialized_end = 13884 + _globals["_BITXOR"]._serialized_start = 13886 + _globals["_BITXOR"]._serialized_end = 13973 + _globals["_RANGEVAL"]._serialized_start = 13975 + _globals["_RANGEVAL"]._serialized_end = 14092 + _globals["_SPWINDOWSPECEXPR"]._serialized_start = 14095 + _globals["_SPWINDOWSPECEXPR"]._serialized_end = 14450 + _globals["_SPWINDOWSPECEMPTY"]._serialized_start = 14452 + _globals["_SPWINDOWSPECEMPTY"]._serialized_end = 14538 + _globals["_SPWINDOWSPECORDERBY"]._serialized_start = 14540 + _globals["_SPWINDOWSPECORDERBY"]._serialized_end = 14653 + _globals["_SPWINDOWSPECPARTITIONBY"]._serialized_start = 14655 + _globals["_SPWINDOWSPECPARTITIONBY"]._serialized_end = 14772 + _globals["_SPWINDOWSPECRANGEBETWEEN"]._serialized_start = 14775 + _globals["_SPWINDOWSPECRANGEBETWEEN"]._serialized_end = 14958 + _globals["_SPWINDOWSPECROWSBETWEEN"]._serialized_start = 14961 + _globals["_SPWINDOWSPECROWSBETWEEN"]._serialized_end = 15143 + _globals["_EXPR"]._serialized_start = 15146 + _globals["_EXPR"]._serialized_end = 26445 + _globals["_REF"]._serialized_start = 26447 + _globals["_REF"]._serialized_end = 26511 + _globals["_CASTEXPR"]._serialized_start = 26513 + _globals["_CASTEXPR"]._serialized_end = 26600 + _globals["_PDDATAFRAME"]._serialized_start = 26603 + _globals["_PDDATAFRAME"]._serialized_end = 26752 + _globals["_PDDROPNA"]._serialized_start = 26755 + _globals["_PDDROPNA"]._serialized_end = 26897 + _globals["_PDDATAFRAMEGETITEM"]._serialized_start = 26899 + _globals["_PDDATAFRAMEGETITEM"]._serialized_end = 27000 + _globals["_PDDATAFRAMESETITEM"]._serialized_start = 27002 + _globals["_PDDATAFRAMESETITEM"]._serialized_end = 27125 + _globals["_PDDATAFRAMELOC"]._serialized_start = 27127 + _globals["_PDDATAFRAMELOC"]._serialized_end = 27249 + _globals["_PDDATAFRAMEILOC"]._serialized_start = 27251 + _globals["_PDDATAFRAMEILOC"]._serialized_end = 27374 + _globals["_PDREPR"]._serialized_start = 27376 + _globals["_PDREPR"]._serialized_end = 27490 + _globals["_PDREPRRESULT"]._serialized_start = 27492 + _globals["_PDREPRRESULT"]._serialized_end = 27609 + _globals["_RESULT"]._serialized_start = 27612 + _globals["_RESULT"]._serialized_end = 27770 + _globals["_EVALRESULT"]._serialized_start = 27773 + _globals["_EVALRESULT"]._serialized_end = 28592 + _globals["_EVALOK"]._serialized_start = 28594 + _globals["_EVALOK"]._serialized_end = 28674 + _globals["_ERROR"]._serialized_start = 28676 + _globals["_ERROR"]._serialized_end = 28766 + _globals["_SESSIONRESETREQUIREDERROR"]._serialized_start = 28768 + _globals["_SESSIONRESETREQUIREDERROR"]._serialized_end = 28836 + _globals["_SPCOLUMNEXPR"]._serialized_start = 28839 + _globals["_SPCOLUMNEXPR"]._serialized_end = 29171 + _globals["_SPCOLUMNREF"]._serialized_start = 29173 + _globals["_SPCOLUMNREF"]._serialized_end = 29229 + _globals["_SPCOLUMNSQLEXPR"]._serialized_start = 29231 + _globals["_SPCOLUMNSQLEXPR"]._serialized_end = 29340 + _globals["_SPCASEEXPR"]._serialized_start = 29342 + _globals["_SPCASEEXPR"]._serialized_end = 29441 + _globals["_SPCOLUMNCASEWHEN"]._serialized_start = 29443 + _globals["_SPCOLUMNCASEWHEN"]._serialized_end = 29524 + _globals["_SPCOLUMNFN"]._serialized_start = 29527 + _globals["_SPCOLUMNFN"]._serialized_end = 30824 + _globals["_SPCOLUMNALIAS"]._serialized_start = 30827 + _globals["_SPCOLUMNALIAS"]._serialized_end = 30962 + _globals["_SPCOLUMNAPPLY_INT"]._serialized_start = 30964 + _globals["_SPCOLUMNAPPLY_INT"]._serialized_end = 31051 + _globals["_SPCOLUMNAPPLY_STRING"]._serialized_start = 31053 + _globals["_SPCOLUMNAPPLY_STRING"]._serialized_end = 31145 + _globals["_SPCOLUMNASC"]._serialized_start = 31147 + _globals["_SPCOLUMNASC"]._serialized_end = 31264 + _globals["_SPCOLUMNBETWEEN"]._serialized_start = 31267 + _globals["_SPCOLUMNBETWEEN"]._serialized_end = 31403 + _globals["_SPCOLUMNCAST"]._serialized_start = 31405 + _globals["_SPCOLUMNCAST"]._serialized_end = 31503 + _globals["_SPCOLUMNTRYCAST"]._serialized_start = 31505 + _globals["_SPCOLUMNTRYCAST"]._serialized_end = 31606 + _globals["_SPCOLUMNDESC"]._serialized_start = 31608 + _globals["_SPCOLUMNDESC"]._serialized_end = 31726 + _globals["_SPCOLUMNEQUALNAN"]._serialized_start = 31728 + _globals["_SPCOLUMNEQUALNAN"]._serialized_end = 31801 + _globals["_SPCOLUMNEQUALNULL"]._serialized_start = 31803 + _globals["_SPCOLUMNEQUALNULL"]._serialized_end = 31901 + _globals["_SPCOLUMNIN_DATAFRAME"]._serialized_start = 31903 + _globals["_SPCOLUMNIN_DATAFRAME"]._serialized_end = 32014 + _globals["_SPCOLUMNIN_SEQ"]._serialized_start = 32016 + _globals["_SPCOLUMNIN_SEQ"]._serialized_end = 32114 + _globals["_SPCOLUMNISNOTNULL"]._serialized_start = 32116 + _globals["_SPCOLUMNISNOTNULL"]._serialized_end = 32190 + _globals["_SPCOLUMNISNULL"]._serialized_start = 32192 + _globals["_SPCOLUMNISNULL"]._serialized_end = 32263 + _globals["_SPCOLUMNNAME"]._serialized_start = 32265 + _globals["_SPCOLUMNNAME"]._serialized_end = 32349 + _globals["_SPCOLUMNOVER"]._serialized_start = 32351 + _globals["_SPCOLUMNOVER"]._serialized_end = 32464 + _globals["_SPCOLUMNWITHINGROUP"]._serialized_start = 32466 + _globals["_SPCOLUMNWITHINGROUP"]._serialized_end = 32574 + _globals["_SPCOLUMNSTRINGLIKE"]._serialized_start = 32576 + _globals["_SPCOLUMNSTRINGLIKE"]._serialized_end = 32679 + _globals["_SPCOLUMNSTRINGREGEXP"]._serialized_start = 32682 + _globals["_SPCOLUMNSTRINGREGEXP"]._serialized_end = 32818 + _globals["_SPCOLUMNSTRINGSTARTSWITH"]._serialized_start = 32820 + _globals["_SPCOLUMNSTRINGSTARTSWITH"]._serialized_end = 32928 + _globals["_SPCOLUMNSTRINGENDSWITH"]._serialized_start = 32930 + _globals["_SPCOLUMNSTRINGENDSWITH"]._serialized_end = 33036 + _globals["_SPCOLUMNSTRINGSUBSTR"]._serialized_start = 33038 + _globals["_SPCOLUMNSTRINGSUBSTR"]._serialized_end = 33163 + _globals["_SPCOLUMNSTRINGCOLLATE"]._serialized_start = 33165 + _globals["_SPCOLUMNSTRINGCOLLATE"]._serialized_end = 33278 + _globals["_SPCOLUMNSTRINGCONTAINS"]._serialized_start = 33280 + _globals["_SPCOLUMNSTRINGCONTAINS"]._serialized_end = 33387 + _globals["_SPDATAFRAMEEXPR"]._serialized_start = 33390 + _globals["_SPDATAFRAMEEXPR"]._serialized_end = 38888 + _globals["_SPDATAFRAMEREF"]._serialized_start = 38890 + _globals["_SPDATAFRAMEREF"]._serialized_end = 38961 + _globals["_SPDATAFRAMESHOW"]._serialized_start = 38963 + _globals["_SPDATAFRAMESHOW"]._serialized_end = 39035 + _globals["_SPDATAFRAMECOUNT"]._serialized_start = 39038 + _globals["_SPDATAFRAMECOUNT"]._serialized_end = 39178 + _globals["_SPDATAFRAMECOLLECT"]._serialized_start = 39181 + _globals["_SPDATAFRAMECOLLECT"]._serialized_end = 39390 + _globals["_SPCREATEDATAFRAME"]._serialized_start = 39392 + _globals["_SPCREATEDATAFRAME"]._serialized_end = 39518 + _globals["_SPWRITEPANDAS"]._serialized_start = 39521 + _globals["_SPWRITEPANDAS"]._serialized_end = 39905 + _globals["_SPFLATTEN"]._serialized_start = 39908 + _globals["_SPFLATTEN"]._serialized_end = 40088 + _globals["_SPGENERATOR"]._serialized_start = 40091 + _globals["_SPGENERATOR"]._serialized_end = 40228 + _globals["_SPRANGE"]._serialized_start = 40231 + _globals["_SPRANGE"]._serialized_end = 40371 + _globals["_SPSQL"]._serialized_start = 40373 + _globals["_SPSQL"]._serialized_end = 40453 + _globals["_SPSTOREDPROCEDURE"]._serialized_start = 40455 + _globals["_SPSTOREDPROCEDURE"]._serialized_end = 40570 + _globals["_SPTABLE"]._serialized_start = 40573 + _globals["_SPTABLE"]._serialized_end = 40718 + _globals["_SPTABLEFUNCTION"]._serialized_start = 40720 + _globals["_SPTABLEFUNCTION"]._serialized_end = 40844 + _globals["_SPDATAFRAMETODF"]._serialized_start = 40846 + _globals["_SPDATAFRAMETODF"]._serialized_end = 40965 + _globals["_SPDATAFRAMENADROP_SCALA"]._serialized_start = 40968 + _globals["_SPDATAFRAMENADROP_SCALA"]._serialized_end = 41103 + _globals["_SPDATAFRAMENADROP_PYTHON"]._serialized_start = 41106 + _globals["_SPDATAFRAMENADROP_PYTHON"]._serialized_end = 41289 + _globals["_SPDATAFRAMENAFILL"]._serialized_start = 41292 + _globals["_SPDATAFRAMENAFILL"]._serialized_end = 41477 + _globals["_SPDATAFRAMENAREPLACE"]._serialized_start = 41480 + _globals["_SPDATAFRAMENAREPLACE"]._serialized_end = 41782 + _globals["_SPDATAFRAMEAGG"]._serialized_start = 41784 + _globals["_SPDATAFRAMEAGG"]._serialized_end = 41898 + _globals["_SPDATAFRAMEALIAS"]._serialized_start = 41900 + _globals["_SPDATAFRAMEALIAS"]._serialized_end = 41997 + _globals["_SPDATAFRAMEAPPLY"]._serialized_start = 41999 + _globals["_SPDATAFRAMEAPPLY"]._serialized_end = 42100 + _globals["_SPDATAFRAMECOL"]._serialized_start = 42102 + _globals["_SPDATAFRAMECOL"]._serialized_end = 42201 + _globals["_SPDATAFRAMECROSSJOIN"]._serialized_start = 42204 + _globals["_SPDATAFRAMECROSSJOIN"]._serialized_end = 42421 + _globals["_SPDATAFRAMECUBE"]._serialized_start = 42423 + _globals["_SPDATAFRAMECUBE"]._serialized_end = 42537 + _globals["_SPDATAFRAMEDESCRIBE"]._serialized_start = 42539 + _globals["_SPDATAFRAMEDESCRIBE"]._serialized_end = 42657 + _globals["_SPDATAFRAMEDISTINCT"]._serialized_start = 42659 + _globals["_SPDATAFRAMEDISTINCT"]._serialized_end = 42745 + _globals["_SPDATAFRAMEDROP"]._serialized_start = 42747 + _globals["_SPDATAFRAMEDROP"]._serialized_end = 42861 + _globals["_SPDATAFRAMEDROPDUPLICATES"]._serialized_start = 42863 + _globals["_SPDATAFRAMEDROPDUPLICATES"]._serialized_end = 42987 + _globals["_SPDATAFRAMEEXCEPT"]._serialized_start = 42989 + _globals["_SPDATAFRAMEEXCEPT"]._serialized_end = 43110 + _globals["_SPDATAFRAMEFILTER"]._serialized_start = 43112 + _globals["_SPDATAFRAMEFILTER"]._serialized_end = 43226 + _globals["_SPDATAFRAMEFLATTEN"]._serialized_start = 43229 + _globals["_SPDATAFRAMEFLATTEN"]._serialized_end = 43452 + _globals["_SPDATAFRAMEFIRST"]._serialized_start = 43455 + _globals["_SPDATAFRAMEFIRST"]._serialized_end = 43618 + _globals["_SPDATAFRAMEGROUPBY_COLUMNS"]._serialized_start = 43621 + _globals["_SPDATAFRAMEGROUPBY_COLUMNS"]._serialized_end = 43765 + _globals["_SPDATAFRAMEGROUPBY_STRINGS"]._serialized_start = 43767 + _globals["_SPDATAFRAMEGROUPBY_STRINGS"]._serialized_end = 43892 + _globals["_SPDATAFRAMEGROUPBY"]._serialized_start = 43894 + _globals["_SPDATAFRAMEGROUPBY"]._serialized_end = 44011 + _globals["_SPDATAFRAMEINTERSECT"]._serialized_start = 44013 + _globals["_SPDATAFRAMEINTERSECT"]._serialized_end = 44137 + _globals["_SPDATAFRAMEJOIN"]._serialized_start = 44140 + _globals["_SPDATAFRAMEJOIN"]._serialized_end = 44454 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_MAP"]._serialized_start = 44457 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_MAP"]._serialized_end = 44727 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_LIST"]._serialized_start = 44730 + _globals["_SPDATAFRAMEJOIN_TABLEFUNCTION_LIST"]._serialized_end = 45006 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS"]._serialized_start = 45009 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_JOINEXPRS"]._serialized_end = 45225 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS"]._serialized_start = 45228 + _globals["_SPDATAFRAMEJOIN_DATAFRAME_USINGCOLUMNS"]._serialized_end = 45464 + _globals["_SPDATAFRAMELIMIT"]._serialized_start = 45466 + _globals["_SPDATAFRAMELIMIT"]._serialized_end = 45576 + _globals["_SPDATAFRAMENATURALJOIN"]._serialized_start = 45579 + _globals["_SPDATAFRAMENATURALJOIN"]._serialized_end = 45740 + _globals["_SPDATAFRAMEPIVOT_COLUMN"]._serialized_start = 45743 + _globals["_SPDATAFRAMEPIVOT_COLUMN"]._serialized_end = 45906 + _globals["_SPDATAFRAMEPIVOT_STRING"]._serialized_start = 45909 + _globals["_SPDATAFRAMEPIVOT_STRING"]._serialized_end = 46053 + _globals["_SPDATAFRAMERANDOMSPLIT"]._serialized_start = 46056 + _globals["_SPDATAFRAMERANDOMSPLIT"]._serialized_end = 46257 + _globals["_SPDATAFRAMERENAME"]._serialized_start = 46260 + _globals["_SPDATAFRAMERENAME"]._serialized_end = 46428 + _globals["_SPDATAFRAMEROLLUP_COLUMNS"]._serialized_start = 46431 + _globals["_SPDATAFRAMEROLLUP_COLUMNS"]._serialized_end = 46574 + _globals["_SPDATAFRAMEROLLUP_STRINGS"]._serialized_start = 46576 + _globals["_SPDATAFRAMEROLLUP_STRINGS"]._serialized_end = 46700 + _globals["_SPDATAFRAMEROLLUP"]._serialized_start = 46702 + _globals["_SPDATAFRAMEROLLUP"]._serialized_end = 46818 + _globals["_SPDATAFRAMESAMPLE"]._serialized_start = 46821 + _globals["_SPDATAFRAMESAMPLE"]._serialized_end = 47007 + _globals["_SPDATAFRAMESELECT_COLUMNS"]._serialized_start = 47010 + _globals["_SPDATAFRAMESELECT_COLUMNS"]._serialized_end = 47145 + _globals["_SPDATAFRAMESELECT_EXPRS"]._serialized_start = 47147 + _globals["_SPDATAFRAMESELECT_EXPRS"]._serialized_end = 47270 + _globals["_SPDATAFRAMESORT"]._serialized_start = 47273 + _globals["_SPDATAFRAMESORT"]._serialized_end = 47433 + _globals["_SPDATAFRAMEUNION"]._serialized_start = 47435 + _globals["_SPDATAFRAMEUNION"]._serialized_end = 47555 + _globals["_SPDATAFRAMEUNIONALL"]._serialized_start = 47557 + _globals["_SPDATAFRAMEUNIONALL"]._serialized_end = 47680 + _globals["_SPDATAFRAMEUNIONALLBYNAME"]._serialized_start = 47683 + _globals["_SPDATAFRAMEUNIONALLBYNAME"]._serialized_end = 47812 + _globals["_SPDATAFRAMEUNIONBYNAME"]._serialized_start = 47814 + _globals["_SPDATAFRAMEUNIONBYNAME"]._serialized_end = 47940 + _globals["_SPDATAFRAMEWHERE"]._serialized_start = 47942 + _globals["_SPDATAFRAMEWHERE"]._serialized_end = 48063 + _globals["_SPDATAFRAMEWITHCOLUMN"]._serialized_start = 48066 + _globals["_SPDATAFRAMEWITHCOLUMN"]._serialized_end = 48196 + _globals["_SPDATAFRAMEWITHCOLUMNRENAMED"]._serialized_start = 48199 + _globals["_SPDATAFRAMEWITHCOLUMNRENAMED"]._serialized_end = 48336 + _globals["_SPDATAFRAMEWITHCOLUMNS"]._serialized_start = 48339 + _globals["_SPDATAFRAMEWITHCOLUMNS"]._serialized_end = 48474 + _globals["_SPDATAFRAMEGROUPBYGROUPINGSETS"]._serialized_start = 48477 + _globals["_SPDATAFRAMEGROUPBYGROUPINGSETS"]._serialized_end = 48636 + _globals["_SPGROUPINGSETS"]._serialized_start = 48638 + _globals["_SPGROUPINGSETS"]._serialized_end = 48717 + _globals["_SPDATAFRAMEANALYTICSMOVINGAGG"]._serialized_start = 48720 + _globals["_SPDATAFRAMEANALYTICSMOVINGAGG"]._serialized_end = 48948 + _globals["_SPDATAFRAMEANALYTICSCUMULATIVEAGG"]._serialized_start = 48951 + _globals["_SPDATAFRAMEANALYTICSCUMULATIVEAGG"]._serialized_end = 49181 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELAG"]._serialized_start = 49184 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELAG"]._serialized_end = 49385 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELEAD"]._serialized_start = 49388 + _globals["_SPDATAFRAMEANALYTICSCOMPUTELEAD"]._serialized_end = 49591 + _globals["_SPDATAFRAMEANALYTICSTIMESERIESAGG"]._serialized_start = 49594 + _globals["_SPDATAFRAMEANALYTICSTIMESERIESAGG"]._serialized_end = 49847 + _globals["_SPCOPYABLEDATAFRAMEEXPR"]._serialized_start = 49850 + _globals["_SPCOPYABLEDATAFRAMEEXPR"]._serialized_end = 50366 + _globals["_SPDATAFRAMEREADEROPTIONS"]._serialized_start = 50368 + _globals["_SPDATAFRAMEREADEROPTIONS"]._serialized_end = 50422 + _globals["_SPDATAFRAMEREADERSCHEMA"]._serialized_start = 50424 + _globals["_SPDATAFRAMEREADERSCHEMA"]._serialized_end = 50477 + _globals["_SPREADAVRO"]._serialized_start = 50479 + _globals["_SPREADAVRO"]._serialized_end = 50536 + _globals["_SPREADCSV"]._serialized_start = 50538 + _globals["_SPREADCSV"]._serialized_end = 50594 + _globals["_SPREADJSON"]._serialized_start = 50596 + _globals["_SPREADJSON"]._serialized_end = 50653 + _globals["_SPREADORC"]._serialized_start = 50655 + _globals["_SPREADORC"]._serialized_end = 50711 + _globals["_SPREADPARQUET"]._serialized_start = 50713 + _globals["_SPREADPARQUET"]._serialized_end = 50773 + _globals["_SPREADTABLE"]._serialized_start = 50775 + _globals["_SPREADTABLE"]._serialized_end = 50833 + _globals["_SPREADXML"]._serialized_start = 50835 + _globals["_SPREADXML"]._serialized_end = 50891 + _globals["_SPCOPYINTO"]._serialized_start = 50894 + _globals["_SPCOPYINTO"]._serialized_end = 51097 + _globals["_SPDATAFRAMEWRITER"]._serialized_start = 51100 + _globals["_SPDATAFRAMEWRITER"]._serialized_end = 51581 + _globals["_SPDATAFRAMEWRITERSAVEMODE"]._serialized_start = 51583 + _globals["_SPDATAFRAMEWRITERSAVEMODE"]._serialized_end = 51638 + _globals["_SPDATAFRAMEWRITEROPTIONS"]._serialized_start = 51640 + _globals["_SPDATAFRAMEWRITEROPTIONS"]._serialized_end = 51694 + _globals["_SPDATAFRAMEWRITE"]._serialized_start = 51696 + _globals["_SPDATAFRAMEWRITE"]._serialized_end = 51815 + _globals["_SPWRITEFILE"]._serialized_start = 51818 + _globals["_SPWRITEFILE"]._serialized_end = 52044 + _globals["_SPWRITECSV"]._serialized_start = 52047 + _globals["_SPWRITECSV"]._serialized_end = 52349 + _globals["_SPWRITEJSON"]._serialized_start = 52352 + _globals["_SPWRITEJSON"]._serialized_end = 52655 + _globals["_SPWRITEPARQUET"]._serialized_start = 52658 + _globals["_SPWRITEPARQUET"]._serialized_end = 52964 + _globals["_SPWRITETABLE"]._serialized_start = 52967 + _globals["_SPWRITETABLE"]._serialized_end = 53329 + _globals["_SPWRITECOPYINTOLOCATION"]._serialized_start = 53332 + _globals["_SPWRITECOPYINTOLOCATION"]._serialized_end = 53759 + _globals["_SPDATAFRAMECREATEORREPLACEVIEW"]._serialized_start = 53762 + _globals["_SPDATAFRAMECREATEORREPLACEVIEW"]._serialized_end = 53989 + _globals["_SPDATAFRAMECREATEORREPLACEDYNAMICTABLE"]._serialized_start = 53992 + _globals["_SPDATAFRAMECREATEORREPLACEDYNAMICTABLE"]._serialized_end = 54242 + _globals["_SPDATAFRAMECOPYINTOTABLE"]._serialized_start = 54245 + _globals["_SPDATAFRAMECOPYINTOTABLE"]._serialized_end = 54684 + _globals["_SPDATAFRAMECACHERESULT"]._serialized_start = 54687 + _globals["_SPDATAFRAMECACHERESULT"]._serialized_end = 54828 + _globals["_SPDATAFRAMESTATAPPROXQUANTILE"]._serialized_start = 54831 + _globals["_SPDATAFRAMESTATAPPROXQUANTILE"]._serialized_end = 55014 + _globals["_SPDATAFRAMESTATCORR"]._serialized_start = 55017 + _globals["_SPDATAFRAMESTATCORR"]._serialized_end = 55195 + _globals["_SPDATAFRAMESTATCOV"]._serialized_start = 55198 + _globals["_SPDATAFRAMESTATCOV"]._serialized_end = 55375 + _globals["_SPDATAFRAMESTATCROSSTAB"]._serialized_start = 55378 + _globals["_SPDATAFRAMESTATCROSSTAB"]._serialized_end = 55560 + _globals["_SPDATAFRAMESTATSAMPLEBY"]._serialized_start = 55563 + _globals["_SPDATAFRAMESTATSAMPLEBY"]._serialized_end = 55719 + _globals["_SPRELATIONALGROUPEDDATAFRAMEEXPR"]._serialized_start = 55722 + _globals["_SPRELATIONALGROUPEDDATAFRAMEEXPR"]._serialized_end = 56530 + _globals["_SPRELATIONALGROUPEDDATAFRAMEREF"]._serialized_start = 56532 + _globals["_SPRELATIONALGROUPEDDATAFRAMEREF"]._serialized_end = 56620 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_MAP"]._serialized_start = 56623 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_MAP"]._serialized_end = 56824 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS"]._serialized_start = 56827 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG_COLUMNS"]._serialized_end = 57010 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG"]._serialized_start = 57013 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAGG"]._serialized_end = 57169 + _globals["_SPRELATIONALGROUPEDDATAFRAMEANYVALUE"]._serialized_start = 57172 + _globals["_SPRELATIONALGROUPEDDATAFRAMEANYVALUE"]._serialized_end = 57325 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAVG"]._serialized_start = 57328 + _globals["_SPRELATIONALGROUPEDDATAFRAMEAVG"]._serialized_end = 57476 + _globals["_SPRELATIONALGROUPEDDATAFRAMEBUILTIN"]._serialized_start = 57479 + _globals["_SPRELATIONALGROUPEDDATAFRAMEBUILTIN"]._serialized_end = 57649 + _globals["_SPRELATIONALGROUPEDDATAFRAMECOUNT"]._serialized_start = 57651 + _globals["_SPRELATIONALGROUPEDDATAFRAMECOUNT"]._serialized_end = 57776 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMAX"]._serialized_start = 57779 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMAX"]._serialized_end = 57927 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMEAN"]._serialized_start = 57930 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMEAN"]._serialized_end = 58079 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMEDIAN"]._serialized_start = 58082 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMEDIAN"]._serialized_end = 58233 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMIN"]._serialized_start = 58236 + _globals["_SPRELATIONALGROUPEDDATAFRAMEMIN"]._serialized_end = 58384 + _globals["_SPRELATIONALGROUPEDDATAFRAMESUM"]._serialized_start = 58387 + _globals["_SPRELATIONALGROUPEDDATAFRAMESUM"]._serialized_end = 58535 + _globals["_SPROW"]._serialized_start = 58537 + _globals["_SPROW"]._serialized_end = 58631 + _globals["_EXPRARGLIST"]._serialized_start = 58633 + _globals["_EXPRARGLIST"]._serialized_end = 58689 + _globals["_SPDATAFRAMETYPE"]._serialized_start = 58691 + _globals["_SPDATAFRAMETYPE"]._serialized_end = 58749 + _globals["_SPGROUPEDDATAFRAMETYPE"]._serialized_start = 58751 + _globals["_SPGROUPEDDATAFRAMETYPE"]._serialized_end = 58821 + _globals["_SPWINDOWTYPE"]._serialized_start = 58823 + _globals["_SPWINDOWTYPE"]._serialized_end = 58837 + _globals["_SPCOLEXPRTYPE"]._serialized_start = 58839 + _globals["_SPCOLEXPRTYPE"]._serialized_end = 58878 + _globals["_HASSRCPOSITION"]._serialized_start = 58881 + _globals["_HASSRCPOSITION"]._serialized_end = 70658 + _globals["_STMT"]._serialized_start = 70660 + _globals["_STMT"]._serialized_end = 70735 + _globals["_ASSIGN"]._serialized_start = 70737 + _globals["_ASSIGN"]._serialized_end = 70857 + _globals["_EVAL"]._serialized_start = 70859 + _globals["_EVAL"]._serialized_end = 70906 + _globals["_TYPE"]._serialized_start = 70909 + _globals["_TYPE"]._serialized_end = 71869 + _globals["_UNKNOWNTYPE"]._serialized_start = 71871 + _globals["_UNKNOWNTYPE"]._serialized_end = 71884 + _globals["_ANYTYPE"]._serialized_start = 71886 + _globals["_ANYTYPE"]._serialized_end = 71895 + _globals["_SCALARTYPE"]._serialized_start = 71898 + _globals["_SCALARTYPE"]._serialized_end = 72199 + _globals["_NUMERICTYPE"]._serialized_start = 72202 + _globals["_NUMERICTYPE"]._serialized_end = 72384 + _globals["_NUMBERTYPE"]._serialized_start = 72386 + _globals["_NUMBERTYPE"]._serialized_end = 72398 + _globals["_NOTHINGTYPE"]._serialized_start = 72400 + _globals["_NOTHINGTYPE"]._serialized_end = 72413 + _globals["_UNITTYPE"]._serialized_start = 72415 + _globals["_UNITTYPE"]._serialized_end = 72425 + _globals["_BOOLTYPE"]._serialized_start = 72427 + _globals["_BOOLTYPE"]._serialized_end = 72437 + _globals["_INT32TYPE"]._serialized_start = 72439 + _globals["_INT32TYPE"]._serialized_end = 72450 + _globals["_INT64TYPE"]._serialized_start = 72452 + _globals["_INT64TYPE"]._serialized_end = 72463 + _globals["_FLOAT64TYPE"]._serialized_start = 72465 + _globals["_FLOAT64TYPE"]._serialized_end = 72478 + _globals["_STRINGTYPE"]._serialized_start = 72480 + _globals["_STRINGTYPE"]._serialized_end = 72492 + _globals["_PDREPRTYPE"]._serialized_start = 72494 + _globals["_PDREPRTYPE"]._serialized_end = 72506 + _globals["_FNTYPE"]._serialized_start = 72508 + _globals["_FNTYPE"]._serialized_end = 72567 + _globals["_OPTIONTYPE"]._serialized_start = 72569 + _globals["_OPTIONTYPE"]._serialized_end = 72605 + _globals["_TUPLETYPE"]._serialized_start = 72607 + _globals["_TUPLETYPE"]._serialized_end = 72642 + _globals["_LISTTYPE"]._serialized_start = 72644 + _globals["_LISTTYPE"]._serialized_end = 72678 + _globals["_MAPTYPE"]._serialized_start = 72680 + _globals["_MAPTYPE"]._serialized_end = 72733 + _globals["_TYVAR"]._serialized_start = 72735 + _globals["_TYVAR"]._serialized_end = 72754 # @@protoc_insertion_point(module_scope) diff --git a/src/snowflake/snowpark/mock/_udf.py b/src/snowflake/snowpark/mock/_udf.py index 2eab2eab9e4..8677ee903fd 100644 --- a/src/snowflake/snowpark/mock/_udf.py +++ b/src/snowflake/snowpark/mock/_udf.py @@ -4,8 +4,7 @@ from types import ModuleType from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union -import snowflake.snowpark._internal.proto.ast_pb2 as proto -from snowflake.snowpark._internal.ast_utils import build_udf +from snowflake.snowpark._internal.ast_utils import build_udf, with_src_position from snowflake.snowpark._internal.udf_utils import ( check_python_runtime_version, process_registration_inputs, @@ -112,8 +111,10 @@ def _do_register_udf( ) -> UserDefinedFunction: ast = None + stmt = None if _emit_ast: - ast = proto.Udf() + stmt = self._session._ast_batch.assign() + ast = with_src_position(stmt.expr.udf, stmt) build_udf( ast, func, @@ -136,6 +137,7 @@ def _do_register_udf( statement_params=statement_params, source_code_display=source_code_display, is_permanent=is_permanent, + session=self._session, **kwargs, ) @@ -183,6 +185,7 @@ def _do_register_udf( if udf_name in self._registry and if_not_exists: ans = self._registry[udf_name] ans._ast = ast + ans._ast_id = stmt.var_id.bitfield1 return ans if udf_name in self._registry and not replace: @@ -204,6 +207,7 @@ def _do_register_udf( packages=packages, use_session_imports=imports is None, _ast=ast, + _ast_id=stmt.var_id.bitfield1, ) if type(func) is tuple: # update file registration diff --git a/src/snowflake/snowpark/udf.py b/src/snowflake/snowpark/udf.py index 8d516bec191..91149e61d58 100644 --- a/src/snowflake/snowpark/udf.py +++ b/src/snowflake/snowpark/udf.py @@ -22,7 +22,11 @@ import snowflake.snowpark._internal.proto.ast_pb2 as proto from snowflake.connector import ProgrammingError from snowflake.snowpark._internal.analyzer.expression import Expression, SnowflakeUDF -from snowflake.snowpark._internal.ast_utils import build_udf, build_udf_apply +from snowflake.snowpark._internal.ast_utils import ( + build_udf, + build_udf_apply, + with_src_position, +) from snowflake.snowpark._internal.error_message import SnowparkClientExceptionMessages from snowflake.snowpark._internal.open_telemetry import ( open_telemetry_udf_context_manager, @@ -80,6 +84,7 @@ def __init__( is_return_nullable: bool = False, packages: Optional[List[Union[str, ModuleType]]] = None, _ast: Optional[proto.Udf] = None, + _ast_id: Optional[int] = None, ) -> None: #: The Python function or a tuple containing the Python file path and the function name. self.func: Union[Callable, Tuple[str, str]] = func @@ -93,6 +98,7 @@ def __init__( # If None, no ast will be emitted. Else, passed whenever udf is invoked. self._ast = _ast + self._ast_id = _ast_id def __call__( self, *cols: Union[ColumnOrName, Iterable[ColumnOrName]], _emit_ast: bool = True @@ -121,8 +127,7 @@ def __call__( self._ast is not None ), "Need to ensure _emit_ast is True when registering UDF." udf_expr = proto.Expr() - build_udf_apply(udf_expr, "", *cols) - udf_expr.apply_expr.fn.udf.CopyFrom(self._ast) + build_udf_apply(udf_expr, self._ast_id, *cols) return Column(self._create_udf_expression(exprs), ast=udf_expr) @@ -846,7 +851,8 @@ def _do_register_udf( # AST. Capture original parameters, before any pre-processing. ast = None if _emit_ast: - ast = proto.Udf() + stmt = self._session._ast_batch.assign() + ast = with_src_position(proto.Udf(), stmt) build_udf( ast, func, @@ -873,6 +879,7 @@ def _do_register_udf( api_call_source, skip_upload_on_content_match, is_permanent, + session=self._session, **kwargs, ) diff --git a/tests/ast/data/col_udf.test b/tests/ast/data/col_udf.test index 9e56ed21f57..a01d23a575e 100644 --- a/tests/ast/data/col_udf.test +++ b/tests/ast/data/col_udf.test @@ -10,8 +10,13 @@ df = session.create_dataframe([1, 2, 3], schema=["a"]) df.select(add_one(col("a")).as_("ans")).collect() + +# call_udf should be encoded as builtin applexpr. It only works for named (& permanently) registered udfs. + +#add_two = udf(lambda x: x + 2, return_type=IntegerType(), input_types=[IntegerType()], name="add_two", replace=True) + +#df.select(call_udf("add_two", col("A")).as_("a_Ans")).collect() + ## EXPECTED OUTPUT df = session.create_dataframe([1, 2, 3], schema=["a"]) - -df.select(call_udf(". at 0x7fec00566d30>", col("a")).as_("ans")).collect() From 37eac7cd74ac45d5bf86ccdace69ee025d63b0d5 Mon Sep 17 00:00:00 2001 From: Leonhard Spiegelberg Date: Tue, 3 Sep 2024 13:09:40 -0700 Subject: [PATCH 4/7] dummy fix --- tests/ast/data/col_udf.test | 4 ++++ tests/dummy.py | 22 +++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/tests/ast/data/col_udf.test b/tests/ast/data/col_udf.test index a01d23a575e..225fe7066de 100644 --- a/tests/ast/data/col_udf.test +++ b/tests/ast/data/col_udf.test @@ -19,4 +19,8 @@ df.select(add_one(col("a")).as_("ans")).collect() ## EXPECTED OUTPUT +add_one = udf(, return_type=IntegerType(), input_types=[IntegerType()]) + df = session.create_dataframe([1, 2, 3], schema=["a"]) + +df.select(add_one(col("a")).as_("ans")).collect() diff --git a/tests/dummy.py b/tests/dummy.py index 996c7c13312..da5230e2e94 100644 --- a/tests/dummy.py +++ b/tests/dummy.py @@ -1,14 +1,14 @@ # # Copyright (c) 2012-2024 Snowflake Computing Inc. All rights reserved. # - -from snowflake.snowpark import Session -from snowflake.snowpark.functions import col, udf -from snowflake.snowpark.types import IntegerType - -session = Session.builder.getOrCreate() -add_one = udf(lambda x: x + 1, return_type=IntegerType(), input_types=[IntegerType()]) -df = session.create_dataframe([1, 2, 3], schema=["a"]) -ans = df.select(add_one(col("a")).as_("ans")).collect() - -print(ans) +# +# from snowflake.snowpark import Session +# from snowflake.snowpark.functions import col, udf +# from snowflake.snowpark.types import IntegerType +# +# session = Session.builder.getOrCreate() +# add_one = udf(lambda x: x + 1, return_type=IntegerType(), input_types=[IntegerType()]) +# df = session.create_dataframe([1, 2, 3], schema=["a"]) +# ans = df.select(add_one(col("a")).as_("ans")).collect() +# +# print(ans) From dc0b78c6fdadb900b4fa6f8359f6a37584d7d8e4 Mon Sep 17 00:00:00 2001 From: Leonhard Spiegelberg Date: Tue, 3 Sep 2024 14:02:49 -0700 Subject: [PATCH 5/7] fix call_udf --- src/snowflake/snowpark/functions.py | 43 +++++++++++++++++++++-------- tests/ast/data/col_udf.test | 9 ++++-- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/src/snowflake/snowpark/functions.py b/src/snowflake/snowpark/functions.py index 107e7f4f584..adc8ba67189 100644 --- a/src/snowflake/snowpark/functions.py +++ b/src/snowflake/snowpark/functions.py @@ -189,7 +189,6 @@ build_expr_from_snowpark_column_or_python_val, build_expr_from_snowpark_column_or_sql_str, build_table_fn_apply, - build_udf_apply, create_ast_for_column, set_builtin_fn_alias, snowpark_expression_to_ast, @@ -8325,10 +8324,7 @@ def pandas_udtf( ) -def call_udf( - udf_name: str, - *args: ColumnOrLiteral, -) -> Column: +def call_udf(udf_name: str, *args: ColumnOrLiteral, _emit_ast: bool = True) -> Column: """Calls a user-defined function (UDF) by name. Args: @@ -8350,13 +8346,36 @@ def call_udf( ------------------------------- """ - # AST - ast = proto.Expr() - build_udf_apply(ast, udf_name, *args) - validate_object_name(udf_name) + + ast = None + # AST. + if _emit_ast: + args_list = parse_positional_args_to_list(*args) + ast = proto.Expr() + # Note: The type hint says ColumnOrLiteral, but in Snowpark sometimes arbitrary + # Python objects are passed. + build_builtin_fn_apply( + ast, + "call_udf", + *( + (udf_name,) + + tuple( + snowpark_expression_to_ast(arg) + if isinstance(arg, Expression) + else arg + for arg in args_list + ) + ), + ) + return _call_function( - udf_name, False, *args, api_call_source="functions.call_udf", _ast=ast + udf_name, + False, + *args, + api_call_source="functions.call_udf", + _ast=ast, + _emit_ast=_emit_ast, ) @@ -8483,11 +8502,12 @@ def _call_function( api_call_source: Optional[str] = None, is_data_generator: bool = False, _ast: proto.Expr = None, + _emit_ast: bool = True, ) -> Column: args_list = parse_positional_args_to_list(*args) ast = _ast - if ast is None: + if ast is None and _emit_ast: ast = proto.Expr() # Note: The type hint says ColumnOrLiteral, but in Snowpark sometimes arbitrary # Python objects are passed. @@ -8510,6 +8530,7 @@ def _call_function( is_data_generator=is_data_generator, ), ast=ast, + _emit_ast=_emit_ast, ) diff --git a/tests/ast/data/col_udf.test b/tests/ast/data/col_udf.test index 225fe7066de..99bab6179d4 100644 --- a/tests/ast/data/col_udf.test +++ b/tests/ast/data/col_udf.test @@ -10,12 +10,11 @@ df = session.create_dataframe([1, 2, 3], schema=["a"]) df.select(add_one(col("a")).as_("ans")).collect() - # call_udf should be encoded as builtin applexpr. It only works for named (& permanently) registered udfs. -#add_two = udf(lambda x: x + 2, return_type=IntegerType(), input_types=[IntegerType()], name="add_two", replace=True) +add_two = udf(lambda x: x + 2, return_type=IntegerType(), input_types=[IntegerType()], name="add_two", replace=True) -#df.select(call_udf("add_two", col("A")).as_("a_Ans")).collect() +df.select(call_udf("add_two", col("A")).as_("a_Ans")).collect() ## EXPECTED OUTPUT @@ -24,3 +23,7 @@ add_one = udf(, return_type=IntegerType(), input_types=[IntegerType()]) df = session.create_dataframe([1, 2, 3], schema=["a"]) df.select(add_one(col("a")).as_("ans")).collect() + +add_two = udf(, return_type=IntegerType(), input_types=[IntegerType()], name="add_two", replace=True) + +df.select(call_udf("add_two", col("A")).as_("a_Ans")).collect() From eb6091b4106dd443ef1c02523ec2807cb3363d5a Mon Sep 17 00:00:00 2001 From: Leonhard Spiegelberg Date: Tue, 3 Sep 2024 14:18:27 -0700 Subject: [PATCH 6/7] test udf parameters --- src/snowflake/snowpark/_internal/ast_utils.py | 16 ++++++------- tests/ast/data/col_udf.test | 23 ++++++++++++++++++- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/snowflake/snowpark/_internal/ast_utils.py b/src/snowflake/snowpark/_internal/ast_utils.py index 477a9b117fd..94669c7e02e 100644 --- a/src/snowflake/snowpark/_internal/ast_utils.py +++ b/src/snowflake/snowpark/_internal/ast_utils.py @@ -815,18 +815,20 @@ def build_udf( if stage_location is not None: ast.stage_location = stage_location if imports is not None and len(imports) != 0: - raise NotImplementedError + for import_ in imports: + import_expr = proto.SpTableName() + build_sp_table_name(import_expr, import_) + ast.imports.append(import_expr) if packages is not None and len(packages) != 0: for package in packages: if isinstance(package, ModuleType): raise NotImplementedError - p = ast.packages.add() # noqa: F841 - p = package # noqa: F841 + ast.packages.append(package) ast.replace = replace ast.if_not_exists = if_not_exists ast.parallel = parallel if max_batch_size is not None: - ast.max_batch_size = max_batch_size + ast.max_batch_size.value = max_batch_size if statement_params is not None and len(statement_params) != 0: for k, v in statement_params.items(): @@ -841,9 +843,7 @@ def build_udf( external_access_integrations is not None and len(external_access_integrations) != 0 ): - for e in external_access_integrations: - p_e = ast.external_access_integrations.add() # noqa: F841 - p_e = e # noqa: F841 + ast.external_access_integrations.extend(external_access_integrations) if secrets is not None and len(secrets) != 0: for k, v in secrets.items(): t = ast.secrets.add() @@ -851,7 +851,7 @@ def build_udf( t._2 = v ast.immutable = immutable if comment is not None: - ast.comment = comment + ast.comment.value = comment for k, v in kwargs.items(): t = ast.kwargs.add() t._1 = k diff --git a/tests/ast/data/col_udf.test b/tests/ast/data/col_udf.test index 99bab6179d4..026ffa0ff4a 100644 --- a/tests/ast/data/col_udf.test +++ b/tests/ast/data/col_udf.test @@ -2,7 +2,7 @@ from snowflake.snowpark.functions import col, udf -from snowflake.snowpark.types import IntegerType +from snowflake.snowpark.types import IntegerType, FloatType add_one = udf(lambda x: x + 1, return_type=IntegerType(), input_types=[IntegerType()]) @@ -16,6 +16,21 @@ add_two = udf(lambda x: x + 2, return_type=IntegerType(), input_types=[IntegerTy df.select(call_udf("add_two", col("A")).as_("a_Ans")).collect() +param_udf = udf(lambda x, y: str(y + x**2), return_type=VariantType(), input_types=[IntegerType(), FloatType()], + name="param_udf", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], + replace=True, if_not_exists=False, parallel=8, max_batch_size=2, source_code_display=False, + strict=True, secure=True, external_access_integrations=["s3"], secrets={'a':'b', 'c':'d'}, + immutable=True, comment="some udf", force_inline_code=True) + +# Another test udf because if_not_exists and replace need to be xor. +param_udf2 = udf(lambda x, y: str(y + x**2), return_type=VariantType(), input_types=[IntegerType(), FloatType()], + name="param_udf2", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], + replace=False, if_not_exists=True, parallel=8, max_batch_size=2, source_code_display=False, + strict=True, secure=True, external_access_integrations=["s3"], secrets={'a':'b', 'c':'d'}, + immutable=True, comment="some udf", force_inline_code=True) + +df.select(param_udf(col("A"), col("A"))) + ## EXPECTED OUTPUT add_one = udf(, return_type=IntegerType(), input_types=[IntegerType()]) @@ -27,3 +42,9 @@ df.select(add_one(col("a")).as_("ans")).collect() add_two = udf(, return_type=IntegerType(), input_types=[IntegerType()], name="add_two", replace=True) df.select(call_udf("add_two", col("A")).as_("a_Ans")).collect() + +param_udf = udf(, return_type=VariantType(), input_types=[IntegerType()]FloatType()], name="param_udf", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], replace=True, parallel=8, max_batch_size=2, source_code_display=False, strict=True, secure=True, external_access_integrations=["s3"], secrets={"a": "b"}{"c": "d"}, immutable=True, comment="some udf") + +param_udf2 = udf(, return_type=VariantType(), input_types=[IntegerType()]FloatType()], name="param_udf2", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], if_not_exists=True, parallel=8, max_batch_size=2, source_code_display=False, strict=True, secure=True, external_access_integrations=["s3"], secrets={"a": "b"}{"c": "d"}, immutable=True, comment="some udf") + +res5 = df.select(param_udf(col("A"), col("A"))) From dc652ca9ae50cf20d79ce7f9832e348772d0810a Mon Sep 17 00:00:00 2001 From: Leonhard Spiegelberg Date: Tue, 3 Sep 2024 15:48:17 -0700 Subject: [PATCH 7/7] PR feedback --- src/snowflake/snowpark/_internal/ast.py | 2 +- tests/ast/data/col_udf.test | 16 ++++++++-------- tests/dummy.py | 14 -------------- 3 files changed, 9 insertions(+), 23 deletions(-) delete mode 100644 tests/dummy.py diff --git a/src/snowflake/snowpark/_internal/ast.py b/src/snowflake/snowpark/_internal/ast.py index f1ef72a6bdf..9a7edcf83f9 100644 --- a/src/snowflake/snowpark/_internal/ast.py +++ b/src/snowflake/snowpark/_internal/ast.py @@ -173,7 +173,7 @@ def _init_batch(self): self._request.client_ast_version = CLIENT_AST_VERSION def register_callable(self, func: Callable) -> int: - """tracks client-side an actual callable and returns an id.""" + """Tracks client-side an actual callable and returns an ID.""" k = id(func) if k in self._callables.keys(): diff --git a/tests/ast/data/col_udf.test b/tests/ast/data/col_udf.test index 026ffa0ff4a..954fc6e5f2d 100644 --- a/tests/ast/data/col_udf.test +++ b/tests/ast/data/col_udf.test @@ -17,17 +17,17 @@ add_two = udf(lambda x: x + 2, return_type=IntegerType(), input_types=[IntegerTy df.select(call_udf("add_two", col("A")).as_("a_Ans")).collect() param_udf = udf(lambda x, y: str(y + x**2), return_type=VariantType(), input_types=[IntegerType(), FloatType()], - name="param_udf", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], - replace=True, if_not_exists=False, parallel=8, max_batch_size=2, source_code_display=False, - strict=True, secure=True, external_access_integrations=["s3"], secrets={'a':'b', 'c':'d'}, - immutable=True, comment="some udf", force_inline_code=True) + name="param_udf", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], + replace=True, if_not_exists=False, parallel=8, max_batch_size=2, source_code_display=False, + strict=True, secure=True, external_access_integrations=["s3"], secrets={'a':'b', 'c':'d'}, + immutable=True, comment="some udf", force_inline_code=True) # Another test udf because if_not_exists and replace need to be xor. param_udf2 = udf(lambda x, y: str(y + x**2), return_type=VariantType(), input_types=[IntegerType(), FloatType()], - name="param_udf2", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], - replace=False, if_not_exists=True, parallel=8, max_batch_size=2, source_code_display=False, - strict=True, secure=True, external_access_integrations=["s3"], secrets={'a':'b', 'c':'d'}, - immutable=True, comment="some udf", force_inline_code=True) + name="param_udf2", is_permanent=True, stage_location="@", imports=["numpy"], packages=["bla"], + replace=False, if_not_exists=True, parallel=8, max_batch_size=2, source_code_display=False, + strict=True, secure=True, external_access_integrations=["s3"], secrets={'a':'b', 'c':'d'}, + immutable=True, comment="some udf", force_inline_code=True) df.select(param_udf(col("A"), col("A"))) diff --git a/tests/dummy.py b/tests/dummy.py deleted file mode 100644 index da5230e2e94..00000000000 --- a/tests/dummy.py +++ /dev/null @@ -1,14 +0,0 @@ -# -# Copyright (c) 2012-2024 Snowflake Computing Inc. All rights reserved. -# -# -# from snowflake.snowpark import Session -# from snowflake.snowpark.functions import col, udf -# from snowflake.snowpark.types import IntegerType -# -# session = Session.builder.getOrCreate() -# add_one = udf(lambda x: x + 1, return_type=IntegerType(), input_types=[IntegerType()]) -# df = session.create_dataframe([1, 2, 3], schema=["a"]) -# ans = df.select(add_one(col("a")).as_("ans")).collect() -# -# print(ans)